项目简介
这是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 客户端提供美国国家公园服务 (NPS) 的数据访问能力。通过此服务器,用户可以方便地获取国家公园的列表以及特定公园的详细信息,从而在 LLM 应用中集成丰富的地理和自然资源信息。
主要功能点
- 检索国家公园列表: 根据美国州代码,获取该州内所有国家公园的简要列表,包含公园名称、描述和公园代码。
- 获取国家公园详细信息: 根据国家公园代码,获取特定公园的详细信息,包括公园全名、描述和所属州份。
以上功能通过定义好的 工具 (Tools) 和 Prompt 模板 (Prompts) 提供,方便 LLM 客户端调用和使用。
安装步骤
-
克隆仓库:
git clone https://github.com/amysatterlee/nps_mcp cd nps_mcp -
安装依赖: 确保已安装 Node.js (v18+) 和 npm 或 yarn。在项目根目录下运行:
npm install -
配置 API 密钥:
- 前往 https://www.nps.gov/subjects/developer/get-started.htm 申请 NPS API 密钥。
- 在项目根目录下创建 '.env' 文件,并添加你的 API 密钥:
将 'YOUR_NPS_API_KEY_HERE' 替换为你申请到的 API 密钥。API_KEY=YOUR_NPS_API_KEY_HERE
服务器配置
要将此 MCP 服务器添加到 MCP 客户端(例如 Claude Desktop),您需要配置服务器的启动命令。以下是 'claude_desktop_config.json' 的配置示例:
{ "mcpServers": { "nps": { "command": "node", "args": [ "/path/to/nps_mcp/build/server.js" // 将 "/path/to/nps_mcp" 替换为您的仓库本地路径 ], "env": { "API_KEY": "YOUR_NPS_API_KEY_HERE" // 可选,如果已在 .env 文件中配置,此处可以省略 } } } }
配置参数说明:
- 'server name': 'nps' (服务器名称,客户端用此名称识别和调用)
- 'command': 'node' (启动服务器的命令,这里使用 Node.js 运行)
- 'args':
- '"/path/to/nps_mcp/build/server.js"': 服务器入口文件路径,请替换为实际的 'build/server.js' 文件路径。注意: 首次运行前需要先执行 'npm run build' 构建项目。
- 'env':
- 'API_KEY': NPS API 密钥,如果已经在 '.env' 文件中配置,可以省略此项。
请将上述配置添加到您的 MCP 客户端配置文件中,并确保路径正确。
基本使用方法
-
启动服务器: 在项目根目录下运行以下命令构建并启动服务器:
npm run build node ./build/server.js或者,如果您使用 Claude Desktop,启动或重启 Claude Desktop 即可。
-
在 MCP 客户端中使用:
- 确保您的 MCP 客户端已正确配置并连接到 'nps' 服务器。
- 使用客户端提供的界面或方式,调用已定义的 工具 (Tools) 或 Prompt 模板 (Prompts) 来查询国家公园数据。
工具 (Tools) 使用示例:
- 使用 'park-list' 工具,并传入 'stateCode' 参数(例如 "CA")来获取加利福尼亚州的国家公园列表。
- 使用 'park-details' 工具,并传入 'parkCode' 参数(例如 "yell")来获取黄石国家公园的详细信息。
Prompt 模板 (Prompts) 使用示例:
- 使用 'parks-by-state' Prompt 模板,并传入 'stateCode' 参数(例如 "NY"),LLM 会理解您的意图并查询纽约州的国家公园。
- 使用 'details-for-park' Prompt 模板,并传入 'park' 参数(例如 "Grand Canyon National Park"),LLM 会尝试获取大峡谷国家公园的详细信息。
具体的调用方式请参考您使用的 MCP 客户端的文档。
信息
分类
网页与API