项目简介

本项目 'mcp_server_nasa' 是一个 MCP(Model Context Protocol)服务器的实现,专注于集成 NASA 的近地天体 (NEO) API。它通过 MCP 协议向 LLM 客户端提供工具和资源,使得 LLM 能够查询 NASA 的天文数据。

主要功能点

  • 近地天体数据查询工具 (getNeo): 允许 LLM 根据指定的日期范围查询 NASA NEO API,获取地球附近天体的信息。
  • 动态问候语资源 (greeting): 提供一个简单的动态资源,根据请求的名称返回个性化的问候语,演示了 MCP 服务器资源管理能力。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/fdmocho/mcp_server_nasa
    cd mcp_server_nasa
  2. 安装依赖: 使用 'uv' 包管理器安装项目依赖。如果还没有安装 'uv',请先安装 'uv' (参考 https://astral.sh/uv)。然后在项目目录下运行:
    uv install
  3. 配置 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"
            ]
        }
    }
}

基本使用方法

  1. 启动服务器: 配置好 LLM 客户端后,启动客户端,客户端会自动尝试连接配置的 MCP 服务器。或者,你也可以在终端中手动运行服务器:

    uv run main.py
  2. 调用工具 (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' 工具并返回结果。

  3. 访问资源 (greeting): 你可以通过 MCP 协议请求访问 'greeting' 资源。例如,请求 'greeting://Alice' 资源将会返回 '"Hello, Alice!"'。 具体的请求方式取决于 LLM 客户端的实现。

开发者提示: 本项目使用了 'mcp' Python 库和 'fastmcp' 框架简化了 MCP 服务器的开发。你可以参考 'mcp' 库的文档来扩展服务器的功能。

信息

分类

网页与API