模型上下文协议服务

Model Context Protocol (MCP) 是一个开放协议,用于标准化AI应用程序与外部系统的交互方式,提供统一的访问数据源和工具的方法。

  • by pb4gv95sfw-coder
  • 本地部署
  • 更新于
在 GitHub 查看 pb4gv95sfw-coder/github-agent

使用说明

GitHub Agent - 模型上下文协议演示

欢迎来到 GitHub 代理 仓库!这个项目展示了 模型上下文协议(MCP),这是一个强大的标准,用于将AI助手连接到外部数据源和工具。

模型上下文协议(MCP)是什么?

这个(或:那个) 模型上下文协议(MCP) 这是一个开放协议,它规范了人工智能应用与外部系统交互的方式。它为像Claude、ChatGPT等人工智能助手提供了一种统一的方式来访问来自各种来源的数据和工具。

关键概念

  • MCP 服务器通过MCP协议暴露数据和功能的程序
  • MCP 客户端连接到MCP服务器的人工智能应用(如Cursor、Claude Desktop)
  • 资源人工智能可读取的数据源(文件、数据库、API)
  • 工具人工智能可以执行的功能(创建文件、运行查询、与服务交互)
  • 提示用户可调用的模板化交互

为什么要使用MCP?

好处;益处

  1. 标准化一种适用于所有集成的协议,降低复杂性
  2. 安全通过适当的身份验证控制对外部资源的访问
  3. 灵活性连接到数据库、API、文件系统等
  4. 可组合性根据您的需求,混合搭配不同的MCP服务器
  5. 开发者友好服务器和客户端均易于实现

用例

  • 数据库访问直接从您的AI助手查询和更新数据库
  • 文件管理在系统中读取、写入和整理文件
  • API集成连接到GitHub、Slack、Jira和其他服务
  • 定制工具为您的特定工作流程构建专用工具
  • 知识库访问文档、维基和内部知识库

MCP的工作原理

┌─────────────┐         ┌─────────────┐         ┌─────────────┐
│             │         │             │         │             │
│  AI Client  │◄───────►│ MCP Server  │◄───────►│  External   │
│  (Cursor)   │   MCP   │  (GitHub)   │         │  Resources  │
│             │         │             │         │  (GitHub)   │
└─────────────┘         └─────────────┘         └─────────────┘
  1. 客户您的AI应用程序(例如,Cursor、Claude Desktop)
  2. MCP服务器实现MCP协议的中间件
  3. 资源外部系统(GitHub、数据库、文件系统等)

开始使用MCP

1. 安装MCP服务器

对于GitHub集成(如本演示中所使用):

npm install -g @modelcontextprotocol/server-github

2. 配置您的AI客户端

将MCP服务器添加到您的配置文件中(例如。, ~/.cursor/mcp.json):

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

3. 生成GitHub令牌

  1. 访问 https://github.com/settings/tokens
  2. 创建一个新的个人访问令牌(经典版或细粒度版)
  3. 授予必要权限:
    • 经典代币: repo (对仓库的完全控制)
    • **细粒度标记(或细粒度令牌)**内容(可读写),元数据(只读)

4. 重启您的AI客户端

配置完成后,请重启您的AI应用程序以加载MCP服务器。

可用的MCP服务器

官方服务器

  • **@modelcontextprotocol/server-github 翻译为中文是:“@模型上下文协议/服务器-GitHub”**GitHub 集成
  • @modelcontextprotocol/服务器-文件系统本地文件访问
  • **@modelcontextprotocol/server-postgres 翻译为中文是:“@modelcontextprotocol 服务器-PostgreSQL”**PostgreSQL 数据库
  • @modelcontextprotocol/server-sqlite 翻译为中文是:“@模型上下文协议/服务器- SQLite”。不过,这里的“@modelcontextprotocol”可能是一个特定项目或框架中的自定义命名,实际翻译时可能需要根据具体上下文来调整。但基于直接翻译,上述译文是较为通用的表达SQLite数据库
  • @modelcontextprotocol/服务器-SlackSlack 集成

社区服务器

许多社区搭建的服务器可用于提供以下服务:

  • Google 云端硬盘
  • AWS S3(亚马逊网络服务简单存储服务)
  • MongoDB(译文保持原样,因为“MongoDB”是一个专有名词,通常不进行翻译)
  • Redis
  • 还有很多!

示例用例

1. 仓库管理

"Create a new repository called 'my-project' and add a README"

2. 问题跟踪

"List all open issues in my repository and summarize them"

3. 代码搜索

"Find all instances of the function 'processData' across my repositories"

4. 拉取请求(Pull Request)工作流程

"Create a pull request from the feature branch to main"

构建您自己的MCP服务器

您可以创建自定义的MCP服务器以与任何系统集成:

import { Server } from '@modelcontextprotocol/sdk/server/index.js';

const server = new Server({
  name: 'my-custom-server',
  version: '1.0.0',
});

// Define resources
server.setRequestHandler('resources/list', async () => {
  return {
    resources: [
      { uri: 'custom://data', name: 'My Data', mimeType: 'application/json' }
    ]
  };
});

// Define tools
server.setRequestHandler('tools/list', async () => {
  return {
    tools: [
      { name: 'my_tool', description: 'Does something useful', inputSchema: {...} }
    ]
  };
});

资源

  • 官方文档https://modelcontextprotocol.io(该网址可直接翻译为“模型上下文协议网站”,但通常网址不进行完整翻译,保留原样使用)
  • GitHub 仓库https://github.com/modelcontextprotocol(这个网址翻译为中文可以表述为:“GitHub上的modelcontextprotocol项目页面”,但通常网址本身不直接翻译,而是说明其含义或用途。)不过,更常见的表达方式可能是直接保留原网址,或者简单说明为“GitHub上的modelcontextprotocol仓库”
  • 规格/规范https://spec.modelcontextprotocol.io 翻译为中文可以是:“https://modelcontextprotocol.io规范” 或者 “modelcontextprotocol.io的规范页面”。这里,“spec”通常指的是“specification”的缩写,意为“规范”或“规格说明”
  • 社区加入讨论并查找更多服务器

这个仓库

这个仓库是使用模型上下文协议创建的!它展示了:

  • ✅ 通过MCP创建存储库
  • ✅ 通过MCP管理文件
  • ✅ 使用MCP通过GitHub进行身份验证
  • ✅ 带有AI辅助的自动化工作流程

做出贡献

欢迎自由探索MCP,并分享您使用它的示例!该协议是开源的,旨在服务于社区。

许可证

这个项目是开源的,并遵循MIT许可协议。


使用模型上下文协议,用心打造