MCP server for the Apolo platform
Project description
apolo-mcp
apolo-mcp is a local stdio Model Context Protocol server for typed Apolo platform
operations. It is a thin adapter over apolo-sdk: it never shells out to the CLI and
uses the configured Apolo identity, permissions, and defaults. Local sessions normally
come from apolo login; isolated jobs may use APOLO_PASSED_CONFIG.
The server exposes bounded context discovery and typed platform operations. Every
operational tool accepts explicit cluster, org, and project inputs where the
SDK supports them; explicit inputs never modify the user's saved context. Secret
values and one-time credentials are intentionally outside the model-visible interface.
Installation
Follow the installation and client configuration guide for prerequisites, server and skill installation, Codex and Claude Code registration, per-session policy selection, and verification. Local stdio is the only supported transport; shared-credential remote service operation is unsupported.
See the Apolo MCP documentation for prerequisites, safety controls, the capability matrix, generated tools and skills catalogs, and task-oriented guides.
Development
make setup
make lint
make test
make build
Dependencies are locked with uv.lock. Tests use an ApoloClientProvider fake and do
not require credentials. Integration tests, when added, must be opt-in and target an
isolated non-production project.
Wheel and source-distribution files are generated release artifacts and must not be
committed. Tagged releases build them in CI and publish the exact outputs to PyPI via
Trusted Publishing; local dist/ contents are disposable. Maintainers should follow
RELEASE.md for changelog, validation, signing, and publication.
Release versions use YY.MM.NN: the two-digit year, the month without a leading zero,
and a zero-based release sequence within that month. For example, v26.7.0 is the
first July 2026 release, and its Python package version is 26.7.0.
Safety configuration
The server defaults to APOLO_MCP_POLICY_MODE=read-only. Use managed to create
resources and manage only their exact journaled lifecycles, or full to permit
mutations of any exact-context resource. Policy never grants Apolo permissions or
replaces Apolo RBAC, and it is not a security boundary against an agent with direct
CLI or SDK access. Never run full with a personal administrator, owner, or other
broadly privileged Apolo account. Use a dedicated least-privileged service account
and follow the full-mode service-account guide.
Select policy per launch rather than permanently storing managed or full; the
installation guide contains the client-specific configuration. Read the generated
safety model before enabling writes, and consult the
capability matrix for the complete current contract.
Licensed under Apache-2.0. See SECURITY.md for private reporting.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apolo_mcp-26.8.0.tar.gz.
File metadata
- Download URL: apolo_mcp-26.8.0.tar.gz
- Upload date:
- Size: 286.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53423dc7ff7b3e5ab8b337066c38f17decdc419fa982d287bfd2587618457e5a
|
|
| MD5 |
729de8878a2658d2394bda575fc8d854
|
|
| BLAKE2b-256 |
197018b865f50d488b62229f8a8861eb534485fc8ac0682a59dd9d0ce484f1c4
|
Provenance
The following attestation bundles were made for apolo_mcp-26.8.0.tar.gz:
Publisher:
ci.yaml on neuro-inc/apolo-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
apolo_mcp-26.8.0.tar.gz -
Subject digest:
53423dc7ff7b3e5ab8b337066c38f17decdc419fa982d287bfd2587618457e5a - Sigstore transparency entry: 2335131377
- Sigstore integration time:
-
Permalink:
neuro-inc/apolo-mcp@2bce45f4aefd8b9a74bc8c7aaab64c16fc325517 -
Branch / Tag:
refs/tags/v26.8.0 - Owner: https://github.com/neuro-inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yaml@2bce45f4aefd8b9a74bc8c7aaab64c16fc325517 -
Trigger Event:
push
-
Statement type:
File details
Details for the file apolo_mcp-26.8.0-py3-none-any.whl.
File metadata
- Download URL: apolo_mcp-26.8.0-py3-none-any.whl
- Upload date:
- Size: 106.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
598bbc939ce8fd35810c7357f18308c6b6136891341ee93c3fc56f7d209d47e6
|
|
| MD5 |
7aa624eb171624da8b7cd2ab636f6a38
|
|
| BLAKE2b-256 |
70935e60b3a5aea473652b0000335ac729247a7970af6114e12d05f21ca722ba
|
Provenance
The following attestation bundles were made for apolo_mcp-26.8.0-py3-none-any.whl:
Publisher:
ci.yaml on neuro-inc/apolo-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
apolo_mcp-26.8.0-py3-none-any.whl -
Subject digest:
598bbc939ce8fd35810c7357f18308c6b6136891341ee93c3fc56f7d209d47e6 - Sigstore transparency entry: 2335131419
- Sigstore integration time:
-
Permalink:
neuro-inc/apolo-mcp@2bce45f4aefd8b9a74bc8c7aaab64c16fc325517 -
Branch / Tag:
refs/tags/v26.8.0 - Owner: https://github.com/neuro-inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yaml@2bce45f4aefd8b9a74bc8c7aaab64c16fc325517 -
Trigger Event:
push
-
Statement type: