Back to MCP directory
publicPublicdnsLocal runtime

mcp_cosmosdb_go

一个基于Go SDK的Azure Cosmos DB MCP服务器实现,提供数据库和容器的CRUD操作功能。

article

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

[演示:使用 Go SDK 的 Azure Cosmos DB MCP 服务器](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 服务器啦。

🔧 本地开发和测试

您可以按照上述步骤进行本地开发和测试,确保各项功能正常运行。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client