主题
快速开始 
欢迎使用模型上下文协议 (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 mcpNode.js 
bash
npm install @modelcontextprotocol/sdk其他语言 
访问 SDK 页面 查看所有可用的开发工具包。
第一个 MCP 服务器 
让我们创建一个简单的天气服务器作为示例:
1. 设置环境 
bash
# 使用 uv 创建新项目
uv init weather-server
cd weather-server
uv add mcp httpx2. 创建服务器 
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