Skip to main content

MCP server for Apollo configuration export and diff workflows

Project description

Apollo Diff 工具

这是一个命令行工具,用于检查 Apollo 配置中心中指定应用 ID 下的配置项在不同环境和 cluster 中的差异。

Python MCP Server

仓库中已开始迁移一个 Python 版 MCP server,目录为 mcp_server/。当前已覆盖以下能力:

  • 列出应用可用的 env/cluster
  • 对指定 key 做跨环境对比
  • 导出指定 env/cluster 的全部配置到 .properties 文件

推荐使用 uv 管理依赖和运行:

uv sync
uv run python -m mcp_server

安装后也可以直接使用发布包暴露的命令:

apollo-tool-mcp

也可以使用 MCP Inspector 调试:

uv run mcp dev mcp_server/server.py

认证信息可通过 tool 参数传入,或通过环境变量提供:

export APOLLO_ADMIN_URL=http://apollo-admin-service-url:8080
export APOLLO_USERNAME=your-username
export APOLLO_PASSWORD=your-password

开发和测试流程:

# 1. 安装运行时和测试依赖
uv sync --extra dev

# 2. 跑单元测试
uv run python -m unittest discover -s tests -v

# 3. 生成覆盖率报告,要求 >= 80%
uv run coverage run -m unittest discover -s tests
uv run coverage report -m

# 4. 本地启动 MCP server
uv run python -m mcp_server

发布流程:

# 1. 构建分发包
uv build

# 2. 检查产物
ls dist/

# 3. 发布到 PyPI
uv publish

如果先发测试仓库:

uv publish --publish-url https://test.pypi.org/legacy/

功能

  • 动态获取所有环境(env)和 cluster 列表
  • 遍历所有环境和 cluster,获取指定 key 的配置值
  • 按值分组美化输出,展示每个值对应的环境/cluster 列表
  • 支持命令行参数传递 Apollo 管理服务地址、应用 ID、认证 Token(Cookie)
  • 支持并发请求,提升对比效率

构建

gradle clean build

使用方法

# 使脚本可执行
chmod +x apollodiff

# 运行程序(需传递认证信息)
./apollodiff -admin http://apollo-admin-service-url:8080 -appid your-app-id -u your-username -p your-password

参数说明

  • -admin--admin-service: Apollo 管理服务地址(必填)
  • -appid--app-id: 应用 ID(必填)
  • -token--auth-token: 认证 Token(必填,作为 Cookie 头传递)

运行流程

  1. 程序会自动获取所有环境(env)列表。
  2. 对每个环境,自动获取所有 cluster 列表(过滤部分特殊 cluster)。
  3. 提示用户输入要检查的 key。
  4. 遍历所有环境和 cluster,获取该 key 的配置值。
  5. 按值分组输出结果,每组展示对应的环境/cluster。

输出示例

$ ./apollodiff -admin http://10.11.2.40:8080 -appid sample-appid -u bob -p bob-secret
enter the key you wanna check
[stdin sample] a.b
fetch env list : [DEV, FAT, UAT, PROD]
环境 DEV 下的clusters: [default, cluster1]
环境 FAT 下的clusters: [default, cluster2]
...
值: sampleValue1
  - DEV/cluster1
  - UAT/default
值: sampleValue2
  - FAT/cluster2

如未找到指定 key,会输出:

在所有环境和cluster中未找到指定的key: a.b

依赖环境

  • Java 17 或更高版本
  • Gradle 8.0(使用包含的Gradle Wrapper即可,无需单独安装)
  • 需具备访问 Apollo 管理服务的网络权限

注意事项

  • 若环境或 cluster 获取失败,请检查服务地址和 Token 是否正确。
  • 默认过滤部分特殊 cluster(如 default、test-xh 等)。

常见问题

  • 若提示参数解析错误,请检查命令行参数是否齐全。
  • 若提示无法获取环境/cluster,请确认网络和权限。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apollo_tool_mcp-0.1.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apollo_tool_mcp-0.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file apollo_tool_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: apollo_tool_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for apollo_tool_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 06c0ff1655130dfaa87e50890ea1e28881b892c4306d3252a997ca854a09e954
MD5 03131d01c6d82c09f11296dab8b2ed0a
BLAKE2b-256 ff14a557dd85e807c4a5803768ded3e745ef4493824720678b4ccbf40613a9df

See more details on using hashes here.

File details

Details for the file apollo_tool_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: apollo_tool_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for apollo_tool_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6971df22306f31f6df978cb8160a32e5ce0e6744b47e8f8063a151c7699cf2a
MD5 e5fa97f9db5f3c035e3397567a0a24bf
BLAKE2b-256 39fb4a80256b648223cd9d083a50f835e22d07d3bb1d2b59c83e77c6fdb95bce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page