关于 Malloy MCP Server
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Malloy MCP 服务
用于执行 Malloy 查询和管理 Malloy 资源的 MCP 服务实现。
功能
- 通过 MCP 执行 Malloy 查询
- 访问 Malloy 项目、包和模型元数据
- 提供稳健的错误处理和详细上下文
- 全面的测试覆盖
- 类型安全的实现
安装
# Install using uv (recommended)
uv pip install malloy-mcp-server
# Or using pip
pip install malloy-mcp-server
使用方法
启动服务
from malloy_mcp_server import mcp
# Run the server
if __name__ == "__main__":
mcp.serve()
配置
可以使用环境变量配置服务:
| 变量 | 描述 | 默认值 |
|---|---|---|
MALLOY_PUBLISHER_ROOT_URL | Malloy Publisher API 的 URL | http://localhost:4000 |
示例:
# Set the publisher URL
export MALLOY_PUBLISHER_ROOT_URL="http://malloy-publisher:4000"
# Run with custom configuration
python -m malloy_mcp_server
执行查询
服务提供了用于执行 Malloy 查询的 MCP 工具:
from malloy_mcp_server import ExecuteMalloyQueryTool
# Example query execution
result = await ExecuteMalloyQueryTool(
query="select * from users",
model_path="my_package/users"
)
访问资源
服务提供以下资源端点:
malloy://project/home/metadata- 项目元数据malloy://project/home/package/{package_name}- 包元数据malloy://project/home/model/{model_path}- 模型元数据
开发
设置
- 克隆仓库:
git clone https://github.com/namabile/malloy-mcp-server.git
cd malloy-mcp-server
- 安装依赖:
uv pip install -e ".[dev]"
运行测试
# Run all tests
pytest
# Run with coverage
pytest --cov=malloy_mcp_server
代码质量
项目使用:
black进行代码格式化mypy进行类型检查ruff进行代码检查
运行质量检查:
black .
mypy .
ruff check .
错误处理
服务提供带上下文的详细错误处理:
from malloy_mcp_server.errors import QueryExecutionError
try:
result = await ExecuteMalloyQueryTool(...)
except QueryExecutionError as e:
print(f"Error: {e.message}")
print("Context:", e.context)
架构
服务基于以下组件构建:
- FastMCP,用于实现 MCP 服务
- Malloy Publisher Client,用于与 Malloy 交互
- Pydantic,用于数据验证
主要组件:
server.py- 核心服务实现tools/query_executor.py- 查询执行工具errors.py- 错误处理实用工具
贡献
- Fork 仓库
- 创建功能分支
- 进行更改
- 为新功能添加测试
- 提交拉取请求
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。