MCP Servers — AI Agent Integration¶
Overview¶
AKKO provides Model Context Protocol (MCP) servers that allow AI agents (Claude, Cursor, VS Code Copilot) to interact with the data platform.
This is a key differentiator: AKKO is the only open-source sovereign platform offering MCP integration with SQL + AI functions + data catalog discovery.
AKKO ships two MCP servers, both exposed via Kubernetes Ingress and containerised as part of the 11-image build pipeline:
| Server | Image | Purpose |
|---|---|---|
akko-mcp-trino |
akko-mcp-trino:2026.03 |
Federated SQL + AI SQL UDFs |
akko-mcp-openmetadata |
akko-mcp-openmetadata:2026.03 |
Catalog discovery, lineage, glossary |
MCP Server Trino (8 tools)¶
Enables AI agents to query data and call AI functions via natural language.
Tools¶
| Tool | Description |
|---|---|
list_catalogs() |
List all Trino catalogs (iceberg, postgresql, tpch...) |
list_schemas(catalog) |
List schemas in a catalog |
list_tables(catalog, schema) |
List tables in a schema |
describe_table(catalog, schema, table) |
Describe table columns |
execute_query(sql) |
Execute read-only SQL query (max 100 rows) |
akko_ai_sentiment(text) |
Analyze sentiment using AKKO AI (local Ollama) |
akko_ai_summarize(text) |
Summarize text using AKKO AI |
akko_ai_ask(question, context) |
Ask a question with optional context |
Security¶
- Read-only mode by default (rejects INSERT/UPDATE/DELETE/DROP)
- SQL injection protection via parameterized escaping
- Runs inside the K8s cluster (no external API calls)
- 100% sovereign: queries Trino → AI Service → Ollama (all local)
Configuration¶
| Variable | Default | Description |
|---|---|---|
TRINO_HOST |
akko-trino |
Trino coordinator |
TRINO_PORT |
8080 |
Trino port |
TRINO_USER |
mcp-trino |
Trino user |
TRINO_READ_ONLY |
true |
Reject DML/DDL |
TRINO_MAX_ROWS |
100 |
Max rows per query |
Usage with Claude Desktop¶
Or locally: kubectl port-forward svc/akko-akko-mcp-trino 3000:3000 -n akko
MCP Server OpenMetadata¶
Enables AI agents to discover datasets, inspect lineage, and explore the AKKO data catalog.
Tools¶
| Tool | Description |
|---|---|
search_datasets(query) |
Full-text search across the OpenMetadata catalog |
get_table_metadata(fqn) |
Fetch schema, tags, owners, description for a table |
get_lineage(fqn) |
Upstream/downstream lineage (up to N hops) |
list_glossary_terms() |
Enumerate business glossary entries |
list_dashboards() |
Superset dashboards registered in OpenMetadata |
Security¶
- Authenticates against OpenMetadata via service JWT (no browser flow)
- Read-only against the catalog API (
/api/v1/...) - Runs alongside MCP Trino in the same namespace (
akko)
Configuration¶
| Variable | Default | Description |
|---|---|---|
OPENMETADATA_HOST |
openmetadata |
OpenMetadata server |
OPENMETADATA_PORT |
8585 |
OpenMetadata port |
OPENMETADATA_JWT |
(secret) | Service JWT (stored in a K8s Secret) |
Usage with Claude Desktop¶
Or locally: kubectl port-forward svc/akko-akko-mcp-openmetadata 3001:3000 -n akko
Ingress¶
Both MCP servers are reachable through Traefik Ingress (Sprint 14):
https://mcp-trino.<domain>→ MCP Server Trinohttps://mcp-openmetadata.<domain>→ MCP Server OpenMetadata
TLS is terminated by the shared akko-tls secret. Only GET/POST are allowed at the Ingress level — all mutation tools remain guarded by the server.
License¶
MCP SDK: MIT (Anthropic). Server code: Apache 2.0.