天文图像拼接工作流服务器

Montage MCP Server 是一个基于模型上下文协议(MCP)的服务,用于生成天文图像拼接工作流,支持通过自然语言在Claude Desktop中创建复杂的天文数据处理工作流。

  • by hyperflow-wms
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hyperflow-wms/montage-mcp-server

使用说明

蒙太奇MCP服务器

MCP(模型上下文协议)服务器,使用 蒙太奇工具包.在Claude Desktop中使用自然语言创建处理天文测量数据的复杂工作流程。

版本: 1.2.0

特性

  • 自然语言接口:使用Claude Desktop中的对话命令生成工作流
  • 对象名称解析:使用天体名称(M31、NGC 7293)而不是坐标
  • 多重调查支持:2MASS(近红外)、DSS(光学)、SDSS(多波段光学)
  • 多种输出格式:以YAML(传统)、WfCommons WfFormat(JSON)、HyperFlow(JSON)或所有格式同时生成工作流
  • 统一工作流生成:默认模式在具有共享元数据的单个目录中生成HyperFlow和WfFormat
  • 大型工作流支持:通过基于文件的输出和卷装载处理大于1MB的工作流
  • 完整蒙太奇v6.0:所有70多个蒙太奇二进制文件都已编译并准备就绪

快速开始

1.使用Docker运行(推荐)

# Pull the pre-built image (once available)
docker pull hyperflowwms/montage-mcp-server:latest

# Or build locally
docker build -t montage-mcp-server:latest .

2.配置克劳德桌面

添加到您的 claude_desktop_config.json:

Linux/Mac:

{
  "mcpServers": {
    "montage-workflow": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "/path/to/workflows:/workflows",
        "montage-mcp-server:latest"
      ]
    }
  }
}

Windows(WSL):

{
  "mcpServers": {
    "montage-workflow": {
      "command": "wsl.exe",
      "args": [
        "-e", "docker", "run", "--rm", "-i",
        "-v", "/home/username/montage-workflows:/workflows",
        "montage-mcp-server:latest"
      ]
    }
  }
}

替换 /path/to/workflows 使用您所需的工作流输出目录。

3.重新启动克劳德桌面

4.使用自然语言

"Generate a Montage workflow for the Orion Nebula using 2MASS J, H, K bands"
"Create a 0.5 degree mosaic of M31 in HyperFlow format"
"What astronomical surveys are supported?"

MCP工具

generate_montage_workflow

生成完整的蒙太奇工作流程。

参数:

  • center (必填):对象名称(“M31”)或坐标(“10.68 41.27”)
  • degrees (必填):马赛克尺寸(0.1至10度)
  • bands (必填):调查带阵列(例如。, ["2mass:j:red"])
  • output_format (可选):“两者”(默认-生成HyperFlow+WfFormat)、“yaml”(传统)、“WfFormat”(WfCommons)或“HyperFlow”
  • workflow_name (可选):自定义工作流名称

退货: 包含文件位置和统计信息的工作流摘要

输出格式:

  • 两者 (默认):生成两者 workflow.json (HyperFlow)和 workflow-wfformat.json (WfCommons)在一个目录中
  • 超流:HyperFlow JSON格式(workflow.json)
  • wfformat:WfCommons WfFormat JSON(workflow-wfformat.json)
  • YAML:传统的YAML格式(workflow.yml)

list_supported_surveys

列出所有可用的天文测量及其波段。

validate_workflow

验证工作流YAML结构。

analyze_workflow

生成有关工作流的统计信息。

compile_to_hyperflow

将YAML工作流转换为HyperFlow JSON格式。

支持的调查

2MASS(2微米全天巡天)

覆盖整个天空的近红外测量。

  • 乐队: j (1.25μm), h (1.65μm), k (2.17微米)
  • 示例: 2mass:j:red

数字化巡天

用照相底片进行光学巡天。

  • 乐队: DSS2B (蓝色), DSS2R (红色), DSS2IR (红外线)
  • 示例: dss:DSS2R:red

斯隆数字巡天

现代多波段光学测量。

  • 乐队: u, g, r, i, z
  • 示例: sdss:g:green

颜色映射

第三个组件映射到RGB通道:

  • :red → 红色通道
  • :green → 绿色通道
  • :blue → 蓝色通道

RGB工作流程示例:

{
  "center": "M17",
  "degrees": 0.5,
  "bands": ["2mass:j:blue", "2mass:h:green", "2mass:k:red"]
}

建筑

组件

  1. MCP服务器 (mcp-server/server.py)-基于FastMCP的服务器,实现mcp协议
  2. 工作流生成器 (蒙太奇工作流yaml.py)-创建与WMS无关的yaml工作流
  3. HyperFlow编译器 (yaml2hyperflow.py)-将YAML转换为HyperFlow JSON
  4. 验证器 -validate-workflow.py,工作流状态.py

工作流输出

大型工作流(>1MB)保存到 /workflows 目录:

格式: {object}_{size}deg_{timestamp}.{ext}

例子: M31_0.5deg_20251026_143022.json

发展

本地设置

git clone https://github.com/hyperflow-wms/montage-mcp-server.git
cd montage-mcp-server
docker build -t montage-mcp-server:latest .
python3 tests/test_mcp_server.py

项目结构

montage-mcp-server/
├── Dockerfile                   # Container definition
├── README.md                    # This file
├── montage-workflow-yaml.py     # Workflow generator
├── yaml2hyperflow.py            # HyperFlow compiler
├── validate-workflow.py         # Validator
├── workflow-stats.py            # Analyzer
├── example-*.sh                 # Usage examples
├── mcp-server/
│   ├── server.py                # MCP server
│   └── requirements.txt         # Dependencies
└── tests/
    └── test_mcp_server.py       # Tests

故障排除

“生成工作流时出错”,没有详细信息

原因:网络问题或坐标无效
解决方案:验证对象名称,检查网络,尝试显式坐标

“未找到图像”

原因:调查未覆盖该地区
解决方案:尝试2MASS(最佳覆盖),减小区域大小

卷装载不工作(Windows)

原因:路径格式或WSL问题
解决方案:使用WSL路径(/home/user/workflows),在Docker桌面中启用WSL集成

大型工作流超时

原因:复杂的工作流程需要时间
解决方案:从小角度(0.2-0.5度)开始,最初使用单波段

演出

区域 波段 任务 时间 大小
0.1° 1 10-20 5-10s 10-20KB
0.2° 1 30-50 10-20s 30-50KB
0.5° 1 100-200 30-60s 100-200KB
0.5° 3 300-600 1-2分钟 300-600 KB
1.0° 3 1000-2000 2-5min 1-2MB

资源:图像~920 MB,建议使用1 GB内存

测试

快速测试

# Test workflow generation in all formats
cd tests/integration
./test-all-formats.sh

# Run a generated workflow
./run-workflow.sh ../../test-output/M17_0.2deg_YYYYMMDD_HHMMSS

测试用例

测试用例 描述 时间 目的
small-1band M17,0.2°,1波段 ~6min 快速验证
medium-3band M17,0.2°,3个波段 ~17min 全功能测试
large-3band NGC 7293,0.5°,3个波段 ~50min 应力测试

看 测试/集成/README.md 获取详细的测试文档。

贡献

欢迎投稿!分叉,创建特征分支,添加测试,提交PR。

测试要求:所有PR应包括测试并通过 ./tests/integration/test-all-formats.sh

许可证

MIT许可证-请参阅许可证文件

鸣谢

  • 蒙太奇: http://montage.ipac.caltech.edu
  • MCP协议: https://modelcontextprotocol.io
  • HyperFlow: https://github.com/hyperflow-wms
  • 占星术: https://www.astropy.org

引用

@software{montage_mcp_server,
  title = {Montage MCP Server},
  author = {HyperFlow WMS Team},
  year = {2025},
  url = {https://github.com/hyperflow-wms/montage-mcp-server}
}

支持

  • 问题: https://github.com/hyperflow-wms/montage-mcp-server/issues
  • 讨论: https://github.com/hyperflow-wms/montage-mcp-server/discussions
  • HyperFlow: https://hyperflow-wms.github.io