项目简介
本项目 'mcp_server_nasa' 是一个 MCP(Model Context Protocol)服务器的实现,专注于集成 NASA 的近地天体 (NEO) API。它通过 MCP 协议向 LLM 客户端提供工具和资源,使得 LLM 能够查询 NASA 的天文数据。
主要功能点
- 近地天体数据查询工具 (getNeo): 允许 LLM 根据指定的日期范围查询 NASA NEO API,获取地球附近天体的信息。
- 动态问候语资源 (greeting): 提供一个简单的动态资源,根据请求的名称返回个性化的问候语,演示了 MCP 服务器资源管理能力。
安装步骤
- 克隆仓库:
git clone https://github.com/fdmocho/mcp_server_nasa cd mcp_server_nasa - 安装依赖:
使用 'uv' 包管理器安装项目依赖。如果还没有安装 'uv',请先安装 'uv' (参考 https://astral.sh/uv)。然后在项目目录下运行:
uv install - 配置 API Key: 复制 'apiconfig.example.py' 文件为 'apiconfig.py',并在 'apiconfig.py' 文件中将 '<YOUR API KEY GOES HERE>' 替换为你自己的 NASA API Key。 你可以在 NASA API 门户 获取 API Key。
服务器配置
要将此 MCP 服务器配置到 LLM 客户端(例如 Claude),你需要提供服务器的启动命令。以下是一个示例 JSON 配置,适用于 'claude_desktop_config.json' 文件:
{ "mcpServers": { "nasa": { // 服务器名称,可以自定义 "command": "uv", // 启动命令,这里使用 uv "args": [ // 启动参数 "--directory", "<PATH TO YOUR PY>", // 将 '<PATH TO YOUR PY>' 替换为你的 'mcp_server_nasa' 仓库的绝对路径 "run", "main.py" // 运行主程序 main.py ] } } }
注意: 请将 '<PATH TO YOUR PY>' 替换为你本地 'mcp_server_nasa' 仓库的绝对路径。例如,如果你的仓库在 '/Users/yourname/mcp_server_nasa',则配置应为:
{ "mcpServers": { "nasa": { "command": "uv", "args": [ "--directory", "/Users/yourname/mcp_server_nasa", "run", "main.py" ] } } }
基本使用方法
-
启动服务器: 配置好 LLM 客户端后,启动客户端,客户端会自动尝试连接配置的 MCP 服务器。或者,你也可以在终端中手动运行服务器:
uv run main.py -
调用工具 (getNeo): 在 LLM 客户端中,你可以通过 MCP 协议发送 JSON-RPC 请求来调用 'getNeo' 工具。例如,使用以下 JSON 请求查询 2024年7月25日至2024年7月26日的近地天体数据:
{ "method": "tools/call", "params": { "name": "getNeo", "arguments": { "start_date": "2024-07-25", "end_date": "2024-07-26" }, "_meta": { "progressToken": 0 } } }LLM 客户端需要构造并发送这样的 JSON-RPC 请求到 MCP 服务器,服务器会调用 'getNeo' 工具并返回结果。
-
访问资源 (greeting): 你可以通过 MCP 协议请求访问 'greeting' 资源。例如,请求 'greeting://Alice' 资源将会返回 '"Hello, Alice!"'。 具体的请求方式取决于 LLM 客户端的实现。
开发者提示: 本项目使用了 'mcp' Python 库和 'fastmcp' 框架简化了 MCP 服务器的开发。你可以参考 'mcp' 库的文档来扩展服务器的功能。
信息
分类
网页与API