天文查询MCP服务器

一个为astroquery-cli提供的模型上下文协议(MCP)服务器,支持HTTP和SSE传输选项,提供对17+个天文数据库的直接访问。

  • by inoribea
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 inoribea/aqc-mcp

使用说明

Astroquery MCP服务器🚀

用于astroquery cli的模型上下文协议(MCP)服务器,提供HTTP和SSE(服务器发送事件)传输选项。


概述✨

aqc-mcp服务器提供对17+天文数据库的直接HTTP/TAP API访问,作为mcp工具,允许AI应用程序和其他服务通过标准化的mcp协议查询天文数据。支持HTTP和SSE传输。


特性🌟

  • ⚡ MCP协议:全面实施MCP规范
  • 🌐 多个传输:
    • HTTP(默认)
    • SSE(服务器发送事件)
    • Stdio(适用于克劳德桌面)
  • 🔌 17数据库:直接TAP/REST API访问主要天文档案
  • 🌍 语言支持:多语言输出(英语、中文)
  • 📊 丰富的输出:格式化表格和结构化结果
  • 🔑 ADS API代币支持:用于身份验证查询的环境变量注入
  • ⚡ 不需要Python:纯Node.js/TypeScript实现

支持的模块🧩

目前实施的工具(17个天文数据库):

普通天文学

  • 辛巴达:查询SIMBAD天文数据库
  • 维齐:查询VizieR目录数据库
  • 国家经济数据库:NASA/IPAC河外数据库
  • 自动依赖监视系统:NASA天体物理数据系统查询(需要API令牌)

无线电和毫米

  • 阿塔卡马大型毫米波:查询ALMA观测档案
  • 欧洲南方天文台:欧洲南方天文台科学档案

高能X射线

  • 费米LAT:费米大面积望远镜伽马射线源目录
  • HEASARC:高能天体物理学科学档案(多个任务)

红外和亚毫米

  • 利率敏感性资产:NASA/IPAC红外科学档案

空间观测站

  • 桅杆:芭芭拉A.米库尔斯基太空望远镜档案
  • ESASK:多任务全天空档案

太阳系

  • 喷气推进实验室视野:太阳系天体星历表和状态矢量
  • JPL SBDB:小行星和彗星小天体数据库

系外行星和恒星

  • 外行星:美国国家航空航天局系外行星档案
  • 美国变星观测者协会:可变星索引(VSX目录)
  • 美国国家标准与技术研究院:谱线原子光谱数据库

光学测量

  • 盖亚:Gaia DR3目录锥搜索和ADQL查询
  • 斯隆数字巡天:斯隆数字巡天(DR18)
  • 精彩对话:谱线数据库

总计:17个数据库,30+个工具


安装🛠️

快速开始

先决条件:

  • Node.js≥18.0.0

不需要Python依赖 -aqc-mcp使用直接的HTTP/TAP API来提供天文服务。

MCP服务器配置

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "aqc-mcp": {
      "command": "npx",
      "args": ["-y", "aqc-mcp"],
      "env": {
        "ADS_API_KEY": "your-ads-api-token-here"
      }
    }
  }
}

没有ADS代币:

{
  "mcpServers": {
    "aqc-mcp": {
      "command": "npx",
      "args": ["-y", "aqc-mcp"]
    }
  }
}

替代方案:全局安装

npm install -g aqc-mcp

然后在config中使用:

{
  "mcpServers": {
    "aqc-mcp": {
      "command": "aqc-mcp"
    }
  }
}

用法🚀

1.启动服务器

HTTP模式(默认)

npm start
# or
npm run dev

服务器将于启动 http://localhost:3000

使用ADS API代币

ADS_API_KEY="your-token" npm start

自定义端口

PORT=8080 npm start

SSE模式

MCP_TRANSPORT=http npm start

标准模式(适用于克劳德桌面)

MCP_TRANSPORT=stdio npm run dev

2.API终点

健康检查

curl http://localhost:3000/health

察看连接信息

curl http://localhost:3000/

SSE连接

curl http://localhost:3000/sse

MCP工具🔧

simbad_query

查询SIMBAD天文数据库。

参数:

  • object_name (字符串,必填):对象名称(例如,“M31”、“NGC 1234”)
  • lang (字符串,可选):输出语言(“en”、“zh”、“ja”)

例子:

{
  "name": "simbad_query",
  "arguments": {
    "object_name": "M31",
    "lang": "en"
  }
}

vizierquery

查询VizieR目录数据库。

参数:

  • target (字符串,必填):目标名称或坐标
  • radius (字符串,必填):搜索半径(例如,“10arcsec”,“0.5deg”)
  • catalog (字符串,可选):特定目录名称
  • lang (字符串,可选):输出语言

例子:

{
  "name": "vizier_query",
  "arguments": {
    "target": "M31",
    "radius": "10arcsec",
    "catalog": "I/345/gaia2"
  }
}

alma_query

查询ALMA观测档案。

参数:

  • object_name (字符串,必填):对象名称
  • lang (字符串,可选):输出语言

例子:

{
  "name": "alma_query",
  "arguments": {
    "object_name": "Orion KL"
  }
}

ads_query

查询美国国家航空航天局天体物理学数据系统。

参数:

  • query (string,可选):搜索查询字符串
  • latest (boolean,可选):获取最新论文
  • review (布尔值,可选):仅获取评论文章
  • lang (字符串,可选):输出语言

要求:

  • 集 ADS_API_KEY 启动服务器前的环境变量

例子:

{
  "name": "ads_query",
  "arguments": {
    "latest": true,
    "lang": "en"
  }
}

gaia_conesearch

通过锥形搜索查询盖亚档案。

参数:

  • target (字符串,必填):目标名称或坐标
  • radius (字符串,可选):搜索半径(默认值:“10arcsec”)
  • lang (字符串,可选):输出语言

例子:

{
  "name": "gaia_cone_search",
  "arguments": {
    "target": "M31",
    "radius": "1arcmin"
  }
}

HTTP API示例📡

调用单个工具

curl -X POST http://localhost:3000/tools/call \
  -H "Content-Type: application/json" \
  -d '{
    "name": "simbad_query",
    "arguments": {
      "object_name": "M31"
    }
  }'

批量调用多个工具

curl -X POST http://localhost:3000/tools/batch \
  -H "Content-Type: application/json" \
  -d '{
    "tools": [
      {
        "name": "simbad_query",
        "arguments": {"object_name": "M31"}
      },
      {
        "name": "gaia_cone_search",
        "arguments": {"target": "M31", "radius": "10arcsec"}
      }
    ]
  }'

Claude桌面集成🖥️

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "astroquery": {
      "command": "node",
      "args": ["/path/to/astroquery-cli/astroquery-mcp/dist/index.js"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "ADS_API_KEY": "your-ads-api-token-here"
      }
    }
  }
}

发展🔨

监视模式

npm run watch

项目结构

aqc-mcp/
├── src/
│   ├── index.ts           # Main server entry
│   ├── tools/             # MCP tool definitions (17 databases)
│   │   ├── index.ts       # Tool registration
│   │   ├── simbad.ts      # SIMBAD queries
│   │   ├── vizier.ts      # VizieR catalog queries
│   │   ├── alma.ts        # ALMA archive queries
│   │   ├── ads.ts         # ADS bibliographic queries
│   │   ├── gaia.ts        # Gaia DR3 queries
│   │   ├── aavso.ts       # AAVSO VSX variable stars
│   │   ├── fermi.ts       # Fermi LAT gamma-ray sources
│   │   ├── heasarc.ts     # HEASARC queries
│   │   ├── esasky.ts      # ESASky multi-mission archive
│   │   ├── eso.ts         # ESO science archive
│   │   ├── exoplanet.ts   # NASA Exoplanet Archive
│   │   ├── irsa.ts        # IRSA infrared archive
│   │   ├── jpl.ts         # JPL Horizons & SBDB
│   │   ├── mast.ts        # MAST space telescopes
│   │   ├── ned.ts         # NED extragalactic DB
│   │   ├── nist.ts        # NIST atomic spectra
│   │   ├── sdss.ts        # SDSS optical survey
│   │   └── splatalogue.ts # Spectral line database
│   └── utils/
│       └── http.ts        # HTTP/TAP client utilities
├── dist/                  # Compiled JavaScript
├── package.json
└── tsconfig.json

环境变量🔧

变量 描述 默认值 必填
MCP_TRANSPORT 运输方式(http, stdio) stdio 没有
PORT HTTP服务器端口 3000 没有
ADS_API_KEY NASA ADS API令牌 - 用于ADS查询

故障排除🔍

ADS查询失败

设置 ADS_API_KEY 环境变量:

export ADS_API_KEY="your-token"
npm start

端口已在使用中

更改端口:

PORT=8080 npm start

查询超时

一些天文数据库(如费米LAT、HEASARC)可能需要更长的时间才能响应。服务器使用合理的超时值,但如果需要,您可以通过修改 timeout HTTP客户端中的参数。


许可证📄

BSD-3条款


贡献🤝

欢迎投稿!请打开问题或PR。


链接🔗