使用说明
CAL FIRE DINS ArcGIS MCP服务器
模型上下文协议(MCP)服务器,为洛杉矶地区受2025年1月伊顿和帕利塞德斯火灾影响的物业地址的AI模型提供火灾损失评估上下文。在中了解有关MCP的更多信息 模型上下文协议介绍.
这使用了 MCP TypeScript SDK 随着 炎 作为web框架
概述
什么是MCP?
模型上下文协议(MCP)是人工智能模型与外部工具和服务交互的标准化方式。它提供了一个结构化的界面,允许AI模型:
- 发现可用的工具及其功能
- 了解工具模式和所需参数
- 执行具有适当参数验证的工具
- 接收结构化响应
CAL FIRE集成用例
该项目是一个说明性的例子,展示了如何使用MCP为AI模型提供对官方CAL FIRE损伤评估数据的访问。通过MCP接口公开CAL FIRE的数据,我们可以启用:
- 直接访问CAL FIRE的权威损伤评估信息
- 火灾影响区域的结构化查询
- 实时核实财产损失状态
- 与人工智能驱动的分析和报告集成,用于后续数据分析
2025年1月洛杉矶发生野火后,加州林业和消防局(CAL FIRE)进行了官方损失评估(DINS),并通过ArcGIS发布了这些数据。对于受火灾影响的每一处房产,都有一份官方评估,通过照片证据对损坏的严重程度进行了评估。
这种MCP集成允许AI模型从这个官方数据源中获取,并提供有关火灾损失评估的准确、最新信息,同时保持数据完整性和来源验证。
了解更多关于洛杉矶恢复损伤地图的信息,请访问:
特性
- 使用ArcGIS地理编码服务对地址进行地理编码
- 疏散区查找(有史以来设置的最大疏散顺序)
- APN包裹信息检索
- 火灾DINS损伤评估数据检索
入门指南
先决条件
- bun运行时
- node.js 20或更高版本
- 版本控制系统
安装
-
克隆和设置
git clone [repository-url] cd calfire-gis-mcp-server bun install -
环境设置 (可选)
- 创建一个
.env项目根目录中的文件 - 添加所需的环境变量(请参见 环境变量 部分)
- 创建一个
-
启动服务器
# Development mode with hot reload bun run dev # or production mode bun run start -
验证安装
# Check server health curl http://localhost:4000/health # Expected response: { "status": "ok", "service": "calfire-gis-mcp-server", "version": "0.1.0", "timestamp": "2024-03-21T12:34:56.789Z", "uptime": 60 }
开发工具
MCP检查员
MCP检查器是一个有用的工具,可以帮助您测试和调试此MCP服务器。
-
确保您的MCP服务器首先运行
# Run dev mode bun run dev # or run production mode bun run start -
启动检查器
bunx @modelcontextprotocol/inspector -
您应该看到以下输出:
Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀 -
打开MCP检查器输出的链接
您计算机上的端口可能与上面显示的示例不同
-
确保选择以下设置:
- 运输类型:
Streamable HTTP - 网址:
http://localhost:4000/mcp
- 运输类型:
-
点击 连接
-
连接后,单击 列出工具
-
现在你应该看到
fetch_fire_damage_assessment_for_address工具 -
点击工具名称,您将能够测试
address输入参数 -
输入示例地址,如下所示
"730 E Altadena Dr Altadena, CA"然后单击 运行工具 -
这将触发工具处理程序逻辑,并返回包含此地址的损坏数据的有效载荷
Claude桌面集成
当您的MCP服务器在本地运行时,您可以将其连接到Claude Desktop以测试与LLM的集成。这需要配置 claude_desktop_config.json 并使用 npx mcp-remote 作为Claude Desktop和MCP服务器之间的桥梁。
-
下载克劳德桌面 在https://claude.ai/download
-
找到Claude桌面配置目录
- macOS:
~/Library/Application Support/Claude/ - 窗户:
%APPDATA%\Claude\ - Linux:
~/.config/Claude/
- macOS:
-
配置Claude桌面
创建或编辑
claude_desktop_config.json:{ "mcpServers": { "calfire-gis-mcp-server": { "command": "npx", "args": [ "mcp-remote", "http://127.0.0.1:4000/mcp" ] } } }
注: 我们需要使用
npx mcp-remote而不是直接指向服务器版本,因为Claude Desktop目前仅支持stdio本地传输,而我们使用的是Streamable HTTP。查看更多 MCP基础协议:传输.
-
重新启动您的Claude桌面应用程序 如果你让它运行
-
验证克劳德桌面MCP状态
您可以通过打开“设置”窗口来验证Claude Desktop是否已成功连接到您的MCP服务器(
⌘ ,) -
使用与LA Wildfire DINS数据相关的查询测试您的MCP服务器
你可以问这样的问题: 加利福尼亚州阿尔塔迪纳博士730 E Altadena的CAL火灾DINS官方损害评估是什么?
-
允许Claude使用外部集成
如果Claude检测到注册的工具(如我们这里的工具)可能有助于回答此查询,它将调用您在本地运行的MCP服务器,并请求您允许使用它。
-
查看结果!
克劳德将展示其作品,并致电
fetch_fire_damage_assessment_for_address工具并返回地址的官方损坏评估摘要。
环境变量
PORT:服务器端口(默认值:4000)LOG_LEVEL:日志记录级别(默认值:“info”)
项目结构
src/
├── mcp/ # MCP tool definitions
├── services/ # Business logic services
├── types/ # TypeScript types and Zod schemas
├── utils/ # Utility functions
└── index.ts # Main server file
部署
AWS Lambda部署
该应用程序使用AWS SAM部署为无服务器应用程序,具有以下关键组件:
- 匿名函数:Node.js 20.x运行时,内存256MB
- API网关:两个端点(
/mcp帖子,/health得到) - 部署管道:GitHub操作工作流:
- 运行测试和类型检查
- 构建应用程序
- 使用SAM CLI部署到AWS
部署是通过GitHub Actions自动完成的,在推送时触发 main 并拉取请求。
您可以使用已部署的MCP服务器进行测试:
curl https://eg9m4imp6d.execute-api.us-east-2.amazonaws.com/prod/health
您还可以使用以下命令将Claude Desktop指向生产端点(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"calfire-gis-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://eg9m4imp6d.execute-api.us-east-2.amazonaws.com/prod/mcp"
]
}
}
}
测试
该项目使用Bun的内置测试运行器。测试位于 tests 目录并遵循模式 *.test.ts.
# Run all tests
bun test
# Run tests in watch mode
bun test --watch
# Run specific test file
bun test tests/server.test.ts
测试套件包括:
server.test.ts:冒烟测试服务器是否正确遵循MCP服务器惯例,是否可以成功启动。arcgis.service.test.ts:与远程ArcGIS服务器进行集成测试,以测试具有不同损伤数据变体的已知地址。
许可证
麻省理工学院
