使用说明

项目简介

该仓库 'modelcontextprotocol' 并非一个单一的MCP服务器,而是一系列MCP服务器的参考实现集合。它旨在展示 Model Context Protocol (MCP) 的多样性和可扩展性,演示如何使用 MCP 为大型语言模型 (LLM) 提供安全、可控的工具和数据源访问能力。仓库中包含了多种不同功能的MCP服务器示例,例如:

  • 数据检索: 从AWS知识库、Brave搜索、Google Drive等数据源检索信息。
  • 工具调用: 调用Brave搜索、EverArt图像生成、Puppeteer浏览器自动化等工具。
  • 文件系统访问: 安全地进行文件操作。
  • 代码仓库管理: 与Git、GitHub、GitLab等代码仓库进行交互。
  • 数据库操作: 访问PostgreSQL、Sqlite等数据库。
  • 时间服务: 提供时间和时区转换功能。
  • 内存管理: 构建基于知识图谱的持久化内存系统。

主要功能点

  • 资源 (Resources) 管理: 部分服务器实现了资源管理,例如 Google Drive 服务器可以列出和读取 Google Drive 中的文件,Puppeteer 服务器可以截取网页屏幕截图。
  • 工具 (Tools) 注册和执行: 所有服务器都专注于工具的实现,例如 Brave Search 服务器提供了网页搜索和本地搜索工具,EverArt 服务器提供了图像生成工具,Filesystem 服务器提供了文件操作工具。
  • Prompt 模板 (Prompts): 'everything' 服务器和 'sqlite' 服务器演示了 Prompt 模板的定义和使用,可以定制 LLM 交互模式。
  • 多种传输协议支持: 仓库中的服务器主要通过 Stdio 协议与客户端通信,'everything' 服务器还演示了 SSE 协议的使用。

安装步骤

该仓库本身不是一个可以直接安装的软件包,而是包含了多个独立的MCP服务器实现。每个服务器的安装和运行方式略有不同,主要分为 Typescript 和 Python 两种实现。

Typescript 服务器 (例如 Memory, Brave Search, Filesystem, Puppeteer, PostgreSQL 等)

  1. 安装 Node.js 和 npm: 如果你的机器上没有安装 Node.js 和 npm,请先安装。
  2. 使用 npx 运行: 可以直接使用 'npx' 命令运行 Typescript 服务器。例如,运行 'memory' 服务器:
    npx -y @modelcontextprotocol/server-memory
    其他 Typescript 服务器类似,只需将 'server-memory' 替换为相应的服务器名称即可,例如 '@modelcontextprotocol/server-brave-search', '@modelcontextprotocol/server-filesystem' 等。

Python 服务器 (例如 Git, Sqlite, Time 等)

  1. 安装 Python 和 pip 或 uvx: 如果你的机器上没有安装 Python 和 pip 或 uvx,请先安装。推荐使用 'uvx',安装方法请参考 uvx 安装指南。'pip' 安装方法请参考 pip 安装指南

  2. 使用 uvx 或 pip 运行: 可以使用 'uvx' 或 'pip' 运行 Python 服务器。例如,运行 'git' 服务器:

    • 使用 'uvx' (推荐):

      uvx mcp-server-git
    • 使用 'pip':

      pip install mcp-server-git
      python -m mcp_server_git

    其他 Python 服务器类似,只需将 'mcp-server-git' 替换为相应的服务器名称即可,例如 'mcp-server-sqlite', 'mcp-server-time' 等。

服务器配置 (以 Claude Desktop 为例)

MCP 服务器需要配置到 MCP 客户端才能使用,例如 Claude Desktop。以下是一些示例配置,展示如何配置仓库中的 'memory' 和 'git' 服务器:

{
  "mcpServers": {
    // Memory Server (Typescript)
    "memory": {
      "command": "npx", // 启动命令,使用 npx 运行
      "args": ["-y", "@modelcontextprotocol/server-memory"] // 命令参数,运行 @modelcontextprotocol/server-memory 包
    },
    // Filesystem Server (Typescript) - 允许访问 /path/to/allowed/files 目录
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"] // 允许访问的目录作为参数
    },
    // Git Server (Python) - 指定 Git 仓库路径为 path/to/git/repo
    "git": {
      "command": "uvx", // 启动命令,使用 uvx 运行
      "args": ["mcp-server-git", "--repository", "path/to/git/repo"] // 仓库路径作为参数
    },
    // GitHub Server (Typescript) - 需要设置 GitHub 访问令牌
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" // GitHub 个人访问令牌作为环境变量
      }
    },
    // Postgres Server (Typescript) - 连接到 postgresql://localhost/mydb 数据库
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"] // 数据库 URL 作为参数
    }
  }
}

基本使用方法

  1. 选择并运行 MCP 服务器: 根据你的需求选择合适的 MCP 服务器,并按照上述安装步骤运行。
  2. 配置 MCP 客户端: 将 MCP 服务器的配置信息添加到你的 MCP 客户端 (例如 Claude Desktop) 的配置文件中。 确保配置中的 'command' 和 'args' 与你实际运行服务器的方式一致。
  3. 在 MCP 客户端中使用: 配置完成后,你就可以在 MCP 客户端中使用这些服务器提供的工具和资源了。具体使用方法请参考你使用的 MCP 客户端的文档。 例如,在 Claude Desktop 中,你可以在聊天时通过 '@' 符号触发工具调用,或者在附件菜单中访问资源。

注意: 部分服务器可能需要额外的环境变量或参数配置,例如 GitHub 服务器需要 'GITHUB_PERSONAL_ACCESS_TOKEN' 环境变量,请仔细阅读每个服务器目录下的 'README.md' 或代码注释以获取更详细的配置信息。

信息

分类

AI与计算