Token导航 LogoToken导航TokenDH.com
Nasa Images MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Nasa Images MCP Server

MCP Server

@kaitoy/nasa-images-mcp-server

一个通过MCP服务器搜索NASA图像库并在交互式UI中展示图像的项目。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
会话管理TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kaitoy

提供方

kaitoy

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @kaitoy/nasa-images-mcp-server --stdio

详细介绍

NASA图像MCP服务器

使用MCP服务器搜索NASA图像库并在交互式UI中显示图像的项目。

🌟 特征:

  • 双重运输支持:支持stdio和流式HTTP传输
  • 图像搜索:使用NASA的Images API按关键字搜索
  • 交互式用户界面:使用MCP应用程序模式的美丽图像查看器
  • 图像导航:按顺序显示搜索结果
  • 会话管理:状态会话管理

screenshot

需求

  • Node.js 18或更高版本
  • npm或纱线
  • NASA API密钥(免费获取 Nasebov/api)

安装

  1. 克隆存储库:
cd nasa-images-mcp-server
  1. 安装依赖项:
npm install
  1. 设置环境变量:
cp .env.example .env

编辑 .env 文件以配置您的NASA API密钥:

NASA_API_KEY=your_api_key_here
PORT=3000
  1. 构建:
npm run build

获取NASA API密钥

  1. 访问 https://api.nasa.gov/
  2. 在表格中输入您的姓名和电子邮件地址
  3. API密钥将立即发送到您的电子邮件
  4. 将其添加到您的 .env 文件

费率限制:

  • DEMO_KEY:30个请求/小时,50个请求/天
  • 注册密钥:1000个请求/小时

用法

stdio模式(建议用于Claude Desktop等MCP客户端)

在stdio模式下,服务器通过stdin/stdout进行通信——没有启动HTTP服务器。日志被写入stderr。

使用npx运行(无需安装)

npx @kaitoy/nasa-images-mcp-server --stdio

从本地构建运行

通过 --stdio 使用stdio传输的标志:

node build/index.js --stdio

Claude桌面配置

使用npx (推荐):

{
  "mcpServers": {
    "nasa-images": {
      "command": "npx",
      "args": ["-y", "@kaitoy/nasa-images-mcp-server", "--stdio"],
      "env": {
        "NASA_API_KEY": "your_api_key_here"
      }
    }
  }
}

使用本地构建:

{
  "mcpServers": {
    "nasa-images": {
      "command": "node",
      "args": ["/path/to/nasa-images-mcp-server/build/index.js", "--stdio"],
      "env": {
        "NASA_API_KEY": "your_api_key_here"
      }
    }
  }
}

HTTP服务器模式

npm start

服务器将在以下时间启动 http://localhost:3000.

从其他端口开始

PORT=3001 npm start

关于交通

stdio运输

适用于作为子进程启动服务器的本地MCP客户端(例如Claude Desktop)。

  • 通过stdin/stdout进行通信
  • 每个进程一个会话
  • 无需网络配置

可流式HTTP传输

最新的MCP HTTP传输协议,适用于远程或多客户端场景。

主要特点:

  • 有意义的会议:为每个客户端颁发唯一的会话ID
  • SSE支持:支持通过服务器发送事件从服务器推送通知
  • 基于HTTP的JSON-RPC:通过标准HTTP请求/响应进行通信
  • 会话管理:自动会话生命周期管理

与MCP客户端集成

与MCP检查器连接(HTTP模式)

您可以使用以下命令测试服务器 MCP检查员:

npx @modelcontextprotocol/inspector http://localhost:3000/mcp

与MCP检查器连接(stdio模式)

npx @modelcontextprotocol/inspector node /path/to/nasa-images-mcp-server/build/index.js --stdio

与自定义MCP客户端一起使用

从自定义客户端连接的步骤:

  1. 初始化请求 (POST/mcp):
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": {
        "name": "my-client",
        "version": "1.0.0"
      }
    }
  }'

响应标头将包括 mcp-session-id.

  1. 后续请求:
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "mcp-session-id: " \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list"
  }'
  1. SSE流 (GET/mcp):
curl -X GET "http://localhost:3000/mcp" \
  -H "mcp-session-id: " \
  -H "Accept: text/event-stream"

端点

端点方法描述
/GET服务器信息和端点列表
/healthGET健康检查(包括活动会话计数)
/mcpPOSTJSON-RPC请求(初始化、工具调用等)
/mcpGETSSE流(用于服务器通知)
/mcpDELETE关闭会话

可用工具

1. search_nasa_images

搜索美国国家航空航天局的图像库。

参数:

  • query (字符串,必填):搜索查询(例如,“阿波罗11号”、“火星漫游者”)

使用示例(JSON-RPC):

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "search_nasa_images",
    "arguments": {
      "query": "apollo 11 moon landing"
    }
  }
}

2. get_next_image

显示当前搜索结果中的下一个图像。

参数:

使用示例(JSON-RPC):

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "get_next_image",
    "arguments": {}
  }
}

可用资源

nasa-image://current

获取当前显示图像的URL。

MIME类型: text/uri-list

ui://nasa-images/viewer

图像查看器的HTML UI资源。

MIME类型: text/html;profile=mcp-app

建筑

stdio模式

┌─────────────────────────────────────────────┐
│     MCP Client (Claude Desktop, etc.)       │
│                   ↕ stdin/stdout            │
└───────────────────┼─────────────────────────┘
                    │
┌───────────────────┼─────────────────────────┐
│  NASA Images MCP Server                     │
│  ┌────────────────┴──────────────────────┐  │
│  │  StdioServerTransport                 │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  McpServer (MCP Apps Pattern)         │  │
│  │  - registerAppTool(search_nasa...)    │  │
│  │  - registerAppTool(get_next_image)    │  │
│  │  - registerAppResource(viewer UI)     │  │
│  │  - registerResource(image URL)        │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  Session Manager                      │  │
│  │  - Manage search state per user       │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  NASA API Client                      │  │
│  │  - Image search                       │  │
│  │  - Image URL retrieval                │  │
│  └───────────────────────────────────────┘  │
└───────────────────┼─────────────────────────┘
                    │ HTTPS
┌───────────────────┼─────────────────────────┐
│         NASA Images API                     │
│  https://images-api.nasa.gov/search         │
└─────────────────────────────────────────────┘

HTTP模式

┌─────────────────────────────────────────────┐
│     MCP Client (Inspector, Custom App)      │
│                                             │
│  ┌────────────────────────────────────────┐ │
│  │  HTTP Client                           │ │
│  │  - POST /mcp (JSON-RPC requests)       │ │
│  │  - GET /mcp (SSE stream)               │ │
│  └────────────────────────────────────────┘ │
│                   ↕                         │
└───────────────────┼─────────────────────────┘
                    │ HTTP/SSE
┌───────────────────┼─────────────────────────┐
│  NASA Images MCP Server (Express)           │
│  ┌────────────────┴──────────────────────┐  │
│  │  StreamableHTTPServerTransport        │  │
│  │  - Session management                 │  │
│  │  - JSON-RPC over HTTP                 │  │
│  │  - SSE for notifications              │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  McpServer (MCP Apps Pattern)         │  │
│  │  - registerAppTool(search_nasa...)    │  │
│  │  - registerAppTool(get_next_image)    │  │
│  │  - registerAppResource(viewer UI)     │  │
│  │  - registerResource(image URL)        │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  Session Manager                      │  │
│  │  - Manage search state per user       │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  NASA API Client                      │  │
│  │  - Image search                       │  │
│  │  - Image URL retrieval                │  │
│  └───────────────────────────────────────┘  │
└───────────────────┼─────────────────────────┘
                    │ HTTPS
┌───────────────────┼─────────────────────────┐
│         NASA Images API                     │
│  https://images-api.nasa.gov/search         │
└─────────────────────────────────────────────┘

主要组件

  • src/index.ts:快递服务器和运输管理
  • src/mcp-server.ts:MCP服务器逻辑(工具和资源注册)
  • src/session-manager.ts:会话管理(搜索状态持久化)
  • src/nasa-api.ts:NASA API客户
  • src/types.ts:TypeScript类型定义

发展

观看模式

npm run watch

文件更改时自动重建。

开发模式

npm run dev

构建并立即启动服务器。

故障排除

端口已在使用中

Error: listen EADDRINUSE: address already in use

解决方案:指定其他端口:

PORT=3001 npm start

“找不到模块”错误

运行:

npm run build

编译TypeScript。

API速率限制错误

  • 如果使用 DEMO_KEY,从获取您自己的API密钥 api.nasa.gov
  • 每小时仅限30个请求

“不可接受”错误

客户端必须接受以下两种MIME类型:

  • application/json
  • text/event-stream
curl -H "Accept: application/json, text/event-stream" ...

未找到会话

保存 mcp-session-id 初始化请求后返回的标头,并将其作为 mcp-session-id 后续请求中的标头。

安全须知

  • 此服务器已启用CORS(用于开发)
  • 在生产中,实施适当的CORS设置和速率限制
  • 通过环境变量管理NASA API密钥;不要硬编码它们

许可证

麻省理工学院

参考文献

贡献

欢迎拉取请求!通过Issues接受错误报告和功能请求。

支持

如果遇到问题,请创建问题或参阅NASA API支持页面。

目录标签

目录标签

会话管理TypeScriptClaude图像搜索本地部署交互式UIMCP服务器NASAAPI

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@kaitoy/nasa-images-mcp-server

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP