Dropstone CLI

MCP 서버

로컬 및 원격 MCP 도구를 추가하세요.

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

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


주의사항

MCP 서버를 사용하면 컨텍스트에 추가됩니다. 도구가 많으면 이는 빠르게 누적될 수 있습니다. 따라서 어떤 MCP 서버를 사용할지 신중하게 결정하는 것이 좋습니다.

Tip

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",
      },
    },
  },
}

command는 로컬 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. 서버가 지원하는 경우 **동적 클라이언트 등록(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. 제공되지 않으면 동적 클라이언트 등록이 시도됩니다.
clientSecretString인증 서버에서 요구하는 경우 OAuth 클라이언트 시크릿.
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
  }
}

또한 glob 패턴을 사용하여 일치하는 모든 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
  }
}

여기서는 glob 패턴 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
      }
    }
  }
}

Glob 패턴

glob 패턴은 간단한 정규식 globbing 패턴을 사용합니다:

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

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 키를 사용하여 더 높은 rate-limit을 받을 수 있습니다.

{
  "$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