首页/评测文章/深度长文

MCP 完全指南:协议原理、生态现状与接入实战

过去一年 AI 工具链最大的变化,不是某个模型变强了,而是模型与外部世界的接口被标准化了。这个标准叫 Model Context Protocol(MCP),由 Anthropic 在 2024 年底开源。

它解决什么问题

在 MCP 之前,每接入一个工具你都要写一套定制胶水代码:A 框架的插件不能给 B 编辑器用,C 产品的连接器换个客户端就失效。M 个 AI 应用 × N 个工具 = M×N 份适配工作。

MCP 把这个矩阵压成了一根轴:工具方发布一个 MCP Server,任何支持 MCP 的客户端都能直接用。多了一次标准化,少了一整片重复劳动。

三个核心原语

  • Tools(工具):可被模型调用的函数,带 JSON Schema 描述参数——这是用得最多的一类;
  • Resources(资源):可被读取的数据,类似文件或数据库视图,由用户或客户端决定是否加载;
  • Prompts(提示模板):服务端预置的可复用提示词模板,常被忽略但很适合标准化工作流。

传输方式

  1. stdio:本地进程通过标准输入输出通信,最简单、最常用,适合本地工具;
  2. HTTP + SSE / Streamable HTTP:远程服务,适合多用户共享的托管型 Server。

生态现状

目前生态已相当可观:官方参考实现覆盖文件系统、Git、数据库、搜索;社区清单 awesome-mcp-servers 收录了数百个场景化 server;GitHub、Supabase、Cloudflare 等厂商都发布了官方 MCP。客户端侧,Claude、Cursor、Cline、Continue 等都已原生支持。

五分钟接入第一个 Server

以最常用的文件系统 server 为例,在客户端配置里加一条:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/data"]
    }
  }
}

重启客户端后问它「列出 /path/to/data 下的文件」,能看到工具被调用就说明通了。

自己写一个 Server

Python 生态用 FastMCP 最省事,一个装饰器就是一个工具:

from fastmcp import FastMCP

mcp = FastMCP("demo")

@mcp.tool()
def word_count(text: str) -> int:
    """统计文本的词数"""
    return len(text.split())

if __name__ == "__main__":
    mcp.run()

三个实践建议

  1. 工具描述比实现更重要:模型靠 description 决定是否调用,写清「什么时候用、参数什么含义」比优化代码收益更大;
  2. 控制工具数量:单次暴露给模型的工具超过 20 个,选择准确率会明显下降,按场景拆分 server;
  3. 权限最小化:能只读就别给写权限,尤其是文件系统与数据库类 server。
协议仍在快速演进,具体字段以官方规范最新版本为准。
本文基于公开资料整理,版本迭代较快,请以官方文档为准。 ← 返回文章列表

相关资源

M
MCP

Model Context Protocol(MCP) 精选

Anthropic 推出的模型上下文开放协议,已成为 AI 工具调用的事实标准;官方 servers 仓库收录文件系统、搜索、数据库等参考实现。Anthropic's open protocol connecting AI models to tools and data — the de-facto standard, with reference server implementations.

热度 86 详情 →
G
MCP

GitHub MCP Server 精选

GitHub 官方 MCP Server:让 Agent 直接读写仓库、管理 Issue/PR、检索代码与 Actions 状态,是把 AI 接入研发流程的第一步。GitHub's official MCP server: read/write repos, manage issues and PRs, search code and inspect Actions from your agent.

MCPGitHub官方代码协作
热度 92 详情 →
F
MCP

FastMCP

最流行的 Python MCP Server 开发框架,几行装饰器即可把函数发布为 MCP 工具,开发效率极高。The popular Pythonic framework for building MCP servers — expose functions as tools with a few decorators.

MCP开发框架Python
热度 72 详情 →
A
MCP

Awesome MCP Servers

最全的 MCP Server 清单(按场景分类):浏览器、数据库、办公、金融、设计等数十个类别,找现成 MCP 从这份清单开始最省时间。The most comprehensive MCP server list, categorized by scenario — browsers, databases, office, finance and more.

热度 81 详情 →
C
MCP

Context7 精选

给 Agent 喂「最新版本文档」的 MCP 服务:按库名实时拉取对应版本的 API 文档,解决模型知识过时导致的错误调用,写代码必备。An MCP service that feeds agents up-to-date, version-specific library docs — fixes stale-knowledge API mistakes.

MCP文档检索Upstash开发效率
热度 85 详情 →
↑