---
title: "什么是 MCP (模型上下文协议)？"
canonical: https://wavect.io/zh/glossary/mcp/
language: zh
description: "一种开放协议，让 AI 模型可以安全地连接外部工具与数据源，而无需为每个模型单独写定制集成。"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

技术

# MCP

模型上下文协议

一种开放协议，让 AI 模型可以安全地连接外部工具与数据源，而无需为每个模型单独写定制集成。

最近审阅: 2026-08-07 审阅人 [Kevin Riedl](/zh/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

Model Context Protocol（MCP）之于 [AI Agent](/zh/glossary/ai-agents/) ，相当于 HTTP 之于 Web：一份共享、开放的标准，规定模型如何与外界其余部分对话。它由 Anthropic 在 2024 年末推出，并在 2025 与 2026 年被广泛采用。

技术形态：一个 MCP 服务器通过一份定义好的 schema 暴露资源、工具与 Prompt。任何 MCP 兼容客户端（Claude Desktop、Claude Code、API、一个 IDE 插件）都能发现并调用这些工具，而不需要按厂商写胶水代码。集成做一次，每个 MCP 客户端都受益。

这种杠杆，举个实际例子：一家公司把它的内部 CRM、分析数仓和文档库封装成三个 MCP 服务器。这个季度团队在用 Claude；下个季度出于成本原因他们试用另一个模型。如果函数调用绑死在一个厂商上，那次切换意味着重写每一个集成。有了 MCP，他们把新客户端指向同样这三个服务器就行了。集成成本只付了一次，不是每个模型一次。把这些服务器与对文档库的 [RAG](/zh/glossary/rag/) 配对，你就能从内部数据得到有接地的答案，无需定制管道。

诚实的取舍与创始人的错误：只有当你预期会更换模型、或想要可移植性时，MCP 才是正确的选择；如果你永久绑定在一个供应商上，朴素的函数调用更简单也没问题。更大的风险是安全。MCP 是一个传输协议，不是一个权限模型。一个草率的 MCP 服务器，把一个有写能力的工具配上薄弱的鉴权暴露出来，就是一个等着发生的「Confused Deputy」，模型会被骗去调用它不该调用的东西。运行第三方配置之前，可以用 [MCP Install Risk Scanner](/zh/tools/mcp-install-risk-scanner/) 在本地检查完整命令、路径、密钥、版本固定、网络和容器 flags。我们经常构建 MCP 服务器并已经把它们部署到生产；我们也为每一个都写一份安全评估，因为标准还在变，而失败模式是你的内部系统，不是一个聊天机器人说了句蠢话。只有当一个工具在模型循环里确实有用、且安全模型允许模型去调用它时，我们才把它封装进 MCP，对任何破坏性的动作都加上 Human-in-the-Loop。

// FAQ

## 常见问题

### 已经在用 Function-Calling，还需要 MCP 吗？

Function-Calling 是按厂商的。MCP 是可移植的。如果你永远不打算更换模型厂商，Function-Calling 就够用。如果你想能切换厂商（多数企业都想），MCP 是 lock-in 更低的选择。

### MCP 安全吗？

MCP 本身是传输协议，安全性取决于服务器暴露了什么、如何鉴权。一个写得差的 MCP 服务器就是等着出错的「Confused Deputy」。一个写得好的不会比普通内部 API 更危险。

### 你们怎么决定哪些工具该封装成 MCP？

两个标准：底层工具放进 LLM 循环里是真的有用，并且安全模型允许模型来调用（涉及破坏性操作的，最好保留 Human-in-the-Loop）。其余的就保持为普通 API。

相关术语

- [AI Agents](/zh/glossary/ai-agents/)
- [RAG](/zh/glossary/rag/)

相关服务

- [人工智能](/zh/services/artificial-intelligence/)

相关案例研究

- [PromptID](/zh/case-studies/promptid/)
- [Twinsoft AI](/zh/case-studies/twinsoft-ai/)

相关指南

- [如何为 MVP 选择技术栈](/zh/software-development-guide/how-to-choose-a-tech-stack-for-mvp/)

聊聊

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/glossary/mcp/#term",
      "@type": "DefinedTerm",
      "alternateName": [],
      "description": "一种开放协议，让 AI 模型可以安全地连接外部工具与数据源，而无需为每个模型单独写定制集成。",
      "inDefinedTermSet": "https://wavect.io/zh/glossary/#termset",
      "name": "MCP",
      "termCode": "mcp",
      "url": "https://wavect.io/zh/glossary/mcp/"
    },
    {
      "@id": "https://wavect.io/zh/glossary/mcp/#webpage",
      "@type": "WebPage",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-08-07",
      "description": "一种开放协议，让 AI 模型可以安全地连接外部工具与数据源，而无需为每个模型单独写定制集成。",
      "headline": "MCP",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-07",
      "mainEntity": {
        "@id": "https://wavect.io/zh/glossary/mcp/#term"
      },
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        {
          "@type": "Service",
          "name": "人工智能",
          "url": "https://wavect.io/zh/services/artificial-intelligence/"
        }
      ],
      "name": "MCP",
      "reviewedBy": {
        "@id": "https://wavect.io/team/christof-jori/#person",
        "@type": "Person",
        "name": "Christof Jori",
        "url": "https://wavect.io/team/christof-jori/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".gls-single__h1",
          ".gls-single__tldr"
        ]
      },
      "url": "https://wavect.io/zh/glossary/mcp/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/glossary/",
          "name": "技术、产品与合作模式术语表",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/glossary/mcp/",
          "name": "MCP",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Function-Calling 是按厂商的。MCP 是可移植的。如果你永远不打算更换模型厂商，Function-Calling 就够用。如果你想能切换厂商（多数企业都想），MCP 是 lock-in 更低的选择。"
      },
      "name": "已经在用 Function-Calling，还需要 MCP 吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "MCP 本身是传输协议，安全性取决于服务器暴露了什么、如何鉴权。一个写得差的 MCP 服务器就是等着出错的「Confused Deputy」。一个写得好的不会比普通内部 API 更危险。"
      },
      "name": "MCP 安全吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "两个标准：底层工具放进 LLM 循环里是真的有用，并且安全模型允许模型来调用（涉及破坏性操作的，最好保留 Human-in-the-Loop）。其余的就保持为普通 API。"
      },
      "name": "你们怎么决定哪些工具该封装成 MCP？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
