火灾损害评估服务

CAL FIRE DINS ArcGIS MCP Server 是一个为AI模型提供洛杉矶地区火灾损害评估数据的服务,通过Model Context Protocol (MCP)接口实现数据的结构化查询和实时验证。

  • by devin2712
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 devin2712/calfire-gis-mcp-server

使用说明

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或更高版本
  • 版本控制系统

安装

  1. 克隆和设置

    git clone [repository-url]
    cd calfire-gis-mcp-server
    bun install
    
  2. 环境设置 (可选)

    • 创建一个 .env 项目根目录中的文件
    • 添加所需的环境变量(请参见 环境变量 部分)
  3. 启动服务器

    # Development mode with hot reload
    bun run dev
    
    # or production mode
    bun run start
    
  4. 验证安装

    # 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服务器。

  1. 确保您的MCP服务器首先运行

    # Run dev mode
    bun run dev
    
    # or run production mode
    bun run start
    
  2. 启动检查器

    bunx @modelcontextprotocol/inspector
    
  3. 您应该看到以下输出:

    Starting MCP inspector...
    ⚙️ Proxy server listening on port 6277
    🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
    
  4. 打开MCP检查器输出的链接

    您计算机上的端口可能与上面显示的示例不同

  5. 确保选择以下设置:

    • 运输类型: Streamable HTTP
    • 网址: http://localhost:4000/mcp
  6. 点击 连接

  7. 连接后,单击 列出工具

  8. 现在你应该看到 fetch_fire_damage_assessment_for_address 工具

  9. 点击工具名称,您将能够测试 address 输入参数

  10. 输入示例地址,如下所示 "730 E Altadena Dr Altadena, CA" 然后单击 运行工具

  11. 这将触发工具处理程序逻辑,并返回包含此地址的损坏数据的有效载荷

Claude桌面集成

当您的MCP服务器在本地运行时,您可以将其连接到Claude Desktop以测试与LLM的集成。这需要配置 claude_desktop_config.json 并使用 npx mcp-remote 作为Claude Desktop和MCP服务器之间的桥梁。

  1. 下载克劳德桌面 在https://claude.ai/download

  2. 找到Claude桌面配置目录

    • macOS: ~/Library/Application Support/Claude/
    • 窗户: %APPDATA%\Claude\
    • Linux: ~/.config/Claude/
  3. 配置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基础协议:传输.

  1. 重新启动您的Claude桌面应用程序 如果你让它运行

  2. 验证克劳德桌面MCP状态

    您可以通过打开“设置”窗口来验证Claude Desktop是否已成功连接到您的MCP服务器(⌘ ,)

  3. 使用与LA Wildfire DINS数据相关的查询测试您的MCP服务器

    你可以问这样的问题: 加利福尼亚州阿尔塔迪纳博士730 E Altadena的CAL火灾DINS官方损害评估是什么?

  4. 允许Claude使用外部集成

    如果Claude检测到注册的工具(如我们这里的工具)可能有助于回答此查询,它将调用您在本地运行的MCP服务器,并请求您允许使用它。

  5. 查看结果!

    克劳德将展示其作品,并致电 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服务器进行集成测试,以测试具有不同损伤数据变体的已知地址。

许可证

麻省理工学院