README
🚀 使用 Go SDK 实现 Azure Cosmos DB 的 MCP 服务器
本项目是一个借助 Go SDK 构建的 Azure Cosmos DB 的 MCP 服务器示例。mcp - go 项目作为 MCP 的 Go 实现方案。
此 MCP 服务器为与 Azure Cosmos DB 交互提供了一系列实用工具,具体如下:
- 列出数据库:可检索特定 Cosmos DB 帐户中的所有数据库。
- 列出容器:能检索特定数据库中的所有容器。
- 读取容器元数据:获取特定容器的元数据或配置信息。
- 创建容器:在指定数据库中创建新容器,并可定义分区键。
- 向容器添加项:将新项添加到指定数据库中的容器。
- 读取消息:使用项的 ID 和分区键从容器中读取特定项。
- 执行查询:在 Cosmos DB 容器上执行 SQL 查询,还可选择指定分区键范围。
以下是演示视频(建议以 2x 速度观看 😄),该视频使用了 VS Code Insiders in Agent mode:
[
](https://www.youtube.com/watch?v=CsM - mspWJeM)
🚀 快速开始
📦 安装指南
克隆项目仓库并进入项目目录:
git clone https://github.com/abhirockzz/mcp_cosmosdb_go
cd mcp_cosmosdb_go
go build -o mcp_azure_cosmosdb main.go
配置 MCP 服务器:
mkdir -p .vscode
# 定义 mcp.json 的内容
MCP_JSON_CONTENT=$(cat <<EOF
{
"servers": {
"CosmosDB Golang MCP": {
"type": "stdio",
"command": "$(pwd)/mcp_azure_cosmosdb"
}
}
}
EOF
)
# 将内容写入 mcp.json
echo "$MCP_JSON_CONTENT" > .vscode/mcp.json
🔐 Azure Cosmos DB 的 RBAC 权限和身份验证
- 权限要求:您所使用的用户主体应具备相应权限(控制平面 和 数据平面),以便执行数据库、容器和项目的 CRUD 操作。
- 身份验证方式:
- 本地凭据:使用 Azure CLI(az login)进行本地登录即可,MCP 服务器将自动采用 DefaultAzureCredential 实现。
- 环境变量方式:您也可以在 MCP 服务器配置中设置
COSMOSDB_ACCOUNT_KEY环境变量,示例如下:
{ "servers": { "CosmosDB Golang MCP": { "type": "stdio", "command": "/Users/demo/mcp_azure_cosmosdb", "env": { "COSMOSDB_ACCOUNT_KEY": "输入密钥" } } } }
完成上述步骤后,您就可以启动 VS Code Insider 的代理模式,开始使用该 MCP 服务器啦。
🔧 本地开发和测试
您可以按照上述步骤进行本地开发和测试,确保各项功能正常运行。
Scan to join WeChat group