2025-08-13

零基础学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>

八、下一步学习建议

完成环境配置后,推荐实践路径:

  1. 修改greet工具:添加多语言支持
  2. 连接真实AI模型:集成Claude/DeepSeek API
  3. 部署到云服务:尝试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大平台场景化拆解 - 霍格沃兹测试开发学社 - 博客园

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容