关于 MANNA
MANNA 是面向 LLM 客户端的天文档案 MCP 服务,适合通过 IVOA 接口查询天文数据的研究人员。它提供档案说明和多步工作流,并将大型 TAP 结果交由异步任务处理。
主要功能
- 01执行 TAP/ADQL 查询
- 02搜索图像和目录源
- 03解析天体名称并查询档案注册表
- 04提供多步档案查询工作流
- 05附带档案特定说明及核验
- 06大型 TAP 结果异步处理
适用场景
- 01按位置搜索天文图像或目录源
- 02查询 IVOA 档案中的天文数据
- 03依据档案特定字段提示撰写 ADQL
- 04通过结果 URL 获取大型查询结果
MCP 相关
MANNA 通过 MCP 向 LLM 客户端开放 IVOA 档案接口,包括 TAP/ADQL、SIA、锥形搜索、注册表查询和名称解析。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx manna-mcpMANNA_ARCHIVESComma-separated archive short_names to activate (e.g. 'datalab,alma'). Unset means all.MANNA_ALLOWED_HOSTSComma-separated hostnames the server may fetch. Unset means any public host.MANNA_LOG_LEVELLogging verbosity.MANNA_INLINE_ROW_LIMITMax rows returned inline before a result is promoted to an async job or truncated.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
15收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| waveband | any | 否 | 可选。仅返回此波段中的档案库(不区分大小写),例如 'radio'、'optical'、'millimeter'。可与 short_name 组合使用(两者都必须匹配)。 |
| short_name | any | 否 | 可选。仅返回 short_name 与此值匹配的档案库(不区分大小写),例如 'alma'。如果已知所需档案库,请使用此参数——它只返回单个条目,而不是完整列表,从而节省上下文。未知名称会返回空列表(count: 0)。 |
详细介绍
MANNA
MANNA(MCP Architecture for NOIRLab, NRAO, and additional Archives)是一个 MCP 服务,可让 Claude Code、Claude Desktop 和 Jupyter AI 等大模型客户端通过标准 IVOA 接口访问天文档案:TAP/ADQL、SIA 图像搜索、锥形搜索、 IVOA 注册表和 Sesame 名称解析。它内置了针对 NOIRLab Astro Data Lab、ALMA、CADC、ESO、Gaia 和 SDSS 整理的说明,也可访问 IVOA 注册表中列出的任何档案。
它的工具分为四组:
- 连接直接调用 IVOA 接口:解析目标名称、运行 ADQL 查询、按位置搜索图像或星表源,以及搜索注册表。
- 工作流工具通过一次调用完成多步任务:解析目标、选择档案、执行搜索或计数。
- 结果处理以内联形式返回少量结果。大型 TAP 结果会变成异步作业,客户端会收到结果 URL 和用于 获取结果的 pyvo 代码片段。服务端不会在请求之间保留任何内容。
- 档案说明记录各档案的特殊情况(缺失的列、枚举值、空间索引提示),以便模型在编写 ADQL 前查看。 每条说明都附有用于重新验证的检查。
完整文档(包括每个工具的参考说明)请见 https://manna.readthedocs.io。
安装
需要 Python 3.12 或更高版本。PyPI 发行包名为 manna-mcp;导入包和命令的名称均为 manna。
uvx manna-mcp --stdio # run without installing: MCP over stdio
pip install manna-mcp # or install it; `manna` then serves HTTP on :8000
首次启动时会下载 astropy 和 pyvo,这需要一些时间。在将其添加到启动超时较短的客户端之前,请先在终端中运行一次
uvx manna-mcp --stdio。
Docker 镜像和 MCP Registry 条目详见 安装。
连接客户端
Claude Code:
claude mcp add manna -- uvx manna-mcp --stdio
Claude Desktop 或任何使用 JSON 配置的客户端:
{"mcpServers": {"manna": {"command": "uvx", "args": ["manna-mcp", "--stdio"]}}}
对于共享 HTTP 服务或 Jupyter AI,请运行 manna,并将客户端指向
http://localhost:8000/mcp/。
指南: Claude Code、 Claude Desktop、 Jupyter AI、 首次查询。
配置
所有设置均为可选,可从 MANNA_* 环境变量或 .env 文件中读取。最常更改的两项设置:
MANNA_ARCHIVES=datalab,alma用于限制启用整理说明的档案。未设置时,所有档案均会启用,但nrao除外;只有在此处指定后才会启用。MANNA_INLINE_ROW_LIMIT=2000和MANNA_INLINE_BYTE_LIMIT=262144会提高内联结果上限,从适合小模型的默认值调整为适合 Claude 等拥有较大上下文窗口的模型的值。
所有设置均列于 配置指南。 添加或移除档案的说明请见 档案指南。
开发
git clone https://github.com/NSF-Simons-CosmicAI-Institute/manna
cd manna
uv sync
uv run pytest --record-mode=none # offline replay of recorded archive traffic
uv run python -m manna # server on http://localhost:8000
功能分支从 dev 创建,并通过拉取请求合并回去。测试、代码检查、录制的 cassette、文档构建和发行流程详见
贡献指南。
License
MIT. Developed by the NSF-Simons CosmicAI Institute.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。