workbench-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DB_HOST | Yes | PostgreSQL server hostname | |
| DB_NAME | Yes | Database name | |
| DB_PORT | No | Connection port | 5432 |
| DB_USER | Yes | Database username | |
| DB_SSLMODE | No | SSL mode | prefer |
| DB_MAX_ROWS | No | Maximum rows per result set | 100 |
| DB_PASSWORD | Yes | Database password | |
| API_VERIFY_SSL | No | true / false SSL verification (local dev certs) | |
| API_BEARER_TOKEN | No | Bearer token used for authenticated HTTP calls | |
| DB_MAX_RESULT_SETS | No | Maximum result sets per batch | 5 |
| API_TIMEOUT_SECONDS | No | HTTP request timeout | |
| DB_APPLICATION_NAME | No | Application identifier | |
| API_MAX_RESPONSE_BYTES | No | Max response bytes returned by HTTP tools | |
| DB_OBJECT_PREVIEW_CHARS | No | Max definition preview length | 4000 |
| DB_QUERY_TIMEOUT_SECONDS | No | Query timeout (seconds) | 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 |
|---|---|
| healthB | Provide system status and configuration details without exposing secrets. |
| describe_objectB | Retrieve structural details, parameters, and definition for a database object. |
| list_tables_and_columnsB | Discover tables and columns with optional filtering by schema or keyword search. |
| preview_queryA | Execute read-only SELECT statements and CTEs with safety validation and row limits. |
| execute_readonly_sqlC | Execute read-only SQL batches with support for temporary tables within the session. |
| exec_proc_previewB | Execute PostgreSQL functions or procedures with optional parameters and result limiting. |
| exec_function_previewA | Execute a PostgreSQL function with positional parameters and return preview rows. Use this tool for function calls such as
Pass arguments in positional order using JSON-compatible values:
PostgreSQL array parameters should be passed as normal lists; psycopg adapts them to PostgreSQL arrays automatically. |
| insert_rowA | Insert a single row into a PostgreSQL table. Use this tool when you need one explicit insert with structured values.
Example:
|
| insert_rowsA | Insert multiple rows into a PostgreSQL table in one batch. Use this tool for bulk inserts where every row has the same columns.
Notes:
|
| http_getA | Send an HTTP GET request. Use for read-only resource retrieval. Provide a full URL.
Pass |
| http_headA | Send an HTTP HEAD request. Use for metadata/status checks without retrieving a full body.
Pass |
| http_postA | Send an HTTP POST request. Use for create/actions. Provide a full URL.
|
| http_putA | Send an HTTP PUT request. Use for full updates/replacements.
|
| http_patchA | Send an HTTP PATCH request. Use for partial updates.
|
| http_deleteA | Send an HTTP DELETE request. Use for delete operations. Some APIs allow delete payloads; if needed,
provide |
| auth_start_sessionA | Acquire a session-scoped JWT for email from the backend broker. After a successful call every HTTP tool call in this session will
automatically use the returned token (unless the tool call provides
its own Parametersemail: The user whose identity the MCP session will impersonate. reason: Optional free-text description of why this session is needed. Stored in the JWT claims for audit purposes. Returnsdict
|
| auth_switch_userA | Switch the active session to a different user. Equivalent to calling Parametersemail: The new user to impersonate. reason: Optional free-text description of why the switch is needed. Returnsdict
Same shape as |
| auth_statusA | Return the current session status without exposing the raw token. Returnsdict
|
| auth_clear_sessionA | Clear the active session token from memory. After this call HTTP tools will fall back to Returnsdict
|
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 19 tools
Most tools have distinct purposes, but there is some overlap between exec_function_preview and exec_proc_preview, which both execute PostgreSQL functions/procedures with similar parameters. The HTTP tools (http_get, http_post, etc.) are clearly differentiated by HTTP method, and auth tools are well-separated. Overall, the descriptions help clarify boundaries, but the function/procedure execution tools could cause confusion.
Tool names follow a highly consistent snake_case pattern with clear verb_noun structures. Auth tools use auth_ prefix (e.g., auth_clear_session), HTTP tools use http_ prefix (e.g., http_get), and database tools use descriptive verbs like describe_, exec_, insert_, list_, preview_. There are no deviations in naming style across the set.
With 19 tools, the count is slightly high but reasonable for a workbench server that combines authentication, HTTP operations, and database interactions. It covers multiple domains comprehensively without being excessive. A few tools might be consolidated (e.g., the two function execution tools), but overall the scope justifies the number.
The toolset provides complete coverage for its intended domains: authentication (session management), HTTP operations (full CRUD via different methods), and PostgreSQL database interactions (querying, inserting, describing objects, executing functions). There are no obvious gaps; agents can perform end-to-end workflows involving data retrieval, manipulation, and API calls with proper auth handling.