MCP 服务器
添加本地和远程 MCP 工具。
你可以使用 模型上下文协议(Model Context Protocol,简称 MCP)向 Dropstone 添加外部工具。Dropstone 支持本地和远程服务器。
添加后,MCP 工具会自动与内置工具一起提供给 LLM 使用。
注意事项
当你使用 MCP 服务器时,它会增加上下文。如果你有很多工具,这可能会很快累积起来。因此,我们建议谨慎选择使用哪些 MCP 服务器。
Tip
MCP 服务器会增加你的上下文,所以要小心启用哪些服务器。
某些 MCP 服务器(如 GitHub MCP 服务器)往往会添加大量 token,并且很容易超出上下文限制。
启用
你可以在 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": {
// ...
},
},
}
你也可以通过将 enabled 设置为 false 来禁用服务器。如果你想临时禁用服务器而不将其从配置中移除,这很有用。
覆盖远程默认值
组织可以通过其 .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",
// 或者 ["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 服务器的所有选项。
| 选项 | 类型 | 必填 | 描述 |
|---|---|---|---|
type | String | 是 | MCP 服务器连接类型,必须为 "local"。 |
command | Array | 是 | 运行 MCP 服务器的命令和参数。 |
environment | Object | 运行服务器时要设置的环境变量。 | |
enabled | Boolean | 在启动时启用或禁用 MCP 服务器。 | |
timeout | Number | 从 MCP 服务器获取工具的超时时间(毫秒)。默认为 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 选项可以传入请求头列表。
选项
| 选项 | 类型 | 必填 | 描述 |
|---|---|---|---|
type | String | 是 | MCP 服务器连接类型,必须为 "remote"。 |
url | String | 是 | 远程 MCP 服务器的 URL。 |
enabled | Boolean | 在启动时启用或禁用 MCP 服务器。 | |
headers | Object | 随请求发送的请求头。 | |
oauth | Object | OAuth 认证配置。请参阅下面的 OAuth 部分。 | |
timeout | Number | 从 MCP 服务器获取工具的超时时间(毫秒)。默认为 5000(5 秒)。 |
OAuth
Dropstone 会自动处理远程 MCP 服务器的 OAuth 认证。当服务器需要认证时,Dropstone 将:
- 检测 401 响应并启动 OAuth 流程
- 如果服务器支持,使用动态客户端注册(RFC 7591)
- 安全地存储令牌以供后续请求使用
自动
对于大多数支持 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 密钥的服务器),请将 oauth 设置为 false:
{
"$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 选项
| 选项 | 类型 | 描述 |
|---|---|---|
oauth | Object | false | OAuth 配置对象,或设置为 false 以禁用 OAuth 自动检测。 |
clientId | String | OAuth 客户端 ID。如果未提供,将尝试动态客户端注册。 |
clientSecret | String | OAuth 客户端密钥,如果授权服务器要求的话。 |
scope | String | 授权期间请求的 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 服务器,你可能希望仅按代理启用它们,并在全局范围内禁用它们。为此:
- 在全局范围内将其作为工具禁用。
- 在 代理配置 中,将 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 模式使用简单的正则表达式 glob 匹配模式:
*匹配零个或多个任意字符(例如,"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 密钥并获得更高的速率限制。
{
"$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.