**MCP 协议实战指南:从环境准备到首次调用**
以下步骤带你快速上手 MCP(Model Context Protocol),让大语言模型安全、统一地调用外部工具并完成多步骤任务。
---
### 1. 环境准备
1. **安装 SDK**
官方提供 TypeScript / Python SDK,示例以 Python 为例:
```bash
pip install mcp-sdk
配置密钥与权限 在开发者后台创建
mcp-config.json
,声明模型可用的工具及操作范围:{ "api_key": "YOUR-MCP-KEY", "tools": { "notion": { "read": true, "write": true, "delete": false }, "search": { "read": true } } }
2. 定义工具描述(tool schema)
在 MCP 中,每个外部工具都用 JSON Schema 描述输入与返回结构。例如 Notion 创建任务:
{
"name": "notion.create_task",
"description": "在 Notion 数据库中添加任务",
"parameters": {
"type": "object",
"properties": {
"title": {"type": "string"},
"due": {"type": "string", "format": "date"}
},
"required": ["title"]
}
}
3. 启动模型并加载工具
from mcp_sdk import MCPClient, load_tools
client = MCPClient("mcp-config.json")
tools = load_tools(["notion.create_task", "search.query"])
client.register_tools(tools)
4. 发送带工具调用的对话
response = client.chat(
messages = [
{"role": "user", "content": "帮我查下明天北京天气,并在 Notion 添加提醒"}
],
stream = False
)
print(response)
过程解读
- 模型先调用
search.query
获取天气 →- 再调用
notion.create_task
创建任务 →- MCP 记录两步调用的权限与状态,返回结构化结果。
5. 查看审计日志
所有调用都会在 logs/mcp_audit.jsonl
存储:时间戳、工具名、参数、成功/失败状态,方便追踪与回滚。
6. 多步骤工作流示例(链式调用)
plan = """
1. 从 Perplexity 搜索过去 24h AI 新闻
2. 摘要 5 条
3. 写入 Notion 报告数据库
4. 发送邮件给团队
"""
client.run_agent(plan)
MCP 会按顺序执行工具,自动处理上下文与错误重试。
7. 常见问题
问题 | 解决方案 |
---|---|
权限报错 | 检查 mcp-config.json 中工具权限 |
超出上下文长度 | 启用分段摘要或检索增强(RAG) |
工具未识别 | 确认 tool schema 已注册 |
小结
- 一次适配,多模型共享:任何遵循 MCP 的 LLM 都能复用工具描述
- 安全可审计:每次调用都有权限声明与日志
- 易于扩展:新增工具只需添加 schema,无需改动现有逻辑
至此,你已完成从配置到多步骤自动化的完整流程。尝试将更多企业内应用(CRM、Jira、BI 等)接入 MCP,真正释放 AI 助手的生产力!