项目简介

该项目将多个基于 Model Context Protocol (MCP) 的独立服务器打包成一个易于部署的 Docker 镜像。这些服务器为大型语言模型 (LLM) 客户端提供标准化的上下文信息和功能访问接口,包括访问本地 Git 仓库、操作 PostgreSQL 数据库、执行互联网搜索以及提供跨会话的记忆/知识图谱功能。通过一个 Docker 容器即可快速启动和管理这些常用的 MCP 服务。

主要功能点

  • Git 仓库访问: 允许 LLM 客户端读取项目中的 Git 历史、文件内容,甚至执行 Git 命令。
  • PostgreSQL 数据库操作: 使 LLM 能够查询数据库模式、执行 SQL 语句,以便理解或修改项目数据。
  • 互联网搜索: 为 LLM 提供实时获取互联网信息的能力,增强其知识范围。
  • 知识图谱/记忆: 允许 LLM 在不同会话间存储和检索信息,提供持久化的上下文。
  • 集成封装: 将多个独立的 MCP 服务器整合到一个 Docker 镜像中,简化部署和管理。
  • 客户端配置支持: 提供清晰的说明,指导如何将这些服务器配置到支持 MCP 的 LLM 客户端(如 Cursor)中。

安装步骤

  1. 克隆仓库: 将该 GitHub 仓库克隆到本地计算机。
    git clone https://github.com/cmiles74/mcp-servers.git
    cd mcp-servers
  2. 构建 Docker 镜像: 在仓库根目录下运行构建脚本。这会拉取各个服务器的依赖,并将它们打包成一个 Docker 镜像。
    ./build.sh
    构建成功后,本地会生成一个名为 'docker-mcp-server:latest' 的镜像。

服务器配置(供 MCP 客户端使用)

启动服务器后,你的 MCP 客户端(如 Cursor)需要知道如何连接到这些服务器。通常,这涉及到在客户端的配置中添加服务器条目。基于该项目的 README 说明,这些服务器通过 SSE(Server-Sent Events)协议提供服务。

你需要为客户端配置以下 MCP 服务器信息:

  • Git 服务器:
    • 名称 (Name): 'git'
    • 连接类型 (Type): 'sse'
    • URL: 'http://localhost:9099/sse'
  • PostgreSQL 服务器:
    • 名称 (Name): 'postgres'
    • 连接类型 (Type): 'sse'
    • URL: 'http://localhost:9098/sse'
    • 注意:使用此服务器需要配置数据库连接字符串,通常通过在运行服务器的目录中创建 '.env' 文件并设置 'MCP_DATABASE_URI' 环境变量来完成,例如 'MCP_DATABASE_URI=postgresql://你的数据库用户:你的密码@host.docker.internal:5432/你的数据库名'。'host.docker.internal' 用于在 Docker 容器内访问宿主机上的服务。
  • 互联网搜索服务器:
    • 名称 (Name): 'ddg-search'
    • 连接类型 (Type): 'sse'
    • URL: 'http://localhost:9097/sse'
  • 知识图谱服务器:
    • 名称 (Name): 'knowledge-graph'
    • 连接类型 (Type): 'sse'
    • URL: 'http://localhost:9096/sse'

将这些信息添加到你的 MCP 客户端的服务器配置中。具体的添加方式取决于你的客户端应用(例如,在 Cursor 中通常通过编辑 MCP 配置文件)。

基本使用方法

  1. 启动 MCP 服务器容器: 从你的项目目录(而不是 MCP 仓库目录)运行提供的启动脚本。这将把你的项目目录映射到容器内的 '/project' 路径,供 Git 等工具使用。
    cd /path/to/your/project
    /path/to/mcp-servers/start-mcp-servers
    容器将在后台运行,并命名为 'mcp-servers'。
  2. 配置 MCP 客户端: 按照上述“服务器配置”部分的信息,在你的 LLM 客户端(如 Cursor)中添加这些 MCP 服务器。确保客户端能够连接到 'localhost' 和指定的端口。
  3. 通过 LLM 交互: 一旦客户端成功连接并启用了这些 MCP 服务器,你就可以通过与 LLM 对话来利用它们提供的功能。例如:
    • 询问 LLM 当前 Git 仓库的最新提交或某个文件的内容。
    • 让 LLM 查询你的数据库,例如“显示表中前 5 行数据”。
    • 让 LLM 搜索特定的互联网信息。
    • 指示 LLM“记住”某个重要信息,以便后续会话中使用。
    • 提示:有时你可能需要在 Prompt 中明确提及服务器的名称(如“使用 'git' 工具查阅...”)或提供额外的上下文(如 Git 工具的项目路径是 '/project'),以帮助 LLM 更准确地使用这些工具。

你还可以访问 'http://localhost:6274/' 查看运行中的服务器提供的工具列表。要进入运行中的容器进行调试,可以使用 'docker exec -it mcp-servers bash' 命令。

信息

分类

开发者工具