返回市场
MCP服务器

MCP服务器

作者:cmiles742 星标更新:2025-05-05

项目介绍

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服务器检查工具使用的两个端口。我们还将映射我们的项目,并设置LLM存储其“记忆”的路径(一个数据的JSON文件)。我们从项目的.env文件中读取数据库连接字符串,然后启动包含MCP服务器的容器。

您可以在scripts目录中找到此脚本以及其他用于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服务器提供的工具。一旦容器启动,您可以通过访问以下地址与检查器交互...

我们还提供了一个代理,它可以包装使用标准IO的工具,以便它们可以从诸如Cursor之类的工具中更容易地使用。

配置Cursor

当您从Cursor应用程序菜单的“设置”子菜单中选择“Cursor设置”时,您将看到所有Cursor设置。从左侧导航菜单中选择“MCP”,所有已配置的MCP服务器将列在主面板中。当您点击右上角的“+ 添加新的全局MCP服务器”按钮时,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"
    }
  }
}

您还可以设置一组将与每次请求一起提供的规则。这些规则可用于引导LLM,您可以添加一些关于这些MCP工具的信息,这样就不需要在每次提示中包含它们。我们提供了一个示例规则集以帮助您开始。

工具注意事项

以下是使用这些工具时需要注意的一些事项。 😄

Git

Git MCP服务器配置为从您启动容器的目录(即您运行start-mcp-servers时的工作目录)作为项目目录。然后将其映射到容器中的/project,而LLM并不总是能自己识别这一点。我发现我需要从一个提示开始,让LLM知道加载到Cursor中的项目路径是"/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:DB_PASSWORD@host.docker.internal:5432/DB_NAME

env-sample文件夹中有示例。您需要为项目创建一个.env文件(如果还没有的话),或者将此新变量添加到文件底部。然后您可以启动MCP服务器,它将拾取该连接字符串并连接到您的数据库。

您可能需要提醒LLM数据库工具的存在,我发现从类似下面的提示开始效果很好。

该项目有很多表,您可以使用"postgres" MCP工具查看它们。大多数表都在"super_interesting"模式中。