MCP 环境配置
本章介绍如何搭建 MCP 开发环境,包括 SDK 安装和配置。
安装 MCP SDK
Python SDK
# 使用 pip 安装 MCP Python SDK
pip install mcp
# 或者使用 uv(更快的包管理器)
uv pip install mcp
安装完成后验证:
import mcp
print(mcp.__version__)
TypeScript SDK
# 创建新项目
npm init -y
# 安装 MCP TypeScript SDK
npm install @modelcontextprotocol/sdk
基础项目结构
创建一个简单的 MCP 服务器项目:
# 创建项目目录
mkdir my-mcp-server
cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
配置 MCP 服务器
MCP 服务器支持两种传输方式:
1. STDIO 传输(本地)
适用于本地运行的服务器:
# server.py
from mcp.server import Server
from mcp.types import TextContent
import asyncio
app = Server("my-server")
@app.list_tools()
async def list_tools():
return [
{
"name": "echo",
"description": "返回输入的文本",
"inputSchema": {
"type": "object",
"properties": {
"text": {"type": "string", "description": "要返回的文本"}
},
"required": ["text"]
}
}
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "echo":
return [TextContent(type="text", text=arguments["text"])]
raise ValueError(f"Unknown tool: {name}")
if __name__ == "__main__":
import sys
from mcp.server.stdio import stdio_server
async def main():
async with stdio_server() as streams:
await app.run(
streams[0],
streams[1],
app.create_initialization_options()
)
asyncio.run(main())
2. HTTP 传输(远程)
适用于网络远程服务器:
# http_server.py
from mcp.server import Server
from mcp.server.http import HTTPServer
from mcp.types import TextContent
app = Server("http-server")
# ... 定义 tools 和其他功能 ...
# 启动 HTTP 服务器
server = HTTPServer(app, host="0.0.0.0", port=8080)
server.run()
客户端配置
VS Code 配置
在 .vscode/mcp.json 中配置:
{
"servers": {
"my-server": {
"command": "python",
"args": ["/path/to/server.py"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
}
}
}
Claude Desktop 配置
在 claude_desktop_config.json 中配置:
{
"mcpServers": {
"my-server": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}
常见错误排查
1. 连接失败
# 错误:无法连接到服务器
# 解决方法:检查服务器是否正在运行
2. 工具未发现
确保服务器正确实现了 list_tools 方法。
3. 参数验证失败
检查 JSON Schema 是否正确定义。
下一步
完成环境配置后,可以开始学习 MCP 的核心概念: