Ark API
REST API service for managing ARK resources. Provides native ARK endpoints, OpenAI-compatible endpoints, and includes the A2A Gateway for agent-to-agent communication.
Installation
Install via helm:
helm install ark-api \
ghcr.io/mckinsey/agents-at-scale-ark/charts/ark-api \
--namespace default \
--create-namespaceFor local development:
# From project root
make ark-api-dev
# Or from service directory
cd services/ark-api
devspace devConfiguration
Key environment variables:
| Variable | Description | Default |
|---|---|---|
PORT | Server port | 8000 |
AUTH_MODE | Authentication mode (open, basic, sso, hybrid) | open |
CORS_ORIGINS | Allowed CORS origins (comma-separated) | http://localhost:3000 |
ARK_A2A_AGENT_CARD_PORT | Port advertised in agent cards | Uses PORT (8000) |
ARK_A2A_AGENT_CARD_HOST | Host advertised in agent cards | localhost |
ARK_A2A_AGENT_CARD_PROTOCOL | Protocol advertised in agent cards | http |
ARK_A2A_AGENT_CARD_PATH | Optional path prefix for agent card URLs | Empty (root path) |
See the Helm chart values for complete configuration options.
API Endpoints
Native ARK APIs
- Agents:
/v1/namespaces/{namespace}/agents - Teams:
/v1/namespaces/{namespace}/teams - Queries:
/v1/namespaces/{namespace}/queries - Models:
/v1/namespaces/{namespace}/models - Evaluators:
/v1/namespaces/{namespace}/evaluators - Evaluations:
/v1/namespaces/{namespace}/evaluations - Secrets:
/v1/namespaces/{namespace}/secrets - API Keys:
/v1/api-keys - Resources:
/v1/resources- Generic access to any Kubernetes resource
See ARK APIs Reference and Resources API for complete API documentation.
OpenAI-Compatible APIs
- Models:
/openai/v1/models - Chat Completions:
/openai/v1/chat/completions
A2A Gateway
The A2A Gateway exposes ARK agents via the A2A Protocol for standardized agent-to-agent communication. All ARK agents in Kubernetes are automatically discovered and exposed.
Endpoints:
GET /agents- List all available agentsGET /agent/{agent-name}/.well-known/agent-card.json- Get agent cardGET /agent/{agent-name}/*- Dynamic A2A protocol routes
Example:
# List agents
curl http://localhost:8000/agents
# Get agent card
curl http://localhost:8000/agent/<agent-name>/.well-known/agent.jsonService Proxy
Proxy requests to other services deployed in your namespace. For example, the File Management features in Ark proxy requests from the dashboard directly to the filesystem server. Proxy APIs use the authentication policies configured for the tenant.
GET /v1/proxy/services- List available services* /v1/proxy/services/{service_name}/{path}- Proxy to a cluster serviceGET,POST,OPTIONS /v1/proxy/a2a/{a2a-server}- Proxy to an a2a serverGET,POST,OPTIONS /v1/proxy/a2a/{a2a-server}/{path}- Proxy to interact with an a2a serverGET,POST,OPTIONS /v1/proxy/mcp/{mcp-server}- Proxy to an mcp serverGET,POST,OPTIONS /v1/proxy/mcp/{mcp-server}/{path}- Proxy to interact with a mcp server
In order to connect with A2A Server or MCP Server you can use the following dev tools:
- A2A Inspector : for connecting to A2A via proxy (digit the full path at agent-card)
- MCP Inspector : for connecting to MCP via proxy (use Streamable HTTP and Direct connection)
Authentication
ARK API supports multiple authentication modes:
open: No authentication (development only)basic: API key authentication onlysso: OIDC/JWT authentication onlyhybrid: Both OIDC and API key authentication (recommended for production)
See Authentication Guide for complete configuration details.
Related Documentation
- ARK APIs Reference - Complete API documentation
- Resources API - Generic Kubernetes resource access
- Authentication Guide - Authentication configuration
- A2A Protocol Specification - A2A protocol details