使用说明
mcp服务器
🌟 模型上下文协议(MCP)
📋 目录
🎯 什么是MCP?
这 模型上下文协议(MCP) 是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论您是在构建基于AI的IDE、增强聊天界面,还是创建自定义AI工作流程,MCP都提供了一种标准化的方式将LLM与所需的上下文连接起来。
🌟 关键利益
- 🔗 标准化集成:一种将任何LLM应用程序与任何数据源连接的协议
- 🧩 可组合架构:混合搭配服务器,构建强大的人工智能工作流程
- 🔒 安全第一:内置安全原则和用户同意控制
- 🚀 易于构建:用于创建服务器和客户端的简单界面
- 🌐 成长中的生态系统:已有500多台服务器和50多台客户端可用
🎨 核心概念
MCP提供三个主要原语:
- 📄 资源:用户或AI模型使用的上下文和数据
- 🎯 提示:为用户提供模板消息和工作流
- 🛠️ 工具:AI模型要执行的函数
- 🔄 采样:服务器发起的代理行为和递归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
🗄️ Databases & Analytics
🛠️ Development Tools
💼 Business Applications
🔍 搜索与人工智能
🔍 Search Engines
🤖 AI & ML Platforms
🌍 社区服务器
社区开发的服务器生态系统不断发展:
🌟 热门社区服务器
| 服务器 | 描述 | 语言 | 存储库 | 网站 |
|---|---|---|---|---|
| 🔍 勇敢的搜索 | 使用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
📈 Analytics & Visualization
🌐 Web和API
🌐 Web Services
🔗 API Integration
🛠️ 开发工具
💻 Code & Development
🧪 Testing & Quality
📱 生产力和办公室
📝 Documentation & Notes
📅 Calendar & Tasks
🎨 媒体与内容
🎨 Image & Video
🎵 Audio & Music
🛠️ 框架和工具
🏗️ 服务器框架
🚀 TypeScript Frameworks
🐍 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
🖥️ GUI Applications
🌐 托管和部署
☁️ Cloud Platforms
🐳 Containerization
- 🐳 Docker镜像 -预构建的服务器容器
- ☸️ 库贝内特斯 -MCP服务器的编排
- 🔧 Helm图表 -Kubernetes部署图
- 🚀 Docker Compose -多容器部署
📖 资源与学习
📚 文档
🎓 Tutorials & Guides
- 🏗️ 使用LLM构建MCP -人工智能辅助开发
- 🐛 调试指南 -故障排除提示
- 🔍 检查员教程 -测试服务器
🌟 社区资源
🗂️ Awesome Lists
- ⭐ punkpeye的出色MCP服务器 -带网站的精选列表
- ⭐ wong2的超棒MCP服务器 -社区策划列表
- ⭐ appcypher的出色MCP服务器 -另一个精选系列
- 🔐 出色的远程MCP服务器 -具有身份验证的远程服务器
💬 Community Platforms
- 💬 Discord服务器 -社区讨论
- 🗨️ GitHub讨论 -技术讨论
- 📱 Reddit r/mcp -社区论坛
- 🐦 推特/X社区 -最新更新
🎥 学习材料
🎬 Videos & Workshops
- 🎯 建筑代理与MCP研讨会 -人工智能工程师峰会
- 📺 MCP教程系列 -分步指南
- 🎪 会议会谈 -专家演讲
🔒 安全与信任
🛡️ 安全原则
MCP以安全为核心原则构建:
-
👤 用户同意和控制
- 用户必须明确同意所有数据访问和操作
- 用户保留对共享哪些数据和采取的行动的控制权
- 清晰的UI用于审查和授权活动
-
🔐 数据隐私
- 在将数据暴露给服务器之前,明确表示用户同意
- 未经同意不得传输资源数据
- 适当的访问控制和数据保护
-
🛠️ 工具安全
- 工具代表任意代码执行——谨慎对待
- 在调用任何工具之前明确表示用户同意
- 用户在授权前了解每个工具的功能
-
🤖 LLM取样控制
- 用户明确批准LLM采样请求
- 对采样发生、提示和结果的控制
- 服务器对提示的可见性有限
🔐 身份验证和授权
🔑 OAuth 2.0 Integration
- 🔐 标准化身份验证 -OAuth 2.0用于安全访问
- 🎫 许可证管理 -服务器控制的令牌处理
- 🔒 安全流量 -基于Web的授权流
- 🛡️ 权限管理 -精细的访问控制
🛡️ Security Best Practices
- ✅ 输入验证 -验证所有用户输入
- 🔒 访问控制 -实施适当的权限
- 📊 审计日志 -跟踪所有操作
- ⏱️ 速率限制 -防止滥用
- 🔐 加密 -确保传输和静止数据的安全
🚀 入门指南
🎯 快速开始
-
📖 阅读文档
# Visit the official documentation open https://modelcontextprotocol.io -
🔧 安装SDK
# TypeScript npm install @modelcontextprotocol/sdk # Python pip install mcp # Java (Maven) <dependency> <groupId>io.modelcontextprotocol.sdk</groupId> <artifactId>mcp</artifactId> </dependency> -
🏗️ 创建您的第一台服务器
# Using the TypeScript template npx create-mcp-server my-server # Using Python python -m mcp.server.stdio my_server.py -
🧪 检验员测试
# Install and run the inspector npx @modelcontextprotocol/inspector
📚 学习路径
🛠️ 开发设置
🔧 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"]
}
}
}
