mcp-apollo-config
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-apollo-configGet the value of the config key 'server.port'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-apollo-config
MCP server for Apollo Config Center using portal username/password login, implemented with FastMCP.
Install
pip install mcp-apollo-configLocal editable install:
pip install -e .Related MCP server: apollo-mcp-server
Auth Mode
The plugin authenticates by portal session:
POST /signinwith username/passwordReceives login session cookie (
SESSIONorJSESSIONID)Uses portal management APIs under
/apps/{appId}/envs/{env}/...
No OpenAPI token is required.
Governance Mode
readonly(default): query onlyeditable: 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-urlorAPOLLO_PORTAL_URL--usernameorAPOLLO_USERNAME--passwordorAPOLLO_PASSWORD
Optional:
--login-submitorAPOLLO_LOGIN_SUBMIT--governance-modeorAPOLLO_GOVERNANCE_MODE:readonly|editable--operatororAPOLLO_OPERATOR(required in editable mode)--default-app-idorAPOLLO_DEFAULT_APP_ID--default-envorAPOLLO_DEFAULT_ENV(for exampleDEV,TEST)--default-clusterorAPOLLO_DEFAULT_CLUSTER(default:default)--default-namespaceorAPOLLO_DEFAULT_NAMESPACE--timeout-msorAPOLLO_TIMEOUT_MS(default:10000)--log-levelorMCP_APOLLO_LOG_LEVEL:DEBUG|INFO|WARN|ERROR(default:WARN)--debug-httporMCP_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/listin readonly and editable modeapollo_get_keyapollo_get_namespace_configsapollo_edit_keyPortal session login + cookie flow
Notes
The management API path includes
/envs/{env}. Set--default-envor passenvin 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
DEBUGlogs enabled in production for long periods.
Chinese README
Available Tools
2 toolsapollo_get_keyC
Query a single key in a namespace/environment/cluster in Apollo.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| appId | No | ||
| env | No | ||
| clusterName | No | ||
| namespaceName | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | No | ||
| env | No | ||
| clusterName | No | ||
| namespaceName | No | ||
| pageSize | No | ||
| maxItems | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.2- First observed
apollo_get_key - First observed
apollo_get_namespace_configs
TDQS
The two tools have clearly distinct purposes: one retrieves a single key, the other retrieves all configs under a namespace. No overlap in functionality.
Both tools follow a consistent 'apollo_get_<thing>' pattern in snake_case, making it predictable and easy to understand.
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.
The server lacks any write operations (create, update, delete) and only provides basic read capabilities. Significant gaps exist for managing configurations.
Maintenance
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
Interact with your HackMD notes and teams seamlessly. Manage your notes, view reading history, and…
Automate any website: discover, run and create browser scripts that work behind logins.
Software component catalog: search your org's services, docs, APIs, dependencies, and ownership.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables access to Yuque (语雀) documentation through cookie-based authentication, supporting document retrieval, search, TOC navigation, and content management from knowledge bases via URL or namespace.44624MIT
- AlicenseBqualityDmaintenanceEnables large language models to query and operate on Apollo Configuration Center. Supports managing apps, clusters, namespaces, config items, and releases.173MIT
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to query and manage SAP Commerce (Hybris) instances via FlexibleSearch, Groovy, ImpEx, and type system browsing through the HAC console, with secure credential handling and multi-environment support.17MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to query and manage Nacos configurations, supporting Nacos 1.x/2.x/3.x with multiple transport protocols.71MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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