关于 Dmap Ai Mcp Server
Dmap Ai Mcp Server 通过 FastMCP 提供旱情监测和 SPI 分析,使用 NASA POWER 与 ERA5-Land/CDS 数据。它还包含受 Auth0 保护的私有工具调用分析 API。
主要功能
- 01旱情监测与 SPI 分析
- 02SPI 表格及旱情事件检测
- 03小波标度图与周期诊断
- 04结构化 JSON 输出
- 05受 Auth0 保护的私有分析 API
适用场景
- 01使用 NASA POWER 数据分析旱情
- 02根据 SPI 检测旱情严重程度事件
- 03检查气候数据中的小波周期性
- 04查看工具调用分析数据
MCP 相关
服务在 `/mcp/` 暴露 FastMCP 工具,用于旱情监测和分析。另提供位于 `/admin/analytics/` 的私有分析 API。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://droughtanalysis.com/mcpclaude mcp add --transport http dmap-ai https://droughtanalysis.com/mcp{"mcpServers":{"dmap-ai":{"type":"http","url":"https://droughtanalysis.com/mcp"}}}在 Cursor 中打开{"servers":{"dmap-ai":{"type":"http","url":"https://droughtanalysis.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"dmap-ai":{"type":"http","url":"https://droughtanalysis.com/mcp"}}}{"mcpServers":{"dmap-ai":{"serverUrl":"https://droughtanalysis.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
5此工具无需参数。
详细介绍
DMAP-AI MCP 服务
该服务在 /mcp/ 提供现有的 FastMCP 工具,并在 /admin/analytics/ 提供仅供所有者使用的分析 API。每次有意义的分析工具调用都会在分析数据中生成一条最终 SQLite 记录。返回 { "ok": false } 的结果和抛出的异常均视为失败;协议发现、健康检查流量和 debug_ping 不计入统计。
本地开发
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements-dev.txt
Copy-Item .env.example .env
python -m pytest -q
$env:DMAP_ANALYTICS_MARK_TEST_TRAFFIC='true'
uvicorn server:app --host 127.0.0.1 --port 8001
SQLite 会自动初始化。它使用 WAL、外键、五秒忙碌超时、短事务、参数化 SQL,以及针对时间、工具、状态、标识符和映射位置创建的索引。时间戳使用 UTC。仪表板查询默认使用 America/Chicago,但也接受任何已安装的 IANA 时区。
配置
DMAP_ANALYTICS_DB_PATH:SQLite 路径;本地默认值为data/analytics.sqlite3。生产环境应使用 Git 工作区之外的持久化目录。DMAP_ANALYTICS_HASH_SECRET:仅供服务器使用的长随机 HMAC 密钥。更改后会中断标识符的连续性。该密钥不会用于臆造标识符。DMAP_ANALYTICS_ADMIN_SUBS:以逗号分隔的 Auth0sub许可名单。切勿在前端代码中公开。DMAP_ANALYTICS_MARK_TEST_TRAFFIC:将新捕获的事件标记为测试流量。DMAP_ANALYTICS_ALLOWED_ORIGINS:以逗号分隔的精确生产/开发 CORS 来源。AUTH0_DOMAIN:不带协议的 Auth0 租户域名。AUTH0_AUDIENCE:预期的 API 受众。DMAP_API_BASE:现有 DMAP 分析后端的基 URL。
每个分析路由都会通过 JWKS、颁发者、受众和过期时间验证 Auth0 RS256 令牌。授权要求 permissions 或 scope 中包含 read:dmap-analytics,或令牌主题与仅供服务器使用的许可名单中的条目完全匹配。私有响应使用 Cache-Control: no-store。
当前 MCP 服务是无状态的,且不会对调用者进行身份验证,因此既没有由服务器签发的稳定会话标识符,也没有经过验证的最终用户主题。因此,session_hash 和 user_hash 均保持为空,仪表板会将 Estimated Sessions、Authenticated Users 和 Active Sessions 显示为 Unavailable。它绝不会根据 IP 地址或用户代理推断身份。
历史数据导入
导入器接受包含 timestamp,service,priority,pid,message 列的日志 CSV,会忽略重复表头和发现流量,仅导入有可靠证据支持的已知工具名称,在去重前会对 api_key 查询参数值进行脱敏,并且不会存储消息或 URL。
python scripts\import_journal_csv.py C:\path\to\dmap_ai_mcp_logs_30days.csv --dry-run
python scripts\import_journal_csv.py C:\path\to\dmap_ai_mcp_logs_30days.csv
python scripts\import_journal_csv.py C:\path\to\test_logs.csv --mark-test
通过 SHA-256 源事件指纹,重复导入具有幂等性。历史日志不会生成用户或会话计数。
生产部署概述
备份并获得批准后,使用服务器现有的部署方法。将 DMAP_ANALYTICS_DB_PATH 设置为持久化路径,例如 /var/lib/dmap-ai-mcp/analytics.sqlite3;创建由 systemd 服务用户拥有的该目录,安装 requirements.txt,然后重启 dmap-ai-mcp。不要在命令行或 Git 中放置密钥值;请将其存放在现有的受保护环境文件中。
升级前,如当前部署需要,请短暂停止写入,并使用 SQLite 的在线备份命令进行备份:
sqlite3 /var/lib/dmap-ai-mcp/analytics.sqlite3 ".backup '/var/backups/dmap-ai-mcp/analytics-$(date -u +%Y%m%dT%H%M%SZ).sqlite3'"
回滚时,按照现有服务流程恢复之前的 Git 提交/虚拟环境,恢复环境文件备份,然后重启服务。架构采用增量扩展;即使回滚了应用代码,也要保留数据库备份。
建议保留 13 个月,以便比较汇总趋势,并根据实际数据量和政策进行审查。目前未启用自动删除。进行任何有意清理前,请先备份数据库,并按有界的 UTC 日期范围删除数据。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。