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 startSSE模式
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。
______________________________________________________________________
