Skip to main content
Glama
apollo-mcp-server

apollo-mcp-server

by iceycn

Apollo MCP Server

Apollo 配置中心的 MCP (Model Context Protocol) 服务,使大语言模型能够通过配置的 Apollo 地址和 Token 对 Apollo 进行查询和操作。支持 Cursor、Trae、Claude Desktop 等 MCP 客户端。

PyPI version

功能

基于 Apollo 开放平台接口文档 实现以下能力:

  • 应用与集群:list_apps、get_app_env_clusters、get_cluster、create_cluster

  • 命名空间:list_namespaces、get_namespace、create_namespace、get_namespace_lock

  • 配置项:list_items、get_item、create_item、update_item、delete_item

  • 发布与回滚:get_latest_release、publish_release、rollback_release

  • 应用创建:create_app

Related MCP server: Apifox MCP Server

前提条件

  1. Apollo Portal 已部署并可访问

  2. 在 Portal 的 http://{portal_address}/open/add-consumer.html 创建第三方应用并获取 Token

  3. 在 http://{portal_address}/open/manage.html 为 Token 绑定可操作的 Namespace

具体可参考官方指引: https://www.apolloconfig.com/#/zh/portal/apollo-open-api-platform

安装

从 PyPI 安装(推荐)

pip install apollo-mcp-server

或使用 uvx 无需安装即可运行:

uvx apollo-mcp-server --url http://your-apollo:8070 --token your_token

开发模式(从源码安装)

pip install -e .
# 或
uv pip install -e .

配置

使用方式

apollo-mcp-server --url http://your-apollo-portal:8070 --token your_open_api_token

--url 为 Apollo Portal 根地址(不含 /openapi/v1/ 后缀),如 http://localhost:8070。

或

python -m mcp_server_apollo --url http://your-apollo-portal:8070 --token your_open_api_token

Cursor / Trae / Claude Desktop 配置

在 ~/.cursor/mcp.json(Cursor)、Trae 或 claude_desktop_config.json(Claude)中添加:

{
  "mcpServers": {
    "apollo": {
      "command": "uvx",
      "args": [
        "apollo-mcp-server",
        "--url",
        "http://your-apollo-portal:8070",
        "--token",
        "your_open_api_token"
      ]
    }
  }
}

也可通过环境变量配置(需 apollo-mcp-server >= 1.0.0):

{
  "mcpServers": {
    "apollo": {
      "command": "uvx",
      "args": ["apollo-mcp-server"],
      "env": {
        "APOLLO_URL": "http://your-apollo-portal:8070",
        "APOLLO_TOKEN": "your_open_api_token"
      }
    }
  }
}

开发

# 安装依赖
pip install -e .

# 本地运行(无需安装,从项目目录)
PYTHONPATH=src python -m mcp_server_apollo --url http://localhost:8070 --token your_token

# 或安装后直接运行
apollo-mcp-server --url http://localhost:8070 --token your_token

许可证

MIT License

Available Tools

17 tools
create_appB

创建 App 并授权。需在创建第三方应用时勾选允许创建 app。

Inputs: assignAppRoleToSelf (required), app (required), admins.

create_clusterC

创建集群。需要授予第三方 APP 对目标 APP 的管理权限。

Inputs: appId (required), env (required), name (required), dataChangeCreatedBy (required).

create_itemC

新增配置项。key 长度不超过 128 字符,value 不超过 20000 字符。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required), +4 more.

create_namespaceC

创建 Namespace。format 仅支持 properties、xml、json、yml、yaml。

Inputs: appId (required), name (required), format (required), isPublic (required), +2 more.

delete_itemC

删除配置项。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required), +2 more.

get_app_env_clustersB

获取应用的环境与集群信息。

Inputs: appId (required).

get_clusterC

获取集群详情。

Inputs: appId (required), env (required), clusterName (required).

get_itemC

获取单个配置项。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required), +1 more.

get_latest_releaseC

获取 Namespace 当前生效的已发布配置。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required).

get_namespaceC

获取指定 Namespace 详情。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required).

get_namespace_lockC

获取 Namespace 当前编辑人/锁状态。PRO 环境有编辑锁定规则。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required).

list_appsA

获取应用列表。可选 appIds 参数(逗号分隔)过滤,为空则返回所有应用。

Inputs: appIds.

list_itemsC

分页获取 Namespace 下的配置项。需 Apollo 版本>=2.1.0。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required), +2 more.

list_namespacesC

获取集群下所有 Namespace 及配置项。

Inputs: appId (required), env (required), clusterName (required).

publish_releaseC

发布配置。releaseTitle 不超过 64 字符。PRO 环境可能要求发布人与编辑人不同。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required), +3 more.

rollback_releaseB

回滚到指定版本。releaseId 为发布记录 ID,从 get_latest_release 返回的 id 字段获取。

Inputs: env (required), releaseId (required), operator (required).

update_itemC

修改配置项。createIfNotExists 为 true 时不存在则创建,此时 dataChangeCreatedBy 必填。

Inputs: appId (required), env (required), clusterName (required), namespaceName (required), +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 17 tools

    Disambiguation5/5

    Each tool targets a distinct entity or action: apps, clusters, namespaces, items, and releases are clearly separated, with no overlapping purposes.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_app, get_namespace, list_items), with no mixing of conventions.

    Tool Count4/5

    17 tools is slightly above the ideal range of 3-15, but still reasonable for a configuration management platform covering multiple entity types.

    Completeness3/5

    The tool surface covers core operations for apps, clusters, namespaces, items, and releases, but lacks update/delete for apps, clusters, and namespaces, which are notable gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers