使用说明
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服务器启动容器。
您可以在中找到此脚本以及Podman的另一个脚本 scripts 目录.
塑造形象
您还可以签出项目并在本地构建映像,它应该可以毫无问题地运行。
./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等工具中工作。
配置光标
当您从光标应用程序菜单的“设置”子菜单中选择“光标设置”时,您将看到所有光标设置。从左侧导航菜单中选择“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。这些规则可用于指导LLM,您可以添加一些关于这些MCP工具的信息,这样您就不需要在每个提示中都包含它。我们提供了一个示例规则集来帮助您开始。
工具说明
以下是使用这些工具时需要记住的一些事情。 😉
Git
Git MCP服务器被配置为启动容器的目录(运行时的工作目录 start-mcp-servers)是项目目录。然后将其映射到 /project 在容器中,LLM并不总是自己解决这个问题。我发现我必须从一个提示开始,让它知道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:DB_PASSWORD@host.docker.internal:5432/DB_NAME
里面有个样品 env-sample 文件夹。您将希望创建一个 .env 如果您的项目没有文件,请将此新变量添加到底部。然后,您可以启动MCP服务器,它将拾取该连接字符串并连接到您的数据库。
您可能需要提醒LLM,使用数据库的工具已经存在,我发现一个以下面截图开头的提示效果很好。
这个项目中有很多表,您可以使用“postgres”MCP工具查看它们。我们的大多数表都处于“super_interesting”模式中。