Hermes Supabase MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SUPABASE_URL | No | The URL of the Supabase instance, e.g. https://rjoebxpiajgjglemtayk.supabase.co | |
| SUPABASE_SECRET_KEY | No | The Supabase secret key (sb_secret_...). Takes precedence over SUPABASE_SERVICE_ROLE_KEY. | |
| SUPABASE_ALLOWED_TABLES | No | Comma-separated list of tables to restrict access to, e.g. school_menus,menu_items. Optional. | |
| SUPABASE_SERVICE_ROLE_KEY | No | Temporarily accepted for migration; SUPABASE_SECRET_KEY takes precedence. Optional if SUPABASE_SECRET_KEY is provided. |
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 |
|---|---|
| supabase_healthA | Check connectivity to the configured Supabase project. |
| supabase_selectC | Read rows from an allowed table using PostgREST filter expressions. |
| supabase_insertC | Insert rows into an allowed table and return inserted records. |
| supabase_upsertC | Insert or merge rows, optionally using a comma-separated conflict key list. |
| supabase_updateB | Update rows matching required filters; unrestricted updates are rejected. |
| supabase_deleteB | Delete rows matching required filters; unrestricted deletes are rejected. |
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 maps to a distinct CRUD operation or health check, with insert vs. upsert boundaries clearly explained (insert fails on conflict, upsert merges with conflict keys). No overlapping purposes that would cause misselection.
All tool names follow the same supabase_<operation> snake_case pattern. 'health' is the only non-verb label, but it remains a clear operation name within the same prefix convention.
Six tools are well-scoped for safe table-row operations plus a connectivity check. Each tool earns its place without redundancy or filler.
The set provides full CRUD lifecycle coverage (select, insert, upsert, update, delete) plus a health check for the stated allowed-table domain. No obvious dead ends exist for safe PostgREST-based row operations, though schema introspection or RPC is outside the apparent scope.