Enables delegation of AI tasks to Kubernetes-hosted Claude agents running on OpenShift, with tools for managing agentic sessions, checking authentication status, listing projects/namespaces, and controlling session lifecycle.
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., "@Ambient Code Platform MCP Servercreate a session to analyze my codebase for security vulnerabilities"
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 ACP Server
A Model Context Protocol (MCP) server for managing Ambient Code Platform (ACP) sessions via the public-api gateway.
Table of Contents
Quick Start
# Install
git clone https://github.com/ambient-code/mcp
pip install dist/mcp_acp-*.whl
# Configure
mkdir -p ~/.config/acp
cat > ~/.config/acp/clusters.yaml <<EOF
clusters:
my-cluster:
server: https://public-api-ambient.apps.your-cluster.example.com
token: your-bearer-token-here
default_project: my-workspace
default_cluster: my-cluster
EOF
chmod 600 ~/.config/acp/clusters.yamlThen add to your MCP client (Claude Desktop, Claude Code, or uvx) and try:
List my ACP sessionsFeatures
Session Management
Tool | Description |
| List/filter sessions by status, age, with sorting and limits |
| Get detailed session information by ID |
| Create sessions with custom prompts, repos, model selection, and timeout |
| Create sessions from predefined templates (triage/bugfix/feature/exploration) |
| Delete sessions with dry-run preview |
| Restart a stopped session |
| Clone an existing session's configuration into a new session |
| Update session metadata (display name, timeout) |
Observability
Tool | Description |
| Retrieve container logs for a session |
| Retrieve conversation history (JSON or Markdown) |
| Get usage statistics (tokens, duration, tool calls) |
Labels
Tool | Description |
| Add labels to a session for organizing and filtering |
| Remove labels from a session by key |
| List sessions matching label selectors |
| Add labels to multiple sessions (max 3) |
| Remove labels from multiple sessions (max 3) |
Bulk Operations
Tool | Description |
| Delete multiple sessions (max 3) with confirmation and dry-run |
| Stop multiple running sessions (max 3) |
| Restart multiple stopped sessions (max 3) |
| Delete sessions matching label selectors (max 3 matches) |
| Stop sessions matching label selectors (max 3 matches) |
| Restart sessions matching label selectors (max 3 matches) |
Cluster Management
Tool | Description |
| List configured cluster aliases |
| Check current configuration and authentication status |
| Switch between configured clusters |
| Authenticate to a cluster with a Bearer token |
Safety Features:
Dry-Run Mode — All mutating operations support
dry_runfor safe preview before executingBulk Operation Limits — Maximum 3 items per bulk operation with confirmation requirement
Label Validation — Labels must be 1-63 alphanumeric characters, dashes, dots, or underscores
Installation
From Wheel
pip install dist/mcp_acp-*.whlFrom Source
git clone https://github.com/ambient-code/mcp
cd mcp
uv pip install -e ".[dev]"Requirements:
Python 3.10+
Bearer token for the ACP public-api gateway
Access to an ACP cluster
Configuration
Cluster Config
Create ~/.config/acp/clusters.yaml:
clusters:
vteam-stage:
server: https://public-api-ambient.apps.vteam-stage.example.com
token: your-bearer-token-here
description: "V-Team Staging Environment"
default_project: my-workspace
vteam-prod:
server: https://public-api-ambient.apps.vteam-prod.example.com
token: your-bearer-token-here
description: "V-Team Production"
default_project: my-workspace
default_cluster: vteam-stageThen secure the file:
chmod 600 ~/.config/acp/clusters.yamlAuthentication
Add your Bearer token to each cluster entry under the token field, or set the ACP_TOKEN environment variable:
export ACP_TOKEN=your-bearer-token-hereGet your token from the ACP platform administrator or the gateway's authentication endpoint.
Claude Desktop
Edit your configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"acp": {
"command": "mcp-acp",
"args": [],
"env": {
"ACP_CLUSTER_CONFIG": "${HOME}/.config/acp/clusters.yaml"
}
}
}
}After editing, completely quit and restart Claude Desktop (not just close the window).
Claude Code (CLI)
claude mcp add mcp-acp -t stdio mcp-acpUsing uvx
uvx provides zero-install execution — no global Python pollution, auto-caching, and fast startup.
# Install uv (if needed)
curl -LsSf https://astral.sh/uv/install.sh | shClaude Desktop config for uvx:
{
"mcpServers": {
"acp": {
"command": "uvx",
"args": ["mcp-acp"]
}
}
}For a local wheel (before PyPI publish):
{
"mcpServers": {
"acp": {
"command": "uvx",
"args": ["--from", "/full/path/to/dist/mcp_acp-0.1.0-py3-none-any.whl", "mcp-acp"]
}
}
}Usage
Examples
# List sessions
List my ACP sessions
Show running sessions in my-workspace
List sessions older than 7 days in my-workspace
List sessions sorted by creation date, limit 20
# Session details
Get details for ACP session session-name
Show AgenticSession session-name in my-workspace
# Create a session
Create a new ACP session with prompt "Run all unit tests and report results"
# Create from template
Create an ACP session from the bugfix template called "fix-auth-issue"
# Restart / clone
Restart ACP session my-stopped-session
Clone ACP session my-session as "my-session-v2"
# Update session metadata
Update ACP session my-session display name to "Production Test Runner"
# Observability
Show logs for ACP session my-session
Get transcript for ACP session my-session in markdown format
Show metrics for ACP session my-session
# Labels
Label ACP session my-session with env=staging and team=platform
Remove label env from ACP session my-session
List ACP sessions with label team=platform
# Delete with dry-run (safe!)
Delete test-session from my-workspace in dry-run mode
# Actually delete
Delete test-session from my-workspace
# Bulk operations (dry-run first)
Delete these sessions: session-1, session-2, session-3 from my-workspace (dry-run first)
Stop all sessions with label env=test
Restart sessions with label team=platform
# Cluster operations
Check my ACP authentication
List my ACP clusters
Switch to ACP cluster vteam-prod
Login to ACP cluster vteam-stage with tokenTrigger Keywords
Include one of these keywords so your MCP client routes the request to ACP: ACP, ambient, AgenticSession, or use tool names directly (e.g., acp_list_sessions, acp_whoami). Without a keyword, generic phrases like "list sessions" may not trigger the server.
Quick Reference
Task | Command Pattern |
Check auth |
|
List all |
|
Filter status |
|
Filter age |
|
Get details |
|
Create |
|
Create from template |
|
Restart |
|
Clone |
|
Update |
|
View logs |
|
View transcript |
|
View metrics |
|
Add labels |
|
Remove labels |
|
Filter by label |
|
Delete (dry) |
|
Delete (real) |
|
Bulk delete |
|
Bulk by label |
|
List clusters |
|
Login |
|
Tool Reference
For complete API specifications including input schemas, output formats, and behavior details, see API_REFERENCE.md.
Category | Tool | Description |
Session |
| List/filter sessions |
| Get session details | |
| Create session with prompt | |
| Create from template | |
| Delete with dry-run support | |
| Restart stopped session | |
| Clone session configuration | |
| Update display name or timeout | |
Observability |
| Retrieve container logs |
| Get conversation history | |
| Get usage statistics | |
Labels |
| Add labels to session |
| Remove labels by key | |
| Filter sessions by labels | |
| Bulk add labels (max 3) | |
| Bulk remove labels (max 3) | |
Bulk |
| Delete multiple sessions (max 3) |
| Stop multiple sessions (max 3) | |
| Restart multiple sessions (max 3) | |
| Delete by label (max 3) | |
| Stop by label (max 3) | |
| Restart by label (max 3) | |
Cluster |
| List configured clusters |
| Check authentication status | |
| Switch cluster context | |
| Authenticate with Bearer token |
Troubleshooting
"No authentication token available"
Your token is not configured. Either:
Add
token: your-token-hereto your cluster in~/.config/acp/clusters.yamlSet the
ACP_TOKENenvironment variable
"HTTP 401: Unauthorized"
Your token is expired or invalid. Get a new token from the ACP platform administrator.
"HTTP 403: Forbidden"
You don't have permission for this operation. Contact your ACP platform administrator.
"Direct Kubernetes API URLs (port 6443) are not supported"
You're using a direct K8s API URL. Use the public-api gateway URL instead:
Wrong:
https://api.cluster.example.com:6443Correct:
https://public-api-ambient.apps.cluster.example.com
"mcp-acp: command not found"
Add Python user bin to PATH:
macOS:
export PATH="$HOME/Library/Python/3.*/bin:$PATH"Linux:
export PATH="$HOME/.local/bin:$PATH"
Then restart your shell.
MCP Tools Not Showing in Claude
Check Claude Desktop logs: Help → View Logs
Verify config file syntax is valid JSON
Make sure
mcp-acpis in PATHRestart Claude Desktop completely (quit, not just close)
"Permission denied" on clusters.yaml
chmod 600 ~/.config/acp/clusters.yaml
chmod 700 ~/.config/acpArchitecture
MCP SDK — Standard MCP protocol implementation (stdio transport)
httpx — Async HTTP REST client for the public-api gateway
Pydantic — Settings management and input validation
Three-layer design — Server (tool dispatch) → Client (HTTP + validation) → Formatters (output)
See CLAUDE.md for complete system design.
Security
Input Validation — DNS-1123 format validation for all resource names
Gateway URL Enforcement — Direct K8s API URLs (port 6443) rejected
Bearer Token Security — Tokens filtered from logs, sourced from config or environment
Resource Limits — Bulk operations limited to 3 items with confirmation
See SECURITY.md for complete security documentation including threat model and best practices.
Development
# One-time setup
uv venv && uv pip install -e ".[dev]"
# Pre-commit workflow
uv run ruff format . && uv run ruff check . && uv run pytest tests/
# Run with coverage
uv run pytest tests/ --cov=src/mcp_acp --cov-report=html
# Build wheel
uvx --from build pyproject-build --installer uvSee CLAUDE.md for contributing guidelines.
Roadmap
Current implementation provides 26 tools. 3 tools remain planned:
Contributing
Fork the repository
Create a feature branch
Add tests for new functionality
Ensure all tests pass (
uv run pytest tests/)Ensure code quality checks pass (
uv run ruff format . && uv run ruff check .)Submit a pull request
Status
Code: Production-Ready | Tests: All Passing | Security: Input validation, gateway enforcement, token security | Tools: 26 implemented (3 more planned)
Documentation
API_REFERENCE.md — Full API specifications for all 26 tools
SECURITY.md — Security features, threat model, and best practices
CLAUDE.md — System architecture and development guide
License
MIT License — See LICENSE file for details.
Support
For issues and feature requests, use the GitHub issue tracker.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.