mcp是什么?

MCP(Model Context Protocol)是由Anthropic主导的开放协议,旨在为AI模型(如Claude、GPT等)提供标准化接口,实现与外部数据源、工具的无缝集成,解决传统"烟囱式开发"导致的集成复杂性和数据孤岛问题。类比为AI领域的"USB-C接口",一次连接即可访问多种资源。

相关教程链接

https://modelcontextprotocol.io/introduction

https://www.anthropic.com/news/model-context-protocol

https://github.com/modelcontextprotocol/typescript-sdk

https://docs.cursor.com/context/model-context-protocol

技术架构

采用客户端-服务器模型:

  • ​客户端:嵌入AI应用(如Claude Desktop、IDE),发起请求

  • ​服务器:轻量级程序,提供三类核心功能:

    • ​工具(Tools)​:可执行函数(如数据库查询、邮件发送)

    • ​资源(Resources)​:结构化数据(文档、API响应)

    • ​提示(Prompts)​:预置任务模板(如代码生成规范)

  • 通信基于JSON-RPC 2.0,支持本地(stdio)和远程(HTTP/SSE)传输。

需注意

核心架构概念介绍

https://modelcontextprotocol.io/docs/concepts/architecture

不同客户端支持的类型

​客户端

Resources

​Prompts

​Tools

​Sampling

​Roots

​备注

Claude Desktop App

全面支持所有 MCP 功能

5ire

仅支持工具功能

BeeAI Framework

在自主工作流中支持工具

Cline

支持工具和资源

Continue

全面支持所有 MCP 功能

Cursor

支持工具功能

Emacs Mcp

在 Emacs 中支持工具

Firebase Genkit

⚠️

通过工具支持资源列表及查找(部分支持)

GenAIScript

支持工具功能

Goose

支持工具功能

LibreChat

支持自主代理工具

mcp-agent

⚠️

支持工具和服务器连接管理(采样部分支持)

oterm

支持工具功能

Roo Code

支持工具和资源

Sourcegraph Cody

通过 OpenCTX 支持资源

Superinterface

支持工具功能

TheiaAI/TheiaIDE

在 Theia 生态中支持自主代理工具

Windsurf Editor

通过 AI Flow 支持协作开发工具

Zed

提示模板以斜杠命令形式呈现

SpinAI

支持 TypeScript 自主代理工具

OpenSumi

在 OpenSumi 中支持工具

Daydreams Agents

支持无缝接入第三方服务器

简要说明


https://modelcontextprotocol.io/docs/concepts/tools

由于我使用的是curosr ,现在仅支持tools,我也只暂时了解tools cursor 相关的mcp内容。

官方demo

可以用来学习使用
https://github.com/modelcontextprotocol/quickstart-resources/tree/main/weather-server-typescript

mcp server列表

一些现成的mcp服务器

https://github.com/modelcontextprotocol/servers

https://github.com/punkpeye/awesome-mcp-servers/blob/main/README-zh.md

cursor中的MCP

概念

你可以将MCP视为Cursor的插件系统,通过标准化的接口将Cursor连接到各种数据源和工具。

https://docs.cursor.com/context/model-context-protocol

支持的传输类型

咱这里先从stdio 本地的方式搞起

💻 stdio

- 在本地计算机上运行

- 由 Cursor 自动管理

- 直接通信stdout

- 仅由您在本地访问

输入:Cursor 自动运行的有效 shell 命令

🌐 SSE

- 可以在本地或远程运行

- 由您管理和运营

- 通过网络进行通信

- 可以在计算机之间共享

输入:指向cursor外部的 MCP 服务器端点的 URL/sse

局限性

工具数量

简要来说就是cursor只会将前40个工具发送给agent,“工具”则是sever.tools定义的,而mcp服务器大多不止一个“工具”,如果你使用数量过多可能会导致无法引用你的“工具”。

远程开发

cursor从本地直接与mcp服务器通信,ssh或者其他开发环境可能无法正常工作。

MCP Resources

cursor 现在只支持tools,并不支持resources。

现阶段cursor对于mcp支持其实并不怎么样,很多好玩的 好用的工具功能支持有限,但对于一些查询知识库 查询数据库 资源搜索等还是ok的。