Malloy MCP Server

Malloy MCP Server

site icon
2025.03.31 2
PythonMalloy 查询执行Malloy 资源管理开发效率数据库
Malloy MCP Server 是一个用于执行 Malloy 查询和管理 Malloy 资源的 MCP 服务器实现。它提供了执行 Malloy 查询、访问项目、包和模型元数据的能力,并具备健壮的错误处理和全面的测试覆盖。
View on GitHub

Overview

基本能力

产品定位

Malloy MCP Server 是一个用于执行 Malloy 查询和管理 Malloy 资源的 MCP 服务器实现。

核心功能

  • 通过 MCP 执行 Malloy 查询
  • 访问 Malloy 项目、包和模型元数据
  • 健壮的错误处理,提供详细的上下文信息
  • 全面的测试覆盖
  • 类型安全的实现

适用场景

  • 需要执行 Malloy 查询的应用
  • 需要管理 Malloy 资源的系统
  • 需要健壮错误处理和详细上下文的开发环境

工具列表

  • ExecuteMalloyQueryTool: 用于执行 Malloy 查询的工具

常见问题解答

  • 错误处理: 使用 QueryExecutionError 捕获查询执行错误,并获取详细的错误信息和上下文

使用教程

使用依赖

无特殊依赖,直接安装即可。

安装教程

# 使用 uv 安装(推荐)
uv pip install malloy-mcp-server

# 或使用 pip 安装
pip install malloy-mcp-server

启动服务器

from malloy_mcp_server import mcp

# 运行服务器
if __name__ == "__main__":
    mcp.serve()

配置

服务器可以通过环境变量进行配置:

变量 描述 默认值
MALLOY_PUBLISHER_ROOT_URL Malloy Publisher API 的 URL http://localhost:4000

示例:

# 设置 publisher URL
export MALLOY_PUBLISHER_ROOT_URL="http://malloy-publisher:4000"

# 使用自定义配置运行
python -m malloy_mcp_server

执行查询

from malloy_mcp_server import ExecuteMalloyQueryTool

# 示例查询执行
result = await ExecuteMalloyQueryTool(
    query="select * from users",
    model_path="my_package/users"
)

调试方式

  • 运行测试:
# 运行所有测试
pytest

# 运行带覆盖率的测试
pytest --cov=malloy_mcp_server
  • 代码质量检查:
black .
mypy .
ruff check .

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。