返回首页

介绍 MCP

· AI · #MCP

一句话总结:MCP 是 AI 的”USB-C 接口”——统一了 AI 与外部工具/数据源的连接方式,让模型能安全地”长出手脚”。

一、MCP 是什么

1.1 基本定义

项目内容
全称Model Context Protocol(模型上下文协议)
发起方Anthropic(2024 年 11 月开源)
许可证MIT(开源)
核心目标统一 AI 模型与外部数据源、工具之间的通信标准

1.2 类比理解:AI 的 USB-C

技术解决的问题效果
USB-C设备 ↔ 外设一个接口连接显示器、充电、耳机、存储
MCPAI 模型 ↔ 外部世界一套协议连接数据库、浏览器、文件系统、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
ClientHost 内的连接管理器,维护与一个 Server 的会话内置在 Host 中的 MCP Client 实例
Server提供具体能力的进程,暴露 Tools/Resources/Promptsfilesystem-mcppostgres-mcp

1.4 通信机制

传输方式

方式原理适用场景
stdio标准输入输出流,本地进程间通信本地工具(文件系统、数据库)
SSEServer-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-filesystemnpx -y @modelcontextprotocol/server-filesystem <path>读写本地文件,最基础必备
PostgreSQL@modelcontextprotocol/server-postgresnpx -y @modelcontextprotocol/server-postgres <url>查询数据库、查看 schema
SQLite@modelcontextprotocol/server-sqlitenpx -y @modelcontextprotocol/server-sqlite <db>轻量级数据库查询
GitHub@modelcontextprotocol/server-githubnpx -y @modelcontextprotocol/server-githubPR、Issue、代码库操作
Brave 搜索@modelcontextprotocol/server-brave-searchnpx -y @modelcontextprotocol/server-brave-search联网搜索(需 API Key)
Puppeteer@modelcontextprotocol/server-puppeteernpx -y @modelcontextprotocol/server-puppeteer浏览器自动化

4.2 社区精选 Server

场景Server来源
Figmafigma-mcp-server社区:读取设计稿
Linearlinear-mcp-server社区:项目管理
Notionnotion-mcp-server社区:文档协作
Slackslack-mcp-server社区:消息通知
Redisredis-mcp-server社区:缓存查询

查找更多:访问 MCP Servers 社区索引 获取完整列表。


五、MCP vs 传统集成方式

维度传统方式(API/SDK)MCP 方式
接入成本每个工具写适配代码一次配置,即插即用
上下文理解AI 不知道工具能做什么AI 自动读取工具描述和 Schema
标准化各家接口风格不一统一的 JSON-RPC 协议
权限管控自行实现Host 层统一控制
生态兼容绑定特定平台跨客户端通用

六、使用建议

6.1 起步配置(最小可用)

作为开发者,建议先配置这 3 个 Server:

  1. filesystem —— 让 AI 能读取你的项目文件(限定路径,避免暴露敏感目录)
  2. github —— 让 AI 能查看 Issue/PR,不用复制粘贴
  3. 一个数据库(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 工具查询"

参考