Skip to main content
Glama
xsg22

mcp-apollo-config

by xsg22

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 .

Related MCP server: apollo-mcp-server

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

Available Tools

2 tools
apollo_get_keyC

Query a single key in a namespace/environment/cluster in Apollo.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
appIdNo
envNo
clusterNameNo
namespaceNameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden. It merely says 'Query,' implying read-only, but lacks explicit safety info, error cases, or side effects. Minimal disclosure for a tool with 5 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the main action. However, it sacrifices necessary detail for brevity, making it less helpful than a slightly longer but more informative version.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (1 required) and an output schema, the description is too sparse. It does not provide context on default values, optional parameters, or how the output schema relates to the query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It mentions key and namespace/environment/cluster but does not explain the role of appId, env, clusterName, namespaceName, or how they scope the query. Insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries a single key in Apollo, specifying the hierarchical context (namespace/environment/cluster). It effectively distinguishes from the sibling tool apollo_get_namespace_configs which presumably retrieves all keys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the sibling or alternatives. The description does not explain prerequisites or scenarios where this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apollo_get_namespace_configsC

Query all configs under a namespace/environment/cluster in Apollo.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdNo
envNo
clusterNameNo
namespaceNameNo
pageSizeNo
maxItemsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full disclosure burden. It only states 'query', but does not disclose read-only nature, potential side effects, pagination behavior, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it sacrifices completeness. While no word is wasted, the lack of detail makes it only adequate for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description omits crucial usage details: no parameter explanations, no mention of pagination or defaults, and no behavioral context. Incomplete for a tool with 6 optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should explain parameters. It does not mention any of the 6 parameters (appId, env, clusterName, namespaceName, pageSize, maxItems) beyond their names in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Query') and resource ('all configs under a namespace/environment/cluster'), and implicitly distinguishes from the sibling 'apollo_get_key' which likely targets a single key.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for querying all configs in a namespace, but provides no explicit guidance on when to use versus when not to, nor does it mention alternatives or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.2
    • First observedapollo_get_key
    • First observedapollo_get_namespace_configs

TDQS

B3.1/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one retrieves a single key, the other retrieves all configs under a namespace. No overlap in functionality.

Naming Consistency5/5

Both tools follow a consistent 'apollo_get_<thing>' pattern in snake_case, making it predictable and easy to understand.

Tool Count4/5

With only 2 tools, the surface is thin but appropriate for a read-only query interface focused on single key and full namespace config retrieval.

Completeness2/5

The server lacks any write operations (create, update, delete) and only provides basic read capabilities. Significant gaps exist for managing configurations.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xsg22/mcp-apollo-config'

If you have feedback or need assistance with the MCP directory API, please join our Discord server