CAL FIRE DINS ArcGIS MCP服务器
模型上下文协议(MCP)服务器,为洛杉矶地区受2025年1月伊顿和帕利塞德斯火灾影响的物业地址的AI模型提供火灾损失评估上下文。在中了解有关MCP的更多信息 模型上下文协议介绍.
概述
什么是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
MCP Inspector Interface: Initial View
- 点击 连接
- 连接后,单击 列出工具
MCP Inspector Interface: List Tools
- 现在你应该看到
fetch_fire_damage_assessment_for_address工具
MCP Inspector Interface: List Tools: fetch_fire_damage_assessment_for_address tool
- 点击工具名称,您将能够测试
address输入参数
MCP Inspector Interface: Tool input parameter field
- 输入示例地址,如下所示
"730 E Altadena Dr Altadena, CA"然后单击 运行工具
MCP Inspector Interface: Tool input parameter field with sample address
- 这将触发工具处理程序逻辑,并返回包含此地址的损坏数据的有效载荷
MCP Inspector Interface: Successful payload from MCP server
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/
- 配置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服务器(⌘ ,)
Claude Desktop Settings Dialog
- 使用与LA Wildfire DINS数据相关的查询测试您的MCP服务器
你可以问这样的问题: *加利福尼亚州阿尔塔迪纳博士730 E Altadena的CAL火灾DINS官方损害评估是什么?*
- 允许Claude使用外部集成
如果Claude检测到注册的工具(如我们这里的工具)可能有助于回答此查询,它将调用您在本地运行的MCP服务器,并请求您允许使用它。
Claude Desktop Dialog confirming Claude would like to use an external integration
- 查看结果!
克劳德将展示其作品,并致电 fetch_fire_damage_assessment_for_address 工具并返回地址的官方损坏评估摘要。
Claude Desktop Dialog confirming Claude would like to use an external integration
环境变量
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服务器进行集成测试,以测试具有不同损伤数据变体的已知地址。
许可证
麻省理工学院
