项目简介

easy-mcp 是一个集合了多种模型上下文协议(MCP)服务的项目,旨在通过 Docker 和 'uvx' 工具简化这些服务的部署过程。它为支持 MCP 的大型语言模型(LLM)客户端(如 Claude Desktop)提供丰富的功能和上下文信息,包括访问文件系统、执行搜索、与代码仓库交互、操作数据库等。

主要功能点

该服务集合包含多种独立的 MCP 服务,每种服务提供特定的功能:

  • 文件系统 (Filesystem): 提供安全的文件和目录访问、读写、编辑、移动、搜索和查看文件信息的能力。
  • 网页搜索 (Brave Search): 利用 Brave Search API 进行网页和本地商业搜索。
  • 内存知识图谱 (Memory): 管理一个基于实体、关系和观察的内存知识图谱。
  • 综合示例 (Everything): 一个全面的 MCP 示例服务,展示了资源、Prompt、工具、日志、进度通知、采样和Completion等多种 MCP 功能。
  • 时间/时区 (Time): 查询当前时间并在不同时区之间转换时间。
  • 内容抓取 (Fetch): 从指定的 URL 获取网页内容,支持HTML转Markdown。
  • Sentry: API (Sentry): 集成 Sentry 平台,用于检索和分析问题信息。
  • Google Drive: API (Gdrive): 访问和搜索 Google Drive 中的文件。
  • PostgreSQL: API (Postgres): 连接 PostgreSQL 数据库并执行只读查询。
  • Git: 本地仓库操作 (Git): 提供对本地 Git 仓库进行状态查询、提交、分支管理等操作的工具。
  • Slack: API (Slack): 与 Slack 工作区交互,包括列出频道、发送消息、回复线程、添加反应等。
  • GitHub: API (GitHub): 集成 GitHub 平台,提供仓库、文件、Issue、Pull Request、Commit 等多种操作和搜索能力。
  • AWS Knowledge Base: API (AWS KB Retrieval Server): 从 AWS Bedrock 知识库执行检索操作。
  • Puppeteer: 网页自动化 (Puppeteer): 提供基于 Puppeteer 的网页导航、截图、点击、填充表单、执行脚本等能力。
  • Redis: API (Redis): 连接 Redis 实例,提供键值对的设置、获取、删除和列表操作。
  • Sequential Thinking (Sequential Thinking): 提供一个工具用于辅助LLM进行结构化的多步思考过程。

安装步骤

  1. 安装前置条件: 确保您已安装 Docker Desktop、Git 以及 'uvx'(Time/Fetch 服务需要)。
  2. 克隆仓库:
    git clone https://github.com/s123104/easy-mcp.git
    cd easy-mcp
  3. 配置环境: 复制 '.env.example' 为 '.env' 文件,并根据需要编辑 '.env' 文件,填写 Brave Search、Slack、GitHub、GitLab、Google Maps、EverArt、AWS 等服务的 API 密钥或配置信息。某些服务(如 Filesystem)需要在启动时通过命令行参数指定允许访问的目录。
  4. 启动服务: 运行仓库根目录下的启动脚本。
    • macOS/Linux: 'chmod +x start.sh && ./start.sh'
    • Windows: 'start.bat' 这会启动 Docker Compose 定义的服务,并提示如何启动本地 'uvx' 服务。

服务器配置 (针对 MCP 客户端)

MCP 客户端需要知道如何连接到这些 MCP 服务器。'easy-mcp' 中的服务通过两种主要方式启动:

  1. 通过 Docker Compose 启动的服务: 大部分服务(Filesystem, Brave Search, Puppeteer, Memory, Everything, Sentry, Google Maps, Gitlab, Github, AWS KB Retrieval Server, Puppeteer, Redis)通过 Docker 容器运行,并通过网络端口暴露。您的 MCP 客户端需要配置这些服务的网络地址(通常是 'tcp://localhost:端口号')。具体的端口号可以在 'docker-compose.yml' 文件中查找。

    • 示例配置 (JSON 格式,非代码): 您的客户端配置文件(例如 'claude_desktop_config.json')中,每个服务通常会有一个条目,包含 'server name' 和 'url' 或其他连接信息。
      // 示例 (请根据实际端口号配置)
      {
        "server name": "mcp-filesystem",
        "url": "tcp://localhost:端口号"
      },
      {
        "server name": "example-servers/brave-search",
        "url": "tcp://localhost:端口号"
      },
      // ... 其他 Docker 服务 ...
    • 注意: 请查阅 'docker-compose.yml' 文件以获取每个服务的准确端口配置。某些服务可能需要额外的参数或认证。
  2. 通过客户端命令启动的服务: 'uvx' 相关的服务(Time, Fetch)以及部分 Node.js 服务被设计为由客户端按需启动,使用标准输入输出 (Stdio) 进行通信。您的 MCP 客户端需要配置运行这些服务所需的命令和参数。

    • 示例配置 (JSON 格式,非代码):
      // 示例 (请根据实际安装路径和环境配置命令)
      {
        "server name": "mcp-time",
        "command": "/path/to/uvx", // uvx的可执行路径
        "args": ["run", "-m", "mcp_server_time.server"]
      },
      {
        "server name": "mcp-fetch",
        "command": "/path/to/uvx", // uvx的可执行路径
        "args": ["run", "-m", "mcp_server_fetch.server"]
      },
      // ... 其他命令启动的服务 ...
      {
         "server name": "secure-filesystem-server", // 例如本地文件系统服务,如果不用Docker
         "command": "/path/to/node", // node的可执行路径
         "args": ["./mcp_services/src/filesystem/index.js", "/path/to/allowed/dir1", "/path/to/allowed/dir2"] // 需要指定允许访问的目录
      }
    • 注意: 'command' 和 'args' 需要指向您系统中实际的 'uvx' 或 'node' 可执行文件路径以及服务的入口脚本或模块。

基本使用方法

在成功启动 MCP 服务并正确配置您的 LLM 客户端后,客户端通常会自动检测可用的 MCP 服务。您可以通过客户端的用户界面访问这些服务的工具、资源和 Prompt。例如,在 Claude Desktop 中,这些功能通常集成在聊天界面中。

信息

分类

开发者工具