mcpField
M
MCP Servers

MCP Servers

本地服务
github.com/cmiles74云与基础设施277 周前更新

关于 MCP Servers

MCP Servers 是一个打包多个 MCP 服务的 Docker 镜像,面向需要为项目接入 Git、PostgreSQL、搜索和跨会话记忆工具的开发者。它还包含检查器,并提供 Docker 与 Podman 启动脚本。

主要功能

  1. 01Docker 镜像集成多个 MCP 服务
  2. 02提供 Git 仓库及历史访问
  3. 03连接 PostgreSQL 数据库
  4. 04提供互联网搜索与会话记忆
  5. 05内置服务检查器和 STDIO 代理

适用场景

  1. 01在项目目录中启动 Git 工具
  2. 02让 Agent 查询项目 PostgreSQL 数据
  3. 03使用互联网搜索补充信息
  4. 04在会话间保存 JSON 记忆

MCP 相关

容器提供 Git、PostgreSQL、互联网搜索和记忆等 MCP 服务,并带有检查器及 STDIO 工具代理。可将服务配置到 Cursor 等 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"servers-cmiles74": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"\\"
]
}
}
}
启动命令docker run -i --rm '\'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
oci\

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 服务

本项目提供一个 Docker 容器镜像,其中包含多个可能适用于各种项目的 MCP 服务。本项目还处于早期阶段,并非所有服务都经过全面测试,请谨慎使用。🧯 目前提供以下功能……

使用已发布的镜像

最简单的方式是拉取并运行已发布的镜像。导航到你要处理的项目目录,然后运行以下 Docker 命令。

docker run -it --rm \
       -p 6274:6274 -p 6277:6277 -p 9099:9099 -p 9098:9098 -p 9097:9097 -p 9096:9096 \
       -v ./:/project -v ./.memory:/memory \
       -e MEMORY_FILE_PATH=./.memory \
       --add-host=host.docker.internal:host-gateway \
       --env-file ./.env \
       --name mcp-servers ghcr.io/cmiles74/docker-mcp-servers:latest

我们会映射要向 Cursor 暴露的 MCP 服务端口,以及 MCP 服务检查工具使用的两个端口。我们会将项目映射进容器,并设置大模型存储“记忆”的路径(一个包含数据的 JSON 文件)。我们会读取项目的 .env 文件以获取数据库连接字符串,然后启动包含 MCP 服务的容器。

你可以在 scripts directory 中找到此脚本以及另一个用于 Podman 的脚本。

构建镜像

你也可以检出项目并在本地构建镜像,应该可以正常运行。

./build.sh

这将在本地仓库中创建镜像 docker-mcp-server:latest。

运行镜像

我们提供了一个用于启动镜像的 shell 脚本 start-mcp-servers。你可以在任何位置调用该脚本;将它添加到 PATH 会最方便,但并非必须。

cd ~/path/to/your-project
~/source/repos/docker-mcp-servers/start-mcp-servers

该脚本会将当前目录映射到容器中的 /project 目录。对于使用 STDIO 协议的工具而言,你的项目将位于 /project 目录中。

最后,启动脚本会将容器命名为 "mcp-servers"。这样就能轻松地在运行中的容器内执行命令。要在运行中的容器内打开 shell,可以运行……

docker exec -it mcp-servers bash

提供的工具

除了 MCP 服务,我们还会在端口 6274 上运行一个检查工具。你可以使用此工具查看 MCP 服务提供了哪些工具。容器启动后,可以通过以下地址访问检查工具……

我们还提供了一个代理,用于封装使用标准输入输出的工具,让它们更容易与 Cursor 等工具配合使用。

配置 Cursor

在 Cursor 应用菜单的“Settings”子菜单中选择“Cursor Settings”后,你会看到所有 Cursor 设置。在左侧导航菜单中选择“MCP”,主面板将列出所有已配置的 MCP 服务。点击右上角的“+ Add new global MCP Server”按钮后,MCP 配置文件将会打开;它就是一个很大的 JSON 块。

你可以用下面的配置替换现有内容,也可以将下面的服务添加到现有配置中。保存文件后,这些工具便会出现在 Cursor 设置的“MCP”部分中;随后你必须前往该设置页面并启用每个工具。

{
  "mcpServers": {
    "git": {
      "type": "sse",
      "url": "http://localhost:9099/sse"
    },
    "postgres": {
      "type": "sse",
      "url": "http://localhost:9098/sse"
    },
    "ddg-search": {
      "type": "sse",
      "url": "http://localhost:9097/sse"
    },
    "knowledge-graph": {
      "type": "sse",
      "url": "http://localhost:9096/sse"
    }
  }
}

你还可以设置一组“规则”,让大模型在每次请求时都能收到这些规则。这些规则可用于引导大模型;你可以添加有关这些 MCP 工具的信息,这样就不必在每个提示词中都重复说明。我们附带了一组示例规则,帮助你快速上手。

工具说明

使用这些工具时,请留意以下事项。😉

Git

Git MCP 服务的配置方式是:启动容器时所在的目录(运行 start-mcp-servers 时的工作目录)就是项目目录。该目录会映射到容器中的 /project,而大模型并不总能自行发现这一点。我发现必须先通过提示词告知它,在 Cursor 中加载的项目对于 Git 工具来说是“/project”,类似这样……

你配置了一个名为“git”的 MCP 服务,可以用它来操作此项目。该服务的配置方式是:此项目的路径为“/project”。

这样用起来还不错,但我怀疑还可以做得更好。如果你想到更顺畅的项目映射方式,请提交一个 PR!

PostgreSQL

在项目目录中运行 start-mcp-servers 时,会读取该目录根目录下的 .env 文件。PostgreSQL MCP 服务会查找名为 MCP_DATABASE_URI 的环境变量中的连接字符串,并使用它连接数据库。由于我们在 Docker 容器中运行该工具,数据库主机名需要指向本地计算机:“host.docker.internal”。

MCP_DATABASE_URI=postgresql://DB_ACCOUNT:[email protected]:5432/DB_NAME

env-sample 文件夹中有一个示例。如果项目还没有 .env 文件,你需要为项目创建一个,或者将这个新变量添加到文件末尾。然后就可以启动 MCP 服务,它会获取该连接字符串并连接到数据库。

你可能需要提醒大模型,该工具可用于操作数据库。我发现,以类似下面这段内容开头的提示词效果不错。

这个项目中有很多表,你可以使用“postgres” MCP 工具查看它们。我们的大多数表都在“super_interesting”架构中。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。