mcpField
M
MANNA

MANNA

本地服务
github.com/NSF-Simons-CosmicAI-Institute科研与教育46 天前更新

关于 MANNA

MANNA 是面向 LLM 客户端的天文档案 MCP 服务,适合通过 IVOA 接口查询天文数据的研究人员。它提供档案说明和多步工作流,并将大型 TAP 结果交由异步任务处理。

主要功能

  1. 01执行 TAP/ADQL 查询
  2. 02搜索图像和目录源
  3. 03解析天体名称并查询档案注册表
  4. 04提供多步档案查询工作流
  5. 05附带档案特定说明及核验
  6. 06大型 TAP 结果异步处理

适用场景

  1. 01按位置搜索天文图像或目录源
  2. 02查询 IVOA 档案中的天文数据
  3. 03依据档案特定字段提示撰写 ADQL
  4. 04通过结果 URL 获取大型查询结果

MCP 相关

MANNA 通过 MCP 向 LLM 客户端开放 IVOA 档案接口,包括 TAP/ADQL、SIA、锥形搜索、注册表查询和名称解析。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nsf-simons-cosmicai-institute-manna": {
"command": "uvx",
"args": [
"manna-mcp"
],
"env": {
"MANNA_ARCHIVES": "<MANNA_ARCHIVES>",
"MANNA_ALLOWED_HOSTS": "<MANNA_ALLOWED_HOSTS>",
"MANNA_LOG_LEVEL": "<MANNA_LOG_LEVEL>",
"MANNA_INLINE_ROW_LIMIT": "<MANNA_INLINE_ROW_LIMIT>"
}
}
}
}
启动命令uvx manna-mcp
需要配置的环境变量
MANNA_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimanna-mcp0.11.0

工具

15

收录的工具列表 · 更新于 2 周前

参数类型必填说明
wavebandany否可选。仅返回此波段中的档案库(不区分大小写),例如 'radio'、'optical'、'millimeter'。可与 short_name 组合使用(两者都必须匹配)。
short_nameany否可选。仅返回 short_name 与此值匹配的档案库(不区分大小写),例如 'alma'。如果已知所需档案库,请使用此参数——它只返回单个条目,而不是完整列表,从而节省上下文。未知名称会返回空列表(count: 0)。

详细介绍

MANNA

PyPI Documentation CI License: MIT

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.

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。