Skip to main content

MCP server for Apollo Config Center with portal session authentication

Project description

mcp-apollo-config

MCP server for Apollo Config Center using portal username/password login, implemented with FastMCP.

Install

pip install mcp-apollo-config

Local editable install:

pip install -e .

Auth Mode

The plugin authenticates by portal session:

  1. POST /signin with username/password
  2. Receives login session cookie (SESSION or JSESSIONID)
  3. Uses portal management APIs under /apps/{appId}/envs/{env}/...

No OpenAPI token is required.

Governance Mode

  • readonly (default): query only
  • editable: query + edit (requires --operator)

MCP Configuration

Configure the server in your MCP client with command + args:

{
  "mcpServers": {
    "apollo": {
      "command": "mcp-apollo-config",
      "args": [
        "--portal-url", "http://apollo-portal.example.com",
        "--username", "your.username",
        "--password", "your.password",
        "--governance-mode", "readonly",
        "--default-app-id", "your-app-id",
        "--default-env", "DEV",
        "--default-cluster", "default",
        "--default-namespace", "application"
      ]
    }
  }
}

Full Parameters

Required:

  • --portal-url or APOLLO_PORTAL_URL
  • --username or APOLLO_USERNAME
  • --password or APOLLO_PASSWORD

Optional:

  • --login-submit or APOLLO_LOGIN_SUBMIT
  • --governance-mode or APOLLO_GOVERNANCE_MODE: readonly|editable
  • --operator or APOLLO_OPERATOR (required in editable mode)
  • --default-app-id or APOLLO_DEFAULT_APP_ID
  • --default-env or APOLLO_DEFAULT_ENV (for example DEV, TEST)
  • --default-cluster or APOLLO_DEFAULT_CLUSTER (default: default)
  • --default-namespace or APOLLO_DEFAULT_NAMESPACE
  • --timeout-ms or APOLLO_TIMEOUT_MS (default: 10000)
  • --log-level or MCP_APOLLO_LOG_LEVEL: DEBUG|INFO|WARN|ERROR (default: WARN)
  • --debug-http or MCP_APOLLO_DEBUG_HTTP=true

Tools

  • apollo_get_namespace_configs: query all key/value items under a namespace/environment/cluster with pagination controls (pageSize, maxItems).
  • apollo_get_key: query one config key under a namespace/environment/cluster.
  • apollo_edit_key (editable mode only): create or update one key and return the updated item.

Tests

Local tests use a mock Apollo portal server and do not require real credentials or network access.

python -m unittest discover -s tests -p "test_*.py"

Covered scenarios:

  • tools/list in readonly and editable mode
  • apollo_get_key
  • apollo_get_namespace_configs
  • apollo_edit_key
  • Portal session login + cookie flow

Notes

  • The management API path includes /envs/{env}. Set --default-env or pass env in tool arguments.
  • The server is built on FastMCP and runs in stdio transport mode.
  • After editing a key, Apollo release may still be needed before clients see the change.
  • Avoid keeping DEBUG logs enabled in production for long periods.

Chinese README

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

mcp_apollo_config-0.1.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

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

mcp_apollo_config-0.1.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file mcp_apollo_config-0.1.1.tar.gz.

File metadata

  • Download URL: mcp_apollo_config-0.1.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for mcp_apollo_config-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d34fabba05c7857c2117465d41557d815d2c2f88b4f7fc17db7455f261b30668
MD5 575b25cf155bc7c8bd59fed8d4f0307c
BLAKE2b-256 b4e6dc063e6b3df0a128083fe23b39a96ddcdb83dc12595b0fd841eb1dca0526

See more details on using hashes here.

File details

Details for the file mcp_apollo_config-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_apollo_config-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 57bf574305c04d7d0cf11906c14a3a378cb56ee819cb2d0d651ad2acb775084e
MD5 969f3a070a7008a9fd4670b5b922e5d4
BLAKE2b-256 0060dc1912be46a8a36bf2a3cf4ca9046add131f7168aff34b79bee6ebb8a883

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