Materialize Mcp Server

Materialize Mcp Server

🚀 材料化 MCP 服务器

材料化 MCP 服务器能够通过模型上下文协议 (MCP),将你的 Materialize 索引视图转换为完全类型化、可调用的工具。你只需创建 SQL 视图并对其进行索引,就能定义稳定、版本化且安全的数据工具,无需编写额外代码。

🚀 快速开始

以默认设置运行服务器:

uv 运行 materialize-mcp

📦 安装指南

该包可以本地安装。我们推荐使用 uv 作为构建工具。

git clone https://github.com/MaterializeInc/materialize-mcp-server
cd materialize-mcp-server
uv 运行 materialize-mcp-server

🔧 技术细节

为什么不是 execute_sql

许多数据库 MCP 服务器提供一个单一的 execute_sql 工具。它非常适合快速原型开发,但在生产环境中较为脆弱。由 LLM 和代理生成的 SQL 查询可能会引入性能瓶颈、不可预测的成本和不一致的结果。

通过转向 操作数据产品,我们消除了变异性,并确保每个工具具备以下特性:

  • 稳定:定义一次,重复使用,确保一致的业务逻辑。
  • 类型化:输入和输出模式源自索引。
  • 可观测:按工具记录使用情况,使成本和性能显式化。
  • 安全:如果你没有创建视图/索引,则无法调用。

📚 详细文档

配置

参数 环境变量 默认值 描述
--mz-dsn MZ_DSN postgresql://materialize@localhost:6875/materialize Materialize 数据源名称(DSN)
--transport MCP_TRANSPORT stdio 通信传输(stdiosse
--host MCP_HOST 0.0.0.0 服务器主机
--port MCP_PORT 3001 服务器端口
--pool-min-size MCP_POOL_MIN_SIZE 1 连接池最小大小
--pool-max-size MCP_POOL_MAX_SIZE 10 连接池最大大小
--log-level MCP_LOG_LEVEL INFO 日志级别

定义工具

  1. 编写一个视图 来表达你的业务逻辑。
  2. 索引 你要查询的列。
  3. 注释 视图以提高可发现性。
CREATE VIEW order_status_summary AS
SELECT  o.order_id,
o.status,
s.carrier,
c.estimated_delivery,
e.delay_reason
FROM orders o
LEFT JOIN shipments           s ON o.order_id = s.order_id
LEFT JOIN carrier_tracking    c ON s.shipment_id = c.shipment_id
LEFT JOIN delivery_exceptions e ON c.tracking_id = e.tracking_id;

CREATE INDEX ON order_status_summary (order_id);

COMMENT ON order_status_summary IS '查找给定订单的状态、运输和交付信息。';

刷新服务器后,工具现在出现在 tools/list 中:

{
"name": "order_status_summary",
"description": "查找给定订单的状态、运输和交付信息。",
"inputSchema": {
"type": "object",
"required": ["order_id"],
"properties": {
"order_id": { "type": "text" }
}
}
}
  • 0 关注
  • 0 收藏,12 浏览
  • system 提出于 2025-09-24 04:12

相似服务问题

相关AI产品