主题
快速开始
欢迎使用模型上下文协议 (MCP)!本指南将帮助您快速了解 MCP 的核心概念并开始构建。
核心概念
MCP 服务器可以提供三种主要类型的功能:
- 资源 (Resources):类似文件的数据,可以被客户端读取(如 API 响应或文件内容)
- 工具 (Tools):可以被 LLM 调用的函数(需要用户批准)
- 提示 (Prompts):帮助用户完成特定任务的预写模板
系统要求
在开始之前,请确保您的系统满足以下要求:
Python 开发
- Python 3.10 或更高版本
- 必须使用 Python MCP SDK 1.2.0 或更高版本
Node.js 开发
- Node.js 18 或更高版本
- npm 或 yarn 包管理器
安装 SDK
MCP 提供多种语言的官方 SDK:
Python
bash
pip install mcp
Node.js
bash
npm install @modelcontextprotocol/sdk
其他语言
访问 SDK 页面 查看所有可用的开发工具包。
第一个 MCP 服务器
让我们创建一个简单的天气服务器作为示例:
1. 设置环境
bash
# 使用 uv 创建新项目
uv init weather-server
cd weather-server
uv add mcp httpx
2. 创建服务器
python
from typing import Any
import httpx
from mcp.server.fastmcp import FastMCP
# 初始化 FastMCP 服务器
mcp = FastMCP("weather")
@mcp.tool()
async def get_weather(city: str) -> str:
"""获取指定城市的天气信息
Args:
city: 城市名称
"""
# 这里是示例实现
return f"{city} 的天气:晴朗,温度 25°C"
if __name__ == "__main__":
mcp.run()
3. 运行服务器
bash
python weather.py
连接到客户端
使用 Claude Desktop
- 安装 Claude Desktop
- 配置 MCP 服务器:
json
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["path/to/weather.py"]
}
}
}
构建自定义客户端
您也可以构建自己的客户端来连接到 MCP 服务器。查看我们的客户端构建指南了解详细信息。
日志记录最佳实践
在实现 MCP 服务器时,请注意日志记录的处理方式:
基于 STDIO 的服务器
- 绝不写入标准输出 (stdout)
- 避免使用
print()
语句 - 使用写入 stderr 或文件的日志库
python
# ❌ 错误做法 (STDIO)
print("处理请求")
# ✅ 正确做法 (STDIO)
import logging
logging.info("处理请求")
基于 HTTP 的服务器
- 标准输出日志记录是可以的,因为它不会干扰 HTTP 响应
下一步
现在您已经了解了基础知识,可以探索更多功能:
获得帮助
如果您遇到问题或有疑问:
- 访问 GitHub Discussions
- 查看 社区沟通 了解如何参与改进 MCP