A server that exposes Materialize indexes and database tools over the Model Context Protocol (MCP), providing real-time data access and database management capabilities
The server provides 8 tools across two packages (agents and developers). Most tools have descriptions and some parameter documentation, but several critical gaps exist. The agent tools (get_data_products, get_data_product_details, query) have good, LLM-optimized descriptions explaining WHAT they do and WHEN to use them. However, input schemas are incomplete or missing validation details. The developer tools (execute_ddl, run_sql_transaction, monitor_data_freshness, object_freshness_diagnostics, search_documentation) lack visible schemas and detailed parameter documentation. Error handling guidance is absent across all tools. Security considerations (SQL injection, DDL injection) are not documented.
Execute DDL (Data Definition Language) statements to create, alter, or drop database objects in Materialize. Available only in READ_WRITE mode.
Get the complete schema and structure of a specific data product. This shows you exactly what fields are available, their types, and what data you can query. Use this after finding a data product from get_data_products() to understand how to query it.
Discover all available real-time data views (data products) that represent business entities like customers, orders, products, etc. Each data product provides fresh, queryable data with defined schemas. Use this first to see what data is available before querying specific information.
Monitor the freshness and lag of materialized views and real-time data products. Available in READ_ONLY and READ_WRITE modes.
Run diagnostics on object freshness and data pipeline health in Materialize. Available in READ_ONLY and READ_WRITE modes.
Execute SQL queries against real-time data products to retrieve current business information. Use standard PostgreSQL syntax. You can JOIN multiple data products together, but ONLY if they are all hosted on the same cluster. Always specify the cluster parameter from the data product details. This provides fresh, up-to-date results from materialized views.
Developer tools (execute_ddl, run_sql_transaction, monitor_data_freshness, object_freshness_diagnostics, search_documentation) have NO visible input schemas in source code. Cannot verify parameter types, constraints, or validation.
No error handling guidance documented. Tools do not specify what errors are retryable, user-fixable, or fatal. LLMs have no recovery path when a query fails or DDL conflicts occur.
SQL injection and DDL injection risks not addressed. Tools accept raw SQL input (query, execute_ddl, run_sql_transaction) with no documented validation, parameterization, or sanitization guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 49 | 1.10.1+ | v1 |
Execute SQL transactions with full transaction control (BEGIN, COMMIT, ROLLBACK). Available in READ_ONLY and READ_WRITE modes.
Search Materialize documentation for information about database features, configuration, and best practices. Always available.
Output schemas not documented for any tool. LLMs cannot know what fields to expect in responses, making downstream tool chaining and data extraction difficult.
Developer tools have minimal or vague descriptions (under 50 chars for some). 'Run diagnostics on object freshness...' does not explain WHAT freshness means, WHY an LLM should call this tool, or WHEN to use it vs monitor_data_freshness.
Permission and scope declarations missing. No documentation of which roles can invoke execute_ddl vs query, or what permissions are required. No audit trail guidance.
query tool requires 'cluster' parameter but get_data_product_details description does not explicitly state that it returns the cluster name needed for subsequent query() calls. Broken tool chain.
Result limits not documented for get_data_products and query. Large result sets can blow context window. No pagination parameters (limit, offset, cursor) visible in schemas.