返回 MCP 目录
public公开dns本地运行

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

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端