一句话总结:MCP 是 AI 的”USB-C 接口”——统一了 AI 与外部工具/数据源的连接方式,让模型能安全地”长出手脚”。
一、MCP 是什么
1.1 基本定义
| 项目 | 内容 |
|---|---|
| 全称 | Model Context Protocol(模型上下文协议) |
| 发起方 | Anthropic(2024 年 11 月开源) |
| 许可证 | MIT(开源) |
| 核心目标 | 统一 AI 模型与外部数据源、工具之间的通信标准 |
1.2 类比理解:AI 的 USB-C
| 技术 | 解决的问题 | 效果 |
|---|---|---|
| USB-C | 设备 ↔ 外设 | 一个接口连接显示器、充电、耳机、存储 |
| MCP | AI 模型 ↔ 外部世界 | 一套协议连接数据库、浏览器、文件系统、API |
以前每个工具都要写适配器(Adapter),现在只要实现一次 MCP Server,任何支持 MCP 的客户端都能使用。
1.3 架构组成
MCP 采用客户端-服务器架构,包含三个角色:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ MCP Host │────▶│ MCP Client │────▶│ MCP Server │
│ (AI 应用主体) │ │ (连接管理器) │ │ (工具提供者) │
│ │ │ │ │ │
│ • Claude Desktop│ │ • 管理连接生命周期│ │ • 文件系统访问 │
│ • Kimi CLI │ │ • 协议转换 │ │ • 数据库查询 │
│ • Cursor │ │ • 错误处理 │ │ • GitHub API │
└─────────────────┘ └─────────────────┘ └─────────────────┘
| 角色 | 职责 | 示例 |
|---|---|---|
| Host | 承载 AI 模型的应用程序,发起连接 | Claude Desktop、Kimi CLI、Cursor |
| Client | Host 内的连接管理器,维护与一个 Server 的会话 | 内置在 Host 中的 MCP Client 实例 |
| Server | 提供具体能力的进程,暴露 Tools/Resources/Prompts | filesystem-mcp、postgres-mcp |
1.4 通信机制
传输方式:
| 方式 | 原理 | 适用场景 |
|---|---|---|
| stdio | 标准输入输出流,本地进程间通信 | 本地工具(文件系统、数据库) |
| SSE | Server-Sent Events over HTTP | 远程服务、Web API |
协议层:JSON-RPC 2.0
// 工具调用请求
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "query_database",
"arguments": { "sql": "SELECT * FROM users" }
}
}
二、MCP 的核心能力
MCP Server 可以向 AI 暴露三种能力:
2.1 Tools(工具)
被动调用——AI 决定何时使用,类似函数调用。
| 特性 | 说明 |
|---|---|
| 触发方式 | AI 根据上下文自动判断调用 |
| 典型用途 | 查询数据库、调用 API、执行命令 |
| 输入输出 | Schema 定义参数,返回结构化结果 |
// 工具定义示例
{
"name": "read_file",
"description": "读取文件内容",
"inputSchema": {
"type": "object",
"properties": {
"path": { "type": "string" }
},
"required": ["path"]
}
}
2.2 Resources(资源)
主动读取——类似 REST API 的 GET,提供上下文数据。
| 特性 | 说明 |
|---|---|
| 触发方式 | AI 或用户显式请求读取 |
| 典型用途 | 文件内容、数据库 schema、API 文档 |
| 更新机制 | 可订阅变更(Server 推送更新) |
2.3 Prompts(提示词模板)
预定义模板——标准化的 Prompt,减少重复输入。
| 特性 | 说明 |
|---|---|
| 触发方式 | 用户选择或 AI 推荐 |
| 典型用途 | 代码审查模板、测试生成模板 |
| 参数化 | 支持变量替换 |
三、Kimi CLI 中配置 MCP
3.1 配置文件位置
~/.config/kimi/mcp.json # Linux/macOS
%APPDATA%\kimi\mcp.json # Windows
3.2 配置格式
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/name/projects"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" }
}
}
}
3.3 验证配置
# 列出所有已连接的 MCP 服务器
kimi mcp list
# 测试特定服务器的连通性
kimi mcp test github
四、常用 MCP Server 推荐
4.1 官方/高质量 Server
| 场景 | Server | 安装命令 | 说明 |
|---|---|---|---|
| 文件系统 | @modelcontextprotocol/server-filesystem | npx -y @modelcontextprotocol/server-filesystem <path> | 读写本地文件,最基础必备 |
| PostgreSQL | @modelcontextprotocol/server-postgres | npx -y @modelcontextprotocol/server-postgres <url> | 查询数据库、查看 schema |
| SQLite | @modelcontextprotocol/server-sqlite | npx -y @modelcontextprotocol/server-sqlite <db> | 轻量级数据库查询 |
| GitHub | @modelcontextprotocol/server-github | npx -y @modelcontextprotocol/server-github | PR、Issue、代码库操作 |
| Brave 搜索 | @modelcontextprotocol/server-brave-search | npx -y @modelcontextprotocol/server-brave-search | 联网搜索(需 API Key) |
| Puppeteer | @modelcontextprotocol/server-puppeteer | npx -y @modelcontextprotocol/server-puppeteer | 浏览器自动化 |
4.2 社区精选 Server
| 场景 | Server | 来源 |
|---|---|---|
| Figma | figma-mcp-server | 社区:读取设计稿 |
| Linear | linear-mcp-server | 社区:项目管理 |
| Notion | notion-mcp-server | 社区:文档协作 |
| Slack | slack-mcp-server | 社区:消息通知 |
| Redis | redis-mcp-server | 社区:缓存查询 |
查找更多:访问 MCP Servers 社区索引 获取完整列表。
五、MCP vs 传统集成方式
| 维度 | 传统方式(API/SDK) | MCP 方式 |
|---|---|---|
| 接入成本 | 每个工具写适配代码 | 一次配置,即插即用 |
| 上下文理解 | AI 不知道工具能做什么 | AI 自动读取工具描述和 Schema |
| 标准化 | 各家接口风格不一 | 统一的 JSON-RPC 协议 |
| 权限管控 | 自行实现 | Host 层统一控制 |
| 生态兼容 | 绑定特定平台 | 跨客户端通用 |
六、使用建议
6.1 起步配置(最小可用)
作为开发者,建议先配置这 3 个 Server:
- filesystem —— 让 AI 能读取你的项目文件(限定路径,避免暴露敏感目录)
- github —— 让 AI 能查看 Issue/PR,不用复制粘贴
- 一个数据库(postgres/sqlite)—— 让 AI 直接查 schema,消除幻觉
6.2 安全注意事项
| 风险 | 防护措施 |
|---|---|
| 文件系统越权访问 | 只暴露项目目录,不要暴露 ~/.ssh、~/.env |
| 数据库误操作 | 使用只读账号,或限制到特定数据库 |
| Token 泄漏 | 将 API Key 放在环境变量,不要硬编码在配置文件 |
6.3 故障排查
# Server 无法启动?
1. 检查 Node.js 版本(需 18+)
2. 确认 npx 能正常运行
3. 查看 Kimi CLI 的详细日志:kimi --verbose
# AI 没有调用工具?
1. 确认 mcp.json 格式正确
2. 运行 kimi mcp list 查看是否已连接
3. 在对话中明确提示"请使用 xxx 工具查询"