使用说明
MCP服务器演示
示例MCP(模型上下文协议)服务器,展示如何为Claude Code和其他MCP客户端构建自定义集成。
什么是MCP?
这个(或“该”) 模型上下文协议(MCP) 这是一个开放标准,使人工智能应用程序能够安全地连接到外部数据源和工具。它为人工智能助手提供了一个通用接口,以与各种系统进行交互。
演示服务器
此存储库包含两个示例MCP服务器:
1. 新闻服务器(Python)
地点: news-mcp-server/
一个基于Python的MCP服务器,用于从RSS订阅中获取新闻标题。
工具:
get_headlines按类别获取最新新闻(科技、综合、商业、体育)get_news_from_source从特定来源获取新闻(BBC、路透社、TechCrunch、The Verge、Wired、ESPN、华尔街日报)
技术栈: Python 3,mcp SDK,feedparser,httpx
2. 天气服务器(Node.js)
地点: weather-mcp-server/
一个基于Node.js的MCP服务器,提供实时天气信息。
工具:
get_weather获取全球任何城市的当前天气
技术栈: Node.js,@modelcontextprotocol/sdk,wttr.in API
快速入门
先决条件
安装
新闻服务器(Python)
cd news-mcp-server
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
天气服务器(Node.js)
cd weather-mcp-server
# Install dependencies
npm install
配置
这个仓库包含一个 .mcp.json 在Claude Code中,将该仓库用作工作目录时有效的配置文件。
使用随附的配置
该 .mcp.json 存储库根目录中的文件被配置为使用相对路径工作:
{
"mcpServers": {
"news": {
"command": "./news-mcp-server/venv/bin/python",
"args": ["news-mcp-server/news-server.py"]
},
"weather": {
"command": "node",
"args": ["weather-mcp-server/server.js"]
}
}
}
要使用此配置:
- 确保两台服务器都已安装(参见上文的安装部分)
- 在(此处)打开Claude代码
mcp-demos目录 - 重启Claude代码以加载配置
备选方案:CLI 配置
您也可以使用Claude Code CLI添加这些服务器:
# Add news server (use absolute path to venv python)
claude mcp add --transport stdio news \
-- /absolute/path/to/mcp-demos/news-mcp-server/venv/bin/python \
news-mcp-server/news-server.py
# Add weather server
claude mcp add --transport stdio weather \
-- node weather-mcp-server/server.js
验证安装
claude mcp list
你应该看到两者 news 并且 weather 列出的服务器。
使用MCP Inspector进行测试
这个(或:该) MCP 检查器 这是一个基于浏览器的工具,用于测试MCP服务器。
测试新闻服务器
# From the repository root
npx @modelcontextprotocol/inspector \
/absolute/path/to/mcp-demos/news-mcp-server/venv/bin/python \
/absolute/path/to/mcp-demos/news-mcp-server/news-server.py
注: 在使用检查器时,你必须使用绝对路径。替换 /absolute/path/to/mcp-demos 与实际路径相符。
测试天气服务器
# From the repository root
npx @modelcontextprotocol/inspector \
node \
/absolute/path/to/mcp-demos/weather-mcp-server/server.js
检查员将:
- 启动您的MCP服务器
- 在(指定地址)启动一个网页用户界面
http://localhost:6274 - 允许您交互式地测试工具并查看日志
使用示例
一旦在Claude Code中进行配置,您就可以提问:
- “东京的天气怎么样?”
- “给我带来最新的科技新闻”
- “给我看看体育新闻头条”
- “BBC 有什么新闻?”
项目结构
mcp-demos/
├── README.md
├── .mcp.json # MCP server configuration
├── news-mcp-server/
│ ├── news-server.py # Python MCP server implementation
│ ├── requirements.txt # Python dependencies
│ └── venv/ # Python virtual environment (created during setup)
└── weather-mcp-server/
├── server.js # Node.js MCP server implementation
├── package.json # Node.js dependencies
├── package-lock.json # Locked dependency versions
└── node_modules/ # Node.js packages (created during setup)
故障排除
新闻服务器问题
模块未找到错误:
# Make sure virtual environment is activated and dependencies installed
cd news-mcp-server
source venv/bin/activate
pip install -r requirements.txt
服务器无响应:
- 检查虚拟环境是否已创建并已激活
- 验证所有依赖项是否已安装
- 检查Claude Code的日志以查找错误信息
- 确保你正在从 mcp-demos 目录运行 Claude 代码
天气服务器问题
模块未找到错误:
# Reinstall dependencies
cd weather-mcp-server
npm install
服务器无响应:
- 验证 Node.js 版本是否为 18 或更高版本:
node --version - 检查 node_modules 目录是否存在
- 确保网络可以访问wttr.in API
检查器连接错误
浏览器中出现“连接错误”:
- 确保你使用的是绝对路径,而不是相对路径
- 检查命令是否在一行内,或者是否使用反斜杠进行换行续接
- 验证服务器进程能否无错误启动
“spawn ENOENT”错误:
- 再次检查文件路径是否正确
- 使用绝对路径以避免歧义
- 确认你处于正确的工作目录中
配置问题
服务器未在Claude代码中显示:
- 验证
.mcp.json存在于你的项目根目录中 - 检查JSON语法是否有效(无尾随逗号,引号使用正确)
- 确保在配置更改后重新启动了 Claude Code
- 跑
claude mcp list查看服务器是否已加载 - 确保为Python服务器创建了虚拟环境(venv)
- 确保已为Node.js服务器安装了node_modules
了解更多
- 模型上下文协议文档
- 克劳德代码文档
- MCP Python SDK(MCP Python软件开发工具包)
- MCP TypeScript SDK(MCP TypeScript软件开发工具包)
- MCP 检查器
许可证
麻省理工学院(MIT)
做出贡献
欢迎贡献!如有任何建议,请创建一个议题。