内容
# MCP 基本模板
一个**简单、适合初学者**的模板,帮助您从头开始理解模型上下文协议(MCP)。
本仓库演示了MCP的**基本概念和底层机制**:
- 服务器如何暴露能力(工具、资源)
- 客户端如何发现和调用这些能力
- Claude Desktop 如何连接到并使用自定义MCP服务器
- 完整的流程:初始化 → 工具发现 → 工具执行
非常适合在构建自己的高级集成之前**学习MCP的基础知识**。
---
## 工作原理
服务器暴露能力 → 客户端发现并调用它们 → 主机(Claude Desktop / 您的应用程序)协调所有操作。
## 三个基本元素
| 基本元素 | 定义 | 控制方 |
|-----------|-----------|---------------|
| @tool | Claude 可以调用的函数 | 模型决定何时调用 |
| @resource | Claude 可以读取的数据 | 应用程序/用户暴露 |
| @prompt | 可重用的提示模板 | 用户触发 |
## 幕后机制
```
您的应用程序 / Claude Desktop ←→ MCP 客户端 ←→ MCP 服务器
(主机) (连接器) (能力提供者)
```
### 流程
1. 主机启动客户端
2. 客户端启动服务器作为子进程
3. 客户端发送:`initialize()` → 服务器响应其能力
4. 客户端发送:`list_tools()` → 服务器返回工具模式
5. Claude 决定调用 `get_weather` → 客户端发送 `call_tool("get_weather", {...})`
6. 服务器运行函数 → 返回结果
7. 客户端将结果传回Claude → Claude 在响应中使用它
## 项目结构
```
mcp-practice/
├── server.py ← 您的MCP服务器
├── client.py ← 您的测试客户端
└── requirements.txt ← mcp[cli], httpx
```
## 步骤 3 — 运行它(2种方式)
### 方式 1 — MCP Inspector(最适合学习,有UI)
```bash
mcp dev server.py
```
在localhost:6274打开浏览器UI,您可以在那里直观地调用工具并查看响应。首先使用此方法。
### 方式 2 — 手动运行客户端
```bash
# 终端 1 — 无需运行,客户端自动启动服务器
# 只需运行客户端
python client.py
```
## 步骤 4 — 连接到Claude Desktop
这是实际操作 — Claude本身调用您的工具。
找到Claude Desktop配置文件:
```bash
# Mac
~/Library/Application Support/Claude/claude_desktop_config.json
# Windows
%APPDATA%\Claude\claude_desktop_config.json
```
将其添加到配置文件中:
```json
{
"mcpServers": {
"weather-server": {
"command": "python",
"args": ["/full/path/to/your/server.py"]
}
}
}
```
## 然后:
- 保存文件
- 完全退出Claude Desktop(不仅仅是关闭窗口)
- 重新打开它
- 在聊天输入中查找 🔌 hammer图标
- 输入: "What's the weather in Lahore?"
- 观看Claude自动调用您的工具