模型上下文协议

MCP是一种开放协议,用于无缝集成LLM应用与外部数据源和工具,提供标准化连接方式。

  • by jiseralice
  • 本地部署
  • 更新于
在 GitHub 查看 jiseralice/mcp-server

使用说明

mcp服务器

🌟 模型上下文协议(MCP)

📋 目录


🎯 什么是MCP?

这 模型上下文协议(MCP) 是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论您是在构建基于AI的IDE、增强聊天界面,还是创建自定义AI工作流程,MCP都提供了一种标准化的方式将LLM与所需的上下文连接起来。

🌟 关键利益

  • 🔗 标准化集成:一种将任何LLM应用程序与任何数据源连接的协议
  • 🧩 可组合架构:混合搭配服务器,构建强大的人工智能工作流程
  • 🔒 安全第一:内置安全原则和用户同意控制
  • 🚀 易于构建:用于创建服务器和客户端的简单界面
  • 🌐 成长中的生态系统:已有500多台服务器和50多台客户端可用

🎨 核心概念

MCP提供三个主要原语:

  1. 📄 资源:用户或AI模型使用的上下文和数据
  2. 🎯 提示:为用户提供模板消息和工作流
  3. 🛠️ 工具:AI模型要执行的函数
  4. 🔄 采样:服务器发起的代理行为和递归LLM交互

🏗️ 架构概述

MCP遵循客户端-主机-服务器架构,其中每个主机可以运行多个客户端实例:

graph TB
    Host[🏠 Host Application]
    Client1[📱 MCP Client 1]
    Client2[📱 MCP Client 2]
    Client3[📱 MCP Client 3]
    
    Server1[🔧 Database Server]
    Server2[🌐 Web API Server]
    Server3[📁 File System Server]
    Server4[🔍 Search Server]
    
    Host --> Client1
    Host --> Client2
    Host --> Client3
    
    Client1 --> Server1
    Client2 --> Server2
    Client3 --> Server3
    Client3 --> Server4
    
    style Host fill:#e1f5fe
    style Client1 fill:#f3e5f5
    style Client2 fill:#f3e5f5
    style Client3 fill:#f3e5f5
    style Server1 fill:#e8f5e8
    style Server2 fill:#e8f5e8
    style Server3 fill:#e8f5e8
    style Server4 fill:#e8f5e8

🔧 组件

  • 🏠 主机:容器和协调器(创建客户端、管理安全性、处理授权)
  • 📱 客户:隔离的服务器连接(协议协商、消息路由、安全边界)
  • 🔧 服务器:专业背景和能力提供者(公开资源、工具、提示)

🔧 核心功能

📄 资源

资源允许服务器共享为语言模型提供上下文的数据:

  • 📁 文件和文档
  • 🗄️ 数据库架构
  • 🌐 API响应
  • 📊 应用程序特定信息

🎯 提示

指导语言模型交互的预定义模板或说明:

  • 🔄 可重复使用的模板
  • 📝 动态参数
  • 🎨 多步骤工作流程
  • 💡 互动式指导

🛠️ 工具

允许模型执行操作的可执行函数:

  • 🔍 查询数据库
  • 📞 调用API
  • 🧮 执行计算
  • 🔄 执行工作流

🔄 采样

服务器为代理行为发起LLM交互:

  • 🤖 嵌套LLM调用
  • 🔄 递归交互
  • 🎯 上下文感知完成
  • 👤 人机交互控制

📚 官方SDK

语言 存储库 星级 描述
TypeScript 打字sdk TypeScript官方SDK
python python sdk 官方Python SDK
Java java sdk 官方Java SDK(含Spring AI)
科特林 科特林sdk 官方Kotlin SDK(含JetBrains)
C csharp sdk 官方C#SDK(与微软合作)
迅速的 swift sdk Swift官方SDK
红宝石 ruby sdk 官方Ruby SDK(含Shopify)

🚀 快速入门示例

🟦 TypeScript Example
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

// Create an MCP server
const server = new McpServer({
  name: "Demo",
  version: "1.0.0"
});

// Add a tool
server.tool("add",
  { a: z.number(), b: z.number() },
  async ({ a, b }) => ({
    content: [{ type: "text", text: String(a + b) }]
  })
);

// Start the server
const transport = new StdioServerTransport();
await server.connect(transport);
🐍 Python Example
from mcp.server import Server
import mcp.types as types

app = Server("demo-server")

@app.tool()
async def add(a: float, b: float) -> str:
    """Add two numbers together."""
    return str(a + b)

# Run with: python -m mcp.server.stdio server.py

🖥️ MCP客户端

🌟 特色客户

客户端 功能 资源 提示 工具 采样 注释
🤖 克劳德桌面 ✅ 全力支持 ✅ ✅ ✅ ❌ Anthropic官方客户
🌐 Claude.ai ✅ 远程MCP ✅ ✅ ✅ ❌ 基于Web的客户端
💻 光标 ✅ 工具 ❌ ❌ ✅ ❌ AI代码编辑器
🌪️ 帆板运动 ✅ 工具+发现 ❌ ❌ ✅ ✅ 代理IDE
🔧 克莱恩 ✅ 工具+资源 ✅ ❌ ✅ ✅ VS代码扩展
🔄 继续 ✅ 全力支持 ✅ ✅ ✅ ❓ 开源AI助手

📱 完整的客户列表

🖥️ Desktop Applications
  • 🤖 Claude桌面应用程序 -本地和远程服务器完全支持MCP
  • 💻 光标 -支持工具的AI代码编辑器
  • 🌪️ Windsurf编辑器 -带有AI Flow的代理IDE
  • 🔧 克莱恩 -VS Code的自主编码代理
  • 🔄 继续 -开源AI代码助手
  • ⚡ BoltAI -支持MCP的原生AI聊天客户端
  • 📝 册 -本地LLM的跨平台桌面应用程序
  • 🎨 机智 -适用于macOS、Windows、Linux的AI桌面助手
🌐 Web Applications
  • 🌐 Claude.ai -基于Web的Claude,配备远程MCP服务器
  • 🎯 代理流程 -拥有10000多种工具的无代码AI平台
  • 🔍 格拉玛 -集成MCP的AI工作空间
  • 🧠 MindPal -AI代理无代码平台
  • 🎪 超级接口 -人工智能基础设施平台
  • 📊 水獭属 -用于自动化工作流程的AI代理
🛠️ Developer Tools
  • 📊 邮递员 -API客户提供MCP测试支持
  • 🔍 VS代码GitHub副本 -GitHub Copilot与MCP集成
  • 🚀 Genaiscript -LLM提示的JavaScript工具箱
  • 🎯 TheiaAI/TheiaIDE -AI增强型开发环境
  • 🔧 捷脑 -使用JetBrains IDE处理代码
📱 Mobile & Messaging
  • 📱 WhatsMPC -WhatsApp的MCP客户端
  • 💬 Slack MCP客户端 -Slack和MCP服务器之间的桥梁
  • 🎮 打字思维应用程序 -LLM的高级前端

🔌 参考服务器

这些服务器展示了MCP功能和官方SDK:

服务器 描述 语言 功能 存储库
🔍 勇敢的搜索 使用Brave的API进行Web和本地搜索 TypeScript 搜索,Web内容 GitHub
📁 文件系统 使用访问控制保护文件操作 TypeScript 文件管理 GitHub
🔧 Git 用于读取、搜索和操作Git存储库的工具 Python 版本控制 GitHub
🐙 GitHub 存储库管理和GitHub API集成 TypeScript 代码管理 GitHub
🗄️ PostgreSQL 带模式检查的只读数据库访问 Python 数据库 GitHub
🕷️ 操纵者 浏览器自动化和web抓取 TypeScript web自动化 GitHub
💾 记忆 基于知识图的持久内存系统 TypeScript 数据存储 GitHub
⏰ 时间 时间和时区转换功能 TypeScript 实用程序 GitHub

🏢 官方整合

由公司维护的生产就绪MCP服务器:

🌟 企业平台

☁️ Cloud & Infrastructure
  • ☁️ 亚马逊云服务 -用于AWS服务的专用MCP服务器| GitHub
  • 🔵 微软 Azure -Azure服务集成| GitHub
  • 🌐 云耀 -部署和配置Cloudflare资源| GitHub
  • 🔧 普鲁米 -基础设施即代码管理| GitHub
  • ⚙️ 地形 -基础设施自动化| GitHub
  • 🐳 库贝内特斯 -容器编排管理| GitHub
🗄️ Databases & Analytics
  • 🐘 PostgreSQL -数据库操作和查询| GitHub
  • 🏠 ClickHouse -实时分析数据库| GitHub
  • 🔍 弹性搜索 -搜索和分析引擎| GitHub
  • 📊 BigQuery -谷歌的数据仓库| GitHub
  • 🦆 鸭妈妈 -DuckDB云分析| GitHub
  • ⚡ 单店 -实时数据库平台| GitHub
  • 🌟 星岩 -高性能分析数据库| GitHub
🛠️ Development Tools
  • 🐙 GitHub -官方GitHub MCP服务器| GitHub
  • 🦊 GitLab公司 -GitLab API集成| GitHub
  • 🔄 CircleCI 的 -CI/CD管道管理| GitHub
  • 🚀 构建套件 -构建自动化平台| GitHub
  • 🧪 哨兵 -错误跟踪和监控| GitHub
  • 📊 格拉法纳 -监控和可观察性| GitHub
💼 Business Applications
  • 📧 Slack -团队沟通平台| GitHub
  • 📝 概念 -工作空间和文档| GitHub
  • 📋 线性 -项目管理和问题跟踪| GitHub
  • 💰 条纹 -支付处理平台| GitHub
  • 💳 贝宝 -支付服务集成| GitHub
  • 📊 HubSpot -CRM和营销平台| GitHub

🔍 搜索与人工智能

🔍 Search Engines
  • 🔍 Exa -为人工智能打造的搜索引擎| GitHub
  • 🌐 塔维利 -人工智能代理的搜索引擎| GitHub
  • 🔎 Kagi搜索 -关注隐私的搜索API| GitHub
  • 🌟 困惑度 -实时网络研究API| GitHub
🤖 AI & ML Platforms
  • 🧠 OpenAI -GPT模型和AI服务| GitHub
  • 🎯 Anthropic -Claude AI集成| GitHub
  • 🔥 原木火 -OpenTetry跟踪和指标| GitHub
  • 📊 廊坊 -LLM可观测性和分析| GitHub
  • 🎨 ElevenLabs -文本转语音人工智能平台| GitHub

🌍 社区服务器

社区开发的服务器生态系统不断发展:

🌟 热门社区服务器

服务器 描述 语言 存储库 网站
🔍 勇敢的搜索 使用Brave API TypeScript进行Web搜索 GitHub 勇敢
🌐 WhatsApp MCP WhatsApp集成服务器 TypeScript GitHub 演示
🎨 Figma背景 Figma设计上下文集成 TypeScript GitHub Figma
🔄 n8n个节点 工作流自动化集成 TypeScript GitHub n8n
🌐 浏览器MCP 浏览器自动化和控制 TypeScript GitHub 演示
📊 很棒的MCP ZH 中国MCP资源收集 - GitHub 网站

📊 数据与分析

🗄️ Database Servers
  • 🐘 PostgreSQL -PostgreSQL的多种实现| GitHub
  • 🟢 MongoDB -NoSQL数据库集成| GitHub
  • 🔴 瑞迪斯 -内存数据结构存储| GitHub
  • 🦆 DuckDB -分析数据库引擎| GitHub
  • 📊 InfluxDB -时间序列数据库| GitHub
  • 🌐 Neo4j -图形数据库平台| GitHub
  • ❄️ 雪花 -云数据仓库| GitHub
📈 Analytics & Visualization
  • 📊 Chart.js -数据可视化库| GitHub
  • 📈 Vega Lite -交互式图形语法| GitHub
  • 📊 快速图表 -图表生成服务| GitHub
  • 📉 格拉法纳 -监控和可观察性| GitHub
  • 🔍 弹性搜索 -搜索和分析| GitHub

🌐 Web和API

🌐 Web Services
  • 🌐 获取 -Web内容获取和转换| GitHub
  • 🕷️ 剧作家 -浏览器自动化| GitHub
  • 🔍 SearXNG -尊重隐私的搜索引擎| GitHub
  • 📸 屏幕截图一 -网站截图服务| GitHub
  • 🌐 萤火虫 -Web抓取和数据提取| GitHub
🔗 API Integration
  • 🔗 开放应用程序接口 -REST API集成| GitHub
  • 📡 图查询语言 -GraphQL API支持| GitHub
  • 🔌 扎皮尔 -连接8000多个应用程序| GitHub
  • 🔄 制造 -自动化平台集成| GitHub
  • 🌐 邮递员 -API开发平台| GitHub

🛠️ 开发工具

💻 Code & Development
  • 🔧 Git -版本控制操作| GitHub
  • 🐙 GitHub -GitHub API集成| GitHub
  • 🦊 GitLab公司 -GitLab平台集成| GitHub
  • 📝 VS代码 -编辑器集成| GitHub
  • 🎯 捷脑 -IDE集成| GitHub
  • 🔍 语言服务器 -LSP集成| GitHub
🧪 Testing & Quality
  • 🧪 开玩笑 -JavaScript测试框架| GitHub
  • 🔍 埃斯林特 -代码脱落和质量| GitHub
  • 🛡️ Semgrep -静态分析安全| GitHub
  • 🔒 Snyk -安全漏洞扫描| GitHub
  • 📊 声纳立方 -代码质量分析| GitHub

📱 生产力和办公室

📝 Documentation & Notes
  • 📝 黑曜石 -知识管理| GitHub
  • 📓 概念 -工作区和注释| GitHub
  • 📋 降价 -Markdown处理| GitHub
  • 📄 潘多克。 -文档转换| GitHub
  • 📚 汇流 -团队文档| GitHub
📅 Calendar & Tasks
  • 📅 谷歌日历 -日历管理| GitHub
  • ✅ 简洁日程 -任务管理| GitHub
  • 📋 特雷洛 -项目板| GitHub
  • 📊 姿势 -团队项目管理| GitHub
  • 🎯 线性 -问题跟踪| GitHub

🎨 媒体与内容

🎨 Image & Video
  • 🎨 达尔-E -AI图像生成| GitHub
  • 🖼️ 稳定扩散 -图像生成| GitHub
  • 📹 转码 -视频处理| GitHub
  • 🎬 油管 -视频平台集成| GitHub
  • 📸 Unsplash -库存摄影| GitHub
🎵 Audio & Music
  • 🎵 声破天 -音乐流媒体平台| GitHub
  • 🎙️ 播客 -播客管理| GitHub
  • 🔊 音频处理 -音频操作| GitHub
  • 🎼 音乐理论 -音乐分析工具| GitHub

🛠️ 框架和工具

🏗️ 服务器框架

🚀 TypeScript Frameworks
  • ⚡ FastMCP -快速TypeScript框架| GitHub
  • 🎯 EasyMCP -简单的TypeScript框架| GitHub
  • 🏗️ MCP框架 -优雅的TypeScript框架与CLI| GitHub
  • 📝 模板MCP服务器 -用于新项目的CLI工具| GitHub
🐍 Python Frameworks
  • 🌸 Spring AI MCP服务器 -Spring Boot自动配置
  • ⚡ FastAPI到MCP -从FastAPI自动生成MCP
  • 🔧 Quarkus MCP服务器SDK -Java框架集成
🌐 Multi-Language
  • 🦀 Rust框架 -基于Rust的MCP实现
  • ☕ Java框架 -企业Java解决方案
  • 🔷 Go框架 -高性能Go服务器
  • 🔶 C++框架 -本机性能解决方案

🔧 开发工具

🛠️ CLI Tools
  • 🔍 mcp-cli -MCP服务器的CLI检查器| GitHub
  • 📦 mcp获取 -用于安装服务器的命令行工具| GitHub
  • 🎯 MCPM -MCP经理(类似Homebrew的服务)| GitHub
  • 🔧 mcp经理 -用于管理MCP服务器的Web UI| GitHub
🖥️ GUI Applications
  • 🎨 MCP检查员 -服务器可视化测试工具| GitHub
  • 🖥️ MCPHub -用于发现服务器的桌面应用程序| GitHub
  • 🎯 MCP路由器 -Windows/macOS管理应用程序| GitHub
  • 🔧 mcp船长 -服务器管理UI| GitHub

🌐 托管和部署

☁️ Cloud Platforms
  • ☁️ mcp.run -托管注册表和控制平面| 网站
  • 🌐 MCPVerse -用于创建托管服务器的门户| 网站
  • 🔧 史密瑟里 -MCP服务器注册表| 网站
  • 📊 PulseMCP -社区中心和时事通讯| 网站
🐳 Containerization
  • 🐳 Docker镜像 -预构建的服务器容器
  • ☸️ 库贝内特斯 -MCP服务器的编排
  • 🔧 Helm图表 -Kubernetes部署图
  • 🚀 Docker Compose -多容器部署

📖 资源与学习

📚 文档

📖 Official Documentation
🎓 Tutorials & Guides

🌟 社区资源

🗂️ Awesome Lists
💬 Community Platforms

🎥 学习材料

🎬 Videos & Workshops
📝 Articles & Blogs

🔒 安全与信任

🛡️ 安全原则

MCP以安全为核心原则构建:

  1. 👤 用户同意和控制

    • 用户必须明确同意所有数据访问和操作
    • 用户保留对共享哪些数据和采取的行动的控制权
    • 清晰的UI用于审查和授权活动
  2. 🔐 数据隐私

    • 在将数据暴露给服务器之前,明确表示用户同意
    • 未经同意不得传输资源数据
    • 适当的访问控制和数据保护
  3. 🛠️ 工具安全

    • 工具代表任意代码执行——谨慎对待
    • 在调用任何工具之前明确表示用户同意
    • 用户在授权前了解每个工具的功能
  4. 🤖 LLM取样控制

    • 用户明确批准LLM采样请求
    • 对采样发生、提示和结果的控制
    • 服务器对提示的可见性有限

🔐 身份验证和授权

🔑 OAuth 2.0 Integration
  • 🔐 标准化身份验证 -OAuth 2.0用于安全访问
  • 🎫 许可证管理 -服务器控制的令牌处理
  • 🔒 安全流量 -基于Web的授权流
  • 🛡️ 权限管理 -精细的访问控制
🛡️ Security Best Practices
  • ✅ 输入验证 -验证所有用户输入
  • 🔒 访问控制 -实施适当的权限
  • 📊 审计日志 -跟踪所有操作
  • ⏱️ 速率限制 -防止滥用
  • 🔐 加密 -确保传输和静止数据的安全

🚀 入门指南

🎯 快速开始

  1. 📖 阅读文档

    # Visit the official documentation
    open https://modelcontextprotocol.io
    
  2. 🔧 安装SDK

    # TypeScript
    npm install @modelcontextprotocol/sdk
    
    # Python
    pip install mcp
    
    # Java (Maven)
    <dependency>
      <groupId>io.modelcontextprotocol.sdk</groupId>
      <artifactId>mcp</artifactId>
    </dependency>
    
  3. 🏗️ 创建您的第一台服务器

    # Using the TypeScript template
    npx create-mcp-server my-server
    
    # Using Python
    python -m mcp.server.stdio my_server.py
    
  4. 🧪 检验员测试

    # Install and run the inspector
    npx @modelcontextprotocol/inspector
    

📚 学习路径

  1. 🎯 初学者:从 快速入门指南
  2. 🔧 中级:使用构建自定义服务器 SDK文档
  3. 🚀 高级:探索 高级模式 并为生态系统做出贡献

🛠️ 开发设置

🔧 Development Environment
# Clone the main repository
git clone https://github.com/modelcontextprotocol/servers.git
cd servers

# Install dependencies
npm install

# Run tests
npm test

# Start development server
npm run dev
🧪 Testing Your Server
# Use the MCP Inspector
npx @modelcontextprotocol/inspector

# Or test with Claude Desktop
# Add to your Claude Desktop config:
{
  "mcpServers": {
    "my-server": {
      "command": "node",
      "args": ["path/to/your/server.js"]
    }
  }
}