MCP Server
Connect AI tools like Claude to manage configs and files conversationally.
Overview
co includes a built-in Model Context Protocol (MCP) server. This allows AI assistants like Claude Desktop, Claude Code, or any MCP-compatible client to manage configs, namespaces, groups, and S3 files through natural conversation.
The MCP server is stateless — each request is independently authenticated and processed. It uses Streamable HTTP transport at the /mcp endpoint.
Authentication
The MCP server uses the same API keys as the REST API. You can authenticate in two ways:
- Authorization header:
Authorization: Bearer sk-xxx - URL token parameter:
/mcp?token=sk-xxx
Create API keys in Workspace Settings > API Keys.
Setup
Claude Desktop
Add the following to your Claude Desktop MCP configuration:
Claude Code
Add to your project's .mcp.json:
Or use the CLI:
Other MCP Clients
Any MCP client that supports Streamable HTTP transport can connect to:
Pass authentication via the Authorization: Bearer sk-xxx header or the ?token=sk-xxx query parameter.
Available Tools
list_namespaces
List all namespaces in the workspace.
No parameters required.
Example prompt: "Show me all namespaces"
list_groups
List config groups within a namespace.
Example prompt: "List groups in the production namespace"
list_configs
List configs with optional filters.
Example prompt: "Show me all configs in the production namespace"
get_config
Get a specific config by ID or by namespace/group/name path.
Provide either id or all three of namespace, group, and name.
Example prompt: "Get the database connection string from production/database"
create_config
Create a new config in a group.
Example prompt: "Create a new JSON config called 'settings' in group abc-123"
update_config
Update an existing config.
Example prompt: "Update the database URL config to use the new host"
delete_config
Delete a config.
Example prompt: "Delete the deprecated config abc-123"
list_connections
List all S3 connections in the workspace.
No parameters required.
Example prompt: "Show me all S3 connections"
browse_files
Browse files in an S3 connection.
Example prompt: "Browse files in the images folder"
get_file_url
Get a URL to access a file.
Example prompt: "Get the URL for images/hero.jpg"
get_upload_url
Get a presigned URL for uploading a file.
Example prompt: "Give me an upload URL for documents/report.pdf"