项目简介

Datum MCP服务器是一款基于Model Context Protocol (MCP) 实现的后端应用,旨在为大型语言模型(LLM)客户端提供访问和管理Datum Cloud网络基础设施的标准化接口。它支持OAuth 2.1 (PKCE) 认证,并安全地将凭据存储在macOS Keychain中。通过一组预定义的工具,AI Agent可以列出、获取、创建、更新和删除Datum Cloud中的组织、项目、域名、HTTP代理以及查询自定义资源定义(CRD)的Schema信息,从而实现对网络基础设施的自动化管理。

主要功能点

  • 安全认证: 支持OAuth 2.1 (PKCE) 流程,首次使用将通过浏览器引导用户完成认证,并将刷新令牌安全存储于系统Keychain,后续自动刷新。
  • 会话管理: 自动处理用户会话和API令牌的生命周期。
  • 组织管理:
    • 列出组织成员资格: 查看当前用户所属的所有组织。
    • 获取/设置活动组织: 设置一个默认的活动组织,以便后续操作无需重复指定。
  • 项目管理:
    • 列出项目: 查看活动组织下的所有项目。
    • 获取/设置活动项目: 设置一个默认的活动项目,简化资源操作。
    • 创建项目: 在指定的组织下创建新项目。
  • 资源管理 (域名与HTTP代理):
    • 提供对域名的列表、获取、创建、更新、删除操作。
    • 提供对HTTP代理的列表、获取、创建、更新、删除操作。
  • API Schema查询:
    • 列出API资源: 获取项目下所有可用的API组、版本和资源列表。
    • 获取API Schema: 查询特定API资源(CRD)的详细Schema定义,类似于'kubectl explain'。
  • 多传输协议支持: 默认通过标准输入输出(Stdio)与MCP客户端通信,也支持作为HTTP服务器运行。

安装步骤

Datum MCP服务器是一个可执行文件,可以根据您的操作系统进行下载和安装。

  1. 快速安装 (推荐): 打开终端,运行以下命令。该脚本会自动检测您的操作系统和架构,下载最新版本并安装到用户可写的PATH路径中。

    curl -fsSL https://github.com/datum-cloud/datum-mcp/releases/latest/download/install.sh | sh
  2. 手动下载:

    • 访问 Datum MCP Releases 页面。
    • 根据您的操作系统和架构下载对应的二进制文件(例如:macOS为'datum-mcp_darwin_arm64',Linux为'datum-mcp_linux_amd64',Windows为'datum-mcp_windows_amd64.exe')。
    • 将下载的文件重命名为 'datum-mcp' (或 Windows 上为 'datum-mcp.exe')。
    • 将重命名后的文件放置在系统PATH环境变量中的任意目录,例如 '/usr/local/bin' (macOS/Linux) 或在Windows上添加到'C:\Windows\System32'或自定义目录并添加到PATH。

服务器配置

MCP客户端需要以下JSON配置来连接 Datum MCP 服务器。请根据您的实际安装路径替换 'command' 字段中的可执行文件路径。

{
  "datum-mcp": {
    "comment": "这是Datum MCP服务器的配置名称,MCP客户端将通过此名称识别并连接服务器。",
    "command": "datum-mcp",
    "args": [],
    "comment_args": "MCP服务器默认以stdio模式运行,无需额外参数。若以HTTP模式运行,请参考Datum MCP文档配置相应的command和args。",
    "comment_windows_path": "在Windows上,如果datum-mcp.exe不在系统PATH中,请务必在此处指定其完整路径,例如:\"C:\\Users\\YourUser\\bin\\datum-mcp.exe\""
  }
}

基本使用方法

安装并配置好MCP客户端后,您可以通过以下方式与Datum MCP服务器进行交互:

  1. 首次登录: 服务器会在首次需要认证时自动打开浏览器进行OAuth登录。
  2. 设置活动组织: 使用 'organizations' 工具列出并选择您的组织。
    • 例如,列出所有组织成员资格:'call organizations {"action":"list"}'
    • 例如,设置活动组织:'call organizations {"action":"set", "name":"your-organization-id"}'
  3. 设置活动项目: 使用 'projects' 工具列出并选择您的项目。
    • 例如,列出组织下的项目:'call projects {"action":"list", "org":"your-organization-id"}'
    • 例如,设置活动项目:'call projects {"action":"set", "name":"your-project-id"}'
  4. 操作资源: 一旦设置了活动组织和项目,就可以使用 'domains'、'httpproxies' 或 'apis' 等工具进行资源管理。
    • 例如,列出所有域名:'call domains {"action":"list"}'
    • 例如,创建一个HTTP代理:'call httpproxies {"action":"create", "body":{"metadata":{"name":"my-proxy"}, "spec":{"...}}}'
    • 例如,获取特定CRD的Schema:'call apis {"action":"get", "group":"networking.datumapis.com", "version":"v1alpha1", "kind":"Domain"}'

信息

分类

开发者工具