mcp-acp
Click on "Deploy 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-acpShow me all my running sessions"
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
Related MCP server: pokeclaw
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.
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage Speko voice-AI agents, sessions, calls, phone numbers, knowledge bases, evals, and docs.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
List, read, edit, and deploy your GenMB AI-generated apps from any MCP client.
Manage portable AI agent playbooks, Agent Skills, MCP configurations, personas, and memory.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables delegation of agentic sessions to Kubernetes-hosted Claude agents running on the Ambient Code Platform. Supports creating, managing, and communicating with remote AI agent sessions through OpenShift authentication.-
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to spawn and control Codex CLI and Claude Code sessions on the host machine, with session management and filesystem access.4MIT
- AlicenseNot gradedqualityAmaintenanceBrowse, search, rename, split, and clean up Claude Code sessions via MCP, Web UI, or VSCode extension.10 npm22MIT
- FlicenseNot gradedqualityDmaintenanceEnables managing coding agent sessions in a shared workspace, supporting session registration, handoff notes, and export summaries via Streamable HTTP.-