零基础学MCP(2)| MCP 开发环境配置
2025最新实战指南:10分钟搭建跨平台MCP开发环境,支持Python/Node.js双生态
一、环境准备:跨平台兼容方案
在开始MCP开发前,确保你的系统满足以下条件:
组件 | 要求 | 检测命令 |
---|---|---|
操作系统 | Windows 10+/macOS 12+/Linux Ubuntu 20.04+ | uname -a |
Python | 3.10+(推荐3.12) | python --version |
Node.js | 18.x LTS(必备) | node -v |
包管理器 | UV(替代pip/conda) | uv --version |
权限 | 管理员/root权限 |
sudo -v (Linux/macOS) |
💡 避坑提示:
- Windows用户需启用开发者模式解决长路径问题
- macOS需运行
xcode-select --install
安装命令行工具
二、核心工具安装:UV替代传统包管理
1. 安装UV(超高速Python包管理器)
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 一键安装脚本(跨平台) curl -LsSf https://astral.sh/uv/install.sh | sh # 验证安装 uv --version # 预期输出: uv 0.2.0 (2025-07更新)
</pre>
2. 配置UV镜像加速(国内用户必做)
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 设置清华镜像源 uv config set registry.index-url "https://pypi.tuna.tsinghua.edu.cn/simple" # 永久生效(写入.zshrc/.bashrc) echo 'export UV_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"' >> ~/.zshrc
</pre>
三、Python环境配置(MCP服务端)
1. 创建隔离虚拟环境
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 新建mcp-dev目录并进入 mkdir mcp-dev && cd mcp-dev # 使用UV创建虚拟环境 uv venv .venv # 激活环境 # Windows: .\.venv\Scripts\activate source .venv/bin/activate # Linux/macOS
</pre>
2. 安装MCP核心库
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 安装官方工具包 uv pip install "fast-mcp>=1.5" mcp-toolkit anthropic-mcp # 验证安装 python -c "from fast_mcp import __version__; print(f'FastMCP v{__version__}')"
</pre>
四、Node.js环境配置(MCP客户端)
1. 初始化项目
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">npm init -y # 安装TypeScript(推荐) npm install -D typescript @types/node
</pre>
2. 添加MCP客户端SDK
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 安装Anthropic官方客户端 npm install @anthropic/mcp-client @mcp-tools/cli # 创建tsconfig.json npx tsc --init --target es2022 --module commonjs
</pre>
五、双环境联动测试
1. 启动Mock MCP服务端
创建 demo_server.py
:
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">from fast_mcp import FastMCP, MCPTool @MCPTool(name="greet") def greet(name: str, context: dict) -> str: return f"你好, {name}! 当前用户: {context.get('user')}" if __name__ == "__main__": server = FastMCP(port=8080) server.register_tool(greet) server.run()
</pre>
启动服务:
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">uv pip install uvicorn # 安装Web服务器 uvicorn demo_server:server --port 8080
</pre>
2. Node.js客户端调用测试
创建 client_test.ts
:
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">import { MCPClient } from'@anthropic/mcp-client'; const client = new MCPClient('http://localhost:8080'); asyncfunction testGreet() { const response = await client.execute({ tool_name: 'greet', parameters: { name: 'MCP开发者' }, context: { user: 'test@example.com' } }); console.log(response.result); // 预期输出: 你好, MCP开发者! 当前用户: test@example.com } testGreet();
</pre>
运行客户端:
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">npx ts-node client_test.ts
</pre>
六、开发环境增强配置
1. VS Code推荐插件
插件名 | 作用 | 安装ID |
---|---|---|
MCP Inspector | 协议调试可视化 | anthropic.mcp-inspector |
FastMCP Runner | 一键启停服务 | fast-mcp.runner |
Claude Tools | AI辅助开发 | anthropic.claude-tools |
2. 调试配置(.vscode/launch.json)
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">{ "configurations": [ { "name": "启动MCP服务", "type": "python", "request": "launch", "module": "uvicorn", "args": ["demo_server:server", "--port=8080"] }, { "name": "执行客户端测试", "type": "node", "request": "launch", "runtimeArgs": ["-r", "ts-node/register"], "args": ["${workspaceFolder}/client_test.ts"] } ] }
</pre>
七、常见问题排障指南
问题1:UV安装超时
解决方案:
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 手动下载二进制(Linux示例) curl -LO https://github.com/astral-sh/uv/releases/download/v0.2.0/uv-linux-x86_64 chmod +x uv-linux-x86_64 sudo mv uv-linux-x86_64 /usr/local/bin/uv
</pre>
问题2:跨域请求被拦截
修复方案:在服务端添加CORS支持
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 在demo_server.py中添加 from fast_mcp.middleware import CORSMiddleware server = FastMCP(port=8080) server.add_middleware(CORSMiddleware, allow_origins=["*"])
</pre>
问题3:Node客户端类型错误
处理步骤:
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;"># 1\. 确保安装TypeScript npm install -D typescript # 2\. 生成类型声明 npx mcp-tools generate-types --output src/mcp-types.d.ts
</pre>
八、下一步学习建议
完成环境配置后,推荐实践路径:
- 修改greet工具:添加多语言支持
- 连接真实AI模型:集成Claude/DeepSeek API
- 部署到云服务:尝试Vercel一键部署
<pre data-tool="mdnice编辑器" style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">npm install -g vercel vercel deploy --env MCP_URL=http://localhost:8080
</pre>
🚀 效率提示:使用Anthropic提供的环境检测工具快速验证:
<pre style="-webkit-tap-highlight-color: transparent; margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; text-align: left;">
npx @mcp-tools/check-env # 输出结果应全部为绿色[PASS]
</pre>
下一篇预告:《快速部署你的第一个MCP服务器》
将深入讲解工具注册、SSE流式响应、权限控制等企业级功能!
推荐阅读
2025大语言模型部署实战指南:从个人笔记本到企业级服务的全栈方案 - 霍格沃兹测试开发学社 - 博客园
Playwright实战:写UI自动化脚本,速度直接起飞 - 霍格沃兹测试开发学社 - 博客园
2025大模型应用平台选型指南:从个人助手到企业级智能体,5大平台场景化拆解 - 霍格沃兹测试开发学社 - 博客园