MCP配置
1. 基本定义
- 每个MCP服务器都是一个独立json对象,以服务器名称作为key
- key在MCP配置文件中以及全局配置文件和项目配置文件中必须是唯一的
- 每个MCP服务器条目对象都必须具有
command属性
2. local mcp server
cwd(可选):在执行command之前,先将进程的工作目录切换到指定路径,类似于先执行cd命令。在command或args指定相对路径时有用。command(必填):用于启动MCP服务器的命令args(可选):启动服务器时要传递给服务器的命令行参数数组。参数按配置文件中定义的确切顺序传递。如果未定义,则不会向服务器传递任何参数。env(可选):启动服务器时要设置的环境变量的对象。每个值都必须是一个字符串。如果未定义,则不设置任何环境变量。timeout(可选):客户端等待来自MCP服务器的响应以进行工具调用、提示检索或资源检索的最长时间(以毫秒为单位)。这必须是正整数值。如果未定义,则使用默认值 60,000 ms(1 分钟)。
服务器配置示例:
{
"mcpServers": {
"stdio-mcp-server-example": {
"cwd": "/home/user/projects/my-mcp-project",
"command": "mycommand",
"args": [
"arg1",
"arg2"
],
"env": {
"API_KEY": "value1",
"ENV_VAR1": "value1",
"ENV_VAR2": "value2"
},
"timeout": 60000
}
}
}
3. remote mcp server
如果工具支持配置remote server,可以直接配置
{
"mcpServers": {
"web-search": {
"url": "https://remote.mcp.server/sse"
}
}
}
如果工具不支持配置remote server,则可以通过mcp-remote工具作为桥接,实现:
- MCP客户端 --STDIO--> mcp-remote --HTTP/SSE--> 远程MCP服务器
- 协议转换:将远程的HTTP/SSE协议转换为本地的STDIO协议
- 兼容性:让不支持远程连接的MCP客户端也能使用远程服务器
{
"mcpServers": {
"remote-example": {
"command": "npx",
"args": [
"mcp-remote",
"http://remote.mcp.server/sse",
"--header",
"Authorization: Bearer ${AUTH_TOKEN}",
"--allow-http"
],
"env": {
"AUTH_TOKEN": "..."
}
}
}
}