benthic-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BENTHIC_BDP_ROOT | No | Signed BDP document root | https://benthic.io/bdp |
| BENTHIC_MAX_ROWS | No | Maximum PostgREST page size | 1000 |
| BENTHIC_MCP_HOST | No | HTTP bind address | 0.0.0.0 |
| BENTHIC_MCP_PATH | No | Streamable HTTP path | /mcp |
| BENTHIC_MCP_PORT | No | HTTP port | 8082 |
| BENTHIC_CACHE_DIR | No | Verified catalog cache | $XDG_CACHE_HOME/benthic-mcp |
| BENTHIC_COLLECTIONS | No | Signed collections to load | ngopen |
| BENTHIC_TRUSTED_KEYS | No | Trusted Ed25519 public keys | Current pinned key |
| BENTHIC_MCP_TRANSPORT | No | http or stdio; stdio is what llama-server's MCP client needs | http |
| BENTHIC_PLAYBOOK_MODE | No | off, seed, or active | seed |
| BENTHIC_PLAYBOOK_PATH | No | Promoted playbook location | <cache>/playbook.json |
| BENTHIC_TRACE_ENABLED | No | Record objective tool-call traces | 1 |
| BENTHIC_MCP_BEARER_TOKEN | Yes | Required for the HTTP transport only | |
| BENTHIC_CACHE_TTL_SECONDS | No | Refresh interval | 900 |
| BENTHIC_MCP_ALLOWED_HOSTS | No | Accepted Host headers | loopback only |
| BENTHIC_MAX_RESPONSE_BYTES | No | Per-response byte limit | 1048576 |
| BENTHIC_TRACE_INCLUDE_TEXT | No | Store question text from benthic_report | 0 |
| BENTHIC_DEFAULT_QUERY_LIMIT | No | Default result limit | 100 |
| BENTHIC_MCP_ALLOWED_ORIGINS | No | Accepted browser origins | loopback only |
| BENTHIC_AGGREGATE_SCAN_LIMIT | No | Maximum complete source scan | 10000 |
| BENTHIC_CONSOLIDATOR_LLM_URL | No | Model used by the consolidator | local llama-server |
| BENTHIC_TRACE_RETENTION_DAYS | No | Trace retention | 30 |
| BENTHIC_LESSON_RETENTION_DAYS | No | Lesson retention | 30 |
| BENTHIC_MAX_CACHE_AGE_SECONDS | No | Maximum stale-cache fallback age | 604800 |
| BENTHIC_PLAYBOOK_TOKEN_BUDGET | No | Token cap for the always-on core slice | 600 |
| BENTHIC_REQUEST_TIMEOUT_SECONDS | No | Upstream request timeout | 30 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| benthic_discoverA | Find the smallest relevant signed source, columns, and join paths for a question. Core access rules:
|
| benthic_playbookA | Dataset-specific access conventions built from signed metadata and prior sessions. |
| benthic_queryA | Run one bounded read-only relation query. Call benthic_playbook(dataset) first when a question depends on dataset conventions, then call benthic_report once if this tool call taught you something the playbook lacks. |
| benthic_joinA | Run one signed join using qualified sources. Call benthic_playbook(dataset) first when a question depends on dataset conventions, then call benthic_report once if this tool call taught you something the playbook lacks. |
| benthic_rpcD | Call benthic_playbook(dataset) first when a question depends on dataset conventions, then call benthic_report once if this tool call taught you something the playbook lacks. |
| benthic_reportA | Record one mistake you made and the correction, so future sessions do not repeat it. Call this once after answering, only if a tool call or a source convention misled you. Write the lesson as an instruction to your future self ("use X instead of Y"), not as a complaint. Reports are stored as pending and are only served to later sessions after catalog verification and an offline A/B evaluation, so a wrong report cannot change current behaviour. Do not call it when nothing went wrong. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a distinct role: discovery, query, join, RPC, playbook, and report. The boundaries between benthic_join and a potential join via benthic_query are implied but not explicitly contrasted in the descriptions; however, the extensive cross-references and rules make their intended uses clear.
All tools follow a consistent benthic_ prefix with a single-word snake_case verb or noun (discover, query, join, rpc, playbook, report). The pattern is predictable and readable.
Six tools are well-scoped for a database query and metadata system. Each tool appears necessary: discovery, querying, joining, RPC access, playbook guidance, and reporting. No obvious redundancy or missing core operation.
The set covers the full lifecycle for this domain: discovering sources, querying data, performing joins, calling RPCs, accessing dataset conventions, and reporting issues. No obvious missing operations for read-only data exploration and joining.