用于YugabyteDB的MCP服务器实现,允许大型语言模型直接与您的数据库交互。
克隆此仓库并安装依赖项:
git clone git@github.com:yugabyte/yugabytedb-mcp-server.git
cd yugabytedb-mcp-server
uv sync
服务器通过以下环境变量进行配置:
YUGABYTEDB_URL: 您的YugabyteDB数据库连接字符串(例如,dbname=database_name host=hostname port=5433 user=username password=password)示例.env文件:
YUGABYTEDB_URL=postgresql://user:password@localhost:5433/yugabyte
您可以使用STDIO传输方式运行服务器:
uv run src/server.py
或者使用Streamable-HTTP传输方式:
uv run src/server.py --transport http
构建Docker镜像:
docker build -t mcp/yugabytedb .
使用STDIO传输方式运行容器:
docker run -p 8080:8080 -e YUGABYTEDB_URL="your-db-url" mcp/yugabytedb
或者使用Streamable-HTTP传输方式:
docker run -p 8080:8080 -e YUGABYTEDB_URL="your-db-url" mcp/yugabytedb --transport=http
要将此服务器与MCP客户端(如Claude Desktop、Cursor)一起使用,请将其添加到您的MCP客户端配置中。
uv运行Cursor的示例配置:
{
"mcpServers": {
"yugabytedb-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/cloned/yugabytedb-mcp-server/",
"run",
"src/server.py"
],
"env": {
"YUGABYTEDB_URL": "dbname=database_name host=hostname port=5433 user=username password=password load_balance=true topology_keys=cloud.region.zone1,cloud.region.zone2"
}
}
}
}
/path/to/cloned/yugabytedb-mcp-server/替换为您克隆的仓库路径。env部分设置正确的数据库URL。构建Docker容器后,在claude_config.json条目或其他编辑器的等效JSON文件中添加以下内容:
{
"mcpServers": {
"yugabytedb-mcp-docker": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"YUGABYTEDB_URL=dbname=yugabyte host=host.docker.internal port=5433 user=yugabyte password=yugabyte load_balance=false",
"mcp/yugabytedb"
]
}
}
}
mcpServers下添加上述配置。Claude Desktop的日志可以在以下位置找到:
这些日志可用于诊断连接问题或其他MCP服务器配置问题。更多详情,请参阅官方文档。
在Cursor底部面板中,点击“输出”并从下拉菜单中选择“Cursor MCP”以查看服务器日志。这可以帮助诊断连接问题或其他MCP服务器配置问题。
使用Streamable-HTTP启动服务器:
uv run src/server.py --transport http
或者使用Docker:
docker run -p 8080:8080 -e YUGABYTEDB_URL="..." mcp/yugabytedb --transport=http
启动检查器:
npx @modelcontextprotocol/inspector
在GUI中使用URL:
http://localhost:8080/invocations/mcp
Streamable-HTTP一旦通过MCP客户端连接,您就可以:
YUGABYTEDB_URL: (必需)您的YugabyteDB/PostgreSQL数据库连接字符串YUGABYTEDB_URL已设置且正确uv已安装并在您的PATH中可用。注意:如果Claude无法访问uv,出现错误spawn uv ENOENT,尝试创建全局访问的uv符号链接:sudo ln -s "$(which uv)" /usr/local/bin/uv
pyproject.toml中src/server.py中