Dropstone Docs

MCP 서버

로컬 및 원격 MCP 도구를 추가합니다.

Model Context Protocol(MCP)을 사용하여 Dropstone에 외부 도구를 추가할 수 있습니다. Dropstone은 로컬 및 원격 서버를 모두 지원합니다.

추가되면 MCP 도구는 기본 제공 도구와 함께 LLM에서 자동으로 사용 가능합니다.


주의사항

MCP 서버를 사용하면 컨텍스트에 추가됩니다. 도구가 많으면 빠르게 누적될 수 있습니다. 따라서 사용하는 MCP 서버를 신중하게 선택하는 것을 권장합니다.

:

MCP 서버는 컨텍스트에 추가되므로 활성화하는 서버를 신중하게 선택하세요.

GitHub MCP 서버와 같은 특정 MCP 서버는 많은 토큰을 추가하는 경향이 있으며 컨텍스트 제한을 쉽게 초과할 수 있습니다.


활성화

Dropstone 설정mcp 아래에서 MCP 서버를 정의할 수 있습니다. 각 MCP를 고유한 이름으로 추가합니다. LLM에 프롬프트할 때 해당 이름으로 MCP를 참조할 수 있습니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "name-of-mcp-server": {
      // ...
      "enabled": true,
    },
    "name-of-other-mcp-server": {
      // ...
    },
  },
}

enabledfalse로 설정하여 서버를 비활성화할 수도 있습니다. 이는 설정에서 서버를 제거하지 않고 일시적으로 비활성화하려는 경우에 유용합니다.


원격 기본값 재정의

조직은 .well-known/dropstone 엔드포인트를 통해 기본 MCP 서버를 제공할 수 있습니다. 이러한 서버는 기본적으로 비활성화되어 있을 수 있으므로 사용자가 필요한 서버를 선택할 수 있습니다.

조직의 원격 설정에서 특정 서버를 활성화하려면 enabled: true로 로컬 설정에 추가합니다:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": true
    }
  }
}

로컬 설정 값이 원격 기본값을 재정의합니다. 자세한 내용은 설정 우선순위를 참조하세요.


로컬

MCP 객체 내에서 type"local"로 설정하여 로컬 MCP 서버를 추가합니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-local-mcp-server": {
      "type": "local",
      // Or ["bun", "x", "my-mcp-command"]
      "command": ["npx", "-y", "my-mcp-command"],
      "enabled": true,
      "environment": {
        "MY_ENV_VAR": "my_env_var_value",
      },
    },
  },
}

명령은 로컬 MCP 서버가 시작되는 방식입니다. 환경 변수 목록도 전달할 수 있습니다.

예를 들어, 테스트 @modelcontextprotocol/server-everything MCP 서버를 추가하는 방법은 다음과 같습니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "mcp_everything": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
    },
  },
}

이를 사용하려면 프롬프트에 use the mcp_everything tool을 추가할 수 있습니다.

use the mcp_everything tool to add the number 3 and 4

옵션

로컬 MCP 서버를 구성하기 위한 모든 옵션은 다음과 같습니다.

옵션타입필수설명
typeStringYMCP 서버 연결 타입, "local"이어야 합니다.
commandArrayYMCP 서버를 실행할 명령 및 인수입니다.
environmentObject서버 실행 시 설정할 환경 변수입니다.
enabledBoolean시작 시 MCP 서버를 활성화 또는 비활성화합니다.
timeoutNumberMCP 서버에서 도구를 가져오기 위한 시간 제한(ms). 기본값은 5000(5초)입니다.

원격

type"remote"로 설정하여 원격 MCP 서버를 추가합니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-remote-mcp": {
      "type": "remote",
      "url": "https://my-mcp-server.com",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer MY_API_KEY"
      }
    }
  }
}

url은 원격 MCP 서버의 URL이고 headers 옵션으로 헤더 목록을 전달할 수 있습니다.


옵션

옵션타입필수설명
typeStringYMCP 서버 연결 타입, "remote"이어야 합니다.
urlStringY원격 MCP 서버의 URL입니다.
enabledBoolean시작 시 MCP 서버를 활성화 또는 비활성화합니다.
headersObject요청과 함께 전송할 헤더입니다.
oauthObjectOAuth 인증 설정입니다. 아래 OAuth 섹션을 참조하세요.
timeoutNumberMCP 서버에서 도구를 가져오기 위한 시간 제한(ms). 기본값은 5000(5초)입니다.

OAuth

Dropstone은 원격 MCP 서버에 대한 OAuth 인증을 자동으로 처리합니다. 서버에 인증이 필요한 경우 Dropstone은:

  1. 401 응답을 감지하고 OAuth 흐름을 시작합니다.
  2. 서버에서 지원하는 경우 **Dynamic Client Registration (RFC 7591)**을 사용합니다.
  3. 향후 요청을 위해 토큰을 안전하게 저장합니다.

자동

대부분의 OAuth 지원 MCP 서버의 경우 특별한 구성이 필요하지 않습니다. 원격 서버만 구성하면 됩니다:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp"
    }
  }
}

서버에 인증이 필요한 경우 Dropstone은 처음 사용할 때 인증하도록 요청합니다. 그렇지 않으면 dropstone mcp auth <server-name>으로 수동으로 흐름을 트리거할 수 있습니다.


사전 등록

MCP 서버 제공자로부터 클라이언트 자격증명이 있는 경우 이를 구성할 수 있습니다:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "clientId": "{env:MY_MCP_CLIENT_ID}",
        "clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
        "scope": "tools:read tools:execute"
      }
    }
  }
}

인증

수동으로 인증을 트리거하거나 자격증명을 관리할 수 있습니다.

특정 MCP 서버로 인증:

dropstone mcp auth my-oauth-server

모든 MCP 서버 및 인증 상태 나열:

dropstone mcp list

저장된 자격증명 제거:

dropstone mcp logout my-oauth-server

mcp auth 명령은 인증을 위해 브라우저를 엽니다. 인증 후 Dropstone은 토큰을 ~/.local/share/dropstone/mcp-auth.json에 안전하게 저장합니다.


OAuth 비활성화

특정 서버에 대해 자동 OAuth를 비활성화하려면(예: API 키를 사용하는 서버의 경우) oauthfalse로 설정합니다:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-api-key-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": false,
      "headers": {
        "Authorization": "Bearer {env:MY_API_KEY}"
      }
    }
  }
}

OAuth 옵션

옵션타입설명
oauthObject | falseOAuth 설정 객체 또는 OAuth 자동 감지를 비활성화하려면 false입니다.
clientIdStringOAuth 클라이언트 ID입니다. 제공되지 않으면 동적 클라이언트 등록이 시도됩니다.
clientSecretStringOAuth 클라이언트 시크릿입니다(인증 서버에서 필요한 경우).
scopeString인증 중에 요청할 OAuth 범위입니다.

디버깅

원격 MCP 서버가 인증에 실패하는 경우 다음을 사용하여 문제를 진단할 수 있습니다:

# 모든 OAuth 지원 서버의 인증 상태 보기
dropstone mcp auth list

# 특정 서버의 연결 및 OAuth 흐름 디버그
dropstone mcp debug my-oauth-server

mcp debug 명령은 현재 인증 상태를 표시하고, HTTP 연결을 테스트하며, OAuth 검색 흐름을 시도합니다.


관리

MCP는 기본 제공 도구와 함께 Dropstone에서 도구로 사용 가능합니다. 따라서 다른 도구처럼 Dropstone 설정을 통해 관리할 수 있습니다.


전역

이는 전역적으로 활성화 또는 비활성화할 수 있음을 의미합니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp-foo": false
  }
}

글로브 패턴을 사용하여 일치하는 모든 MCP를 비활성화할 수도 있습니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp*": false
  }
}

여기서는 글로브 패턴 my-mcp*을 사용하여 모든 MCP를 비활성화합니다.


에이전트별

많은 수의 MCP 서버가 있는 경우 에이전트별로만 활성화하고 전역적으로 비활성화할 수 있습니다. 이를 수행하려면:

  1. 전역적으로 도구로 비활성화합니다.
  2. 에이전트 설정에서 MCP 서버를 도구로 활성화합니다.
{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "my-mcp": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command"],
      "enabled": true
    }
  },
  "tools": {
    "my-mcp*": false
  },
  "agent": {
    "my-agent": {
      "tools": {
        "my-mcp*": true
      }
    }
  }
}

글로브 패턴

글로브 패턴은 간단한 정규식 글로빙 패턴을 사용합니다:

  • *는 0개 이상의 모든 문자와 일치합니다(예: "my-mcp*"my-mcp_search, my-mcp_list 등과 일치).
  • ?는 정확히 1개의 문자와 일치합니다.
  • 다른 모든 문자는 문자 그대로 일치합니다.

Note:

MCP 서버 도구는 서버 이름을 접두사로 하여 등록되므로 서버의 모든 도구를 비활성화하려면 다음을 사용합니다:

"mymcpservername_*": false

예제

다음은 일반적인 MCP 서버의 예제입니다. 다른 서버를 문서화하기를 원하시면 문의하세요.


Sentry

Sentry MCP 서버를 추가하여 Sentry 프로젝트 및 이슈와 상호작용합니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "sentry": {
      "type": "remote",
      "url": "https://mcp.sentry.dev/mcp",
      "oauth": {}
    }
  }
}

설정을 추가한 후 Sentry로 인증합니다:

dropstone mcp auth sentry

이는 OAuth 흐름을 완료하고 Dropstone을 Sentry 계정에 연결하기 위해 브라우저 창을 엽니다.

인증 후 프롬프트에서 Sentry 도구를 사용하여 이슈, 프로젝트 및 오류 데이터를 쿼리할 수 있습니다.

Show me the latest unresolved issues in my project. use sentry

Context7

Context7 MCP 서버를 추가하여 문서를 검색합니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

무료 계정에 가입한 경우 API 키를 사용하여 더 높은 속도 제한을 얻을 수 있습니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
      }
    }
  }
}

여기서는 CONTEXT7_API_KEY 환경 변수가 설정되어 있다고 가정합니다.

프롬프트에 use context7을 추가하여 Context7 MCP 서버를 사용합니다.

Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7

또는 AGENTS.md에 다음과 같은 내용을 추가할 수 있습니다.

When you need to search docs, use `context7` tools.

Grep by Vercel

Grep by Vercel MCP 서버를 추가하여 GitHub의 코드 스니펫을 검색합니다.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {
    "gh_grep": {
      "type": "remote",
      "url": "https://mcp.grep.app"
    }
  }
}

MCP 서버의 이름을 gh_grep으로 지정했으므로 프롬프트에 use the gh_grep tool을 추가하여 에이전트가 이를 사용하도록 할 수 있습니다.

What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool

또는 AGENTS.md에 다음과 같은 내용을 추가할 수 있습니다.

If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
Ctrl+I