Token导航 LogoToken导航TokenDH.com
Permit Data MCP Server logo
数据服务stdio官方级别未说明来源级核验

Permit Data MCP Server

MCP Server

一个全面的FastMCP服务器,提供14种基于JSON模式的工具,用于管理Brunswick County NC的许可证数据,包括联系人丰富、分析和报告生成。

工具数

14

提示词数

0

GitHub Stars

0

资源数

0
报告生成Python地理编码

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ChrisTansey007

提供方

ChrisTansey007

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

许可数据MCP服务器

一个全面的FastMCP服务器,为布伦瑞克县NC许可证系统提供14个JSON模式驱动的工具,用于许可证数据管理、联系人丰富、分析和报告生成。

🚀 特性

核心能力

  • 数据新鲜度检查 -验证本地许可证数据是否最新
  • 完整和增量数据获取 -下载完整的许可证数据集或最近的更改
  • 联系人丰富 -自动附加承包商和业主联系信息
  • 管道编排 -组合下载、处理和丰富工作流程
  • 高级过滤和分析 -基于日期的筛选、自定义表达式和统计摘要
  • 地理编码支持 -将许可证地址转换为坐标
  • 分包商管理 -用于跟踪当前分包商的CRUD操作
  • 报告生成 -多种输出格式(Markdown、Word、CSV)
  • 通信有效载荷 -为利益相关者外联生成模板消息

可用工具

  1. check_permit_data -数据新鲜度验证
  2. download_permits -完成许可证数据集下载
  3. get_recent_permits -增量数据获取
  4. enrich_with_contacts -丰富联系信息
  5. run_pipeline -端到端数据处理工作流
  6. filter_permits_by_date -日期范围过滤
  7. filter_permits -自定义表达式过滤
  8. permit_stats_summary -统计分析和分组
  9. geocode_permit_addresses -地址地理编码
  10. get_current_subcontractors -分包商列表检索
  11. update_current_subcontractors -分包商管理
  12. get_contacts_for_permit -个人许可证联系人查询
  13. generate_contact_payload -通信模板生成
  14. generate_reports -创建多格式报告

📋 先决条件

  • Python 3.8或更高版本
  • 访问布伦瑞克县许可API
  • 有效的API端点(在环境中配置)

🛠️ 安装

地方发展

  1. 克隆存储库:
   git clone https://github.com/YOUR_USERNAME/permit-data-mcp-server.git
   cd permit-data-mcp-server
  1. 安装依赖项:
   pip install -r requirements.txt
  1. 配置环境:
   cp .env.example .env
   # Edit .env with your specific configuration
  1. 运行服务器:
   python permit_mcp_server.py

Docker部署

  1. 使用Docker Compose (推荐):
   docker-compose up -d
  1. 直接使用Docker:
   docker build -t permit-mcp-server .
   docker run -p 8000:8000 --env-file .env permit-mcp-server

⚙️ 配置

环境变量

创建一个 .env 文件基于 .env.example:

# Data Directory
DATA_DIR=/tmp/permit_mcp

# Brunswick County API Endpoints
PERMIT_FEATURESERVER_URL_PRIMARY=https://bcgis.brunswickcountync.gov/arcgis/rest/services/Permitting/Permit_Locations/FeatureServer/0/query
PERMIT_FEATURESERVER_URL_SECONDARY=https://services1.arcgis.com/W6gamXPYQeLXrdAd/arcgis/rest/services/Permit_Locations/FeatureServer/0/queryPROJECT_SEARCH_API_URL=https://etrakit.brunswickcountync.gov/eTRAKiT3/Search/Project/DoSearch
CONTRACTOR_KEY_API_URL=https://etrakit.brunswickcountync.gov/eTRAKiT3/Search/Permit/GetContractorKey
CONTRACTOR_CONTACT_API_URL=https://etrakit.brunswickcountync.gov/eTRAKiT3/Search/Contractor/GetContacts

# File Paths
SUBSCRIBER_STATE_PATH=${DATA_DIR}/current_subs.json
REPORTS_OUTPUT_DIR=${DATA_DIR}

# Security (Optional)
MCP_API_KEY=your_secret_api_key_here

API终点

该服务器与多个不伦瑞克县系统集成:

  • ArcGIS功能服务器 -主要许可证数据源
  • eTRAKiT项目搜索 -项目查找和验证
  • eTRAKiT承包商API -联系人信息检索

📖 使用示例

基础数据提取

# Check if local data needs updating
result = check_permit_data(
    base_url="https://your-arcgis-endpoint.com/query",
    local_csv="/path/to/permits.csv",
    delta_days=1
)

# Download fresh permit data
permits = download_permits(
    base_url="https://your-arcgis-endpoint.com/query",
    out_csv="/path/to/permits.csv"
)

联系人丰富

# Enrich permits with contractor contacts
enriched = enrich_with_contacts(
    permit_csv="/path/to/permits.csv"
)

# Or use DataFrame directly
enriched = enrich_with_contacts(
    permit_df=permits_data
)

过滤和分析

# Filter by date range
recent_permits = filter_permits_by_date(
    permits_json=permits_data,
    start="2024-01-01",
    end="2024-12-31",
    date_field="IssueDate"
)

# Generate statistics
stats = permit_stats_summary(
    permits_json=permits_data,
    group_by="ContractorKey"
)

报告生成

# Generate multiple report formats
reports = generate_reports(
    df_json=permits_data,
    group_label="Q4_2024",
    formats=["markdown", "word", "csv"]
)

🧪 测试

运行测试套件:

# Run all tests
python -m pytest test_permit_server.py -v

# Run specific test category
python -m pytest test_permit_server.py::TestDataFiltering -v

# Run with coverage
pip install pytest-cov
python -m pytest test_permit_server.py --cov=permit_mcp_server

📁 项目结构

permit-data-mcp-server/
├── permit_mcp_server.py       # Main FastMCP server application
├── requirements.txt           # Python package dependencies
├── .env.example              # Environment configuration template
├── Dockerfile                # Container build configuration
├── docker-compose.yml        # Multi-container orchestration
├── .gitignore               # Git version control ignore rules
├── test_permit_server.py     # Comprehensive test suite
├── LICENSE                   # MIT License
├── README.md                 # Project documentation (this file)
└── data/                     # Runtime data directory
    ├── permits_latest.csv    # Downloaded permit data
    ├── current_subs.json     # Subcontractor state
    └── reports/              # Generated reports

🔧 api参考

工具类别

数据管理

  • check_permit_data -验证数据新鲜度和同步状态
  • 下载_权限 -带可选缓存的完整数据集下载
  • 获取_中心_许可证 -基于编辑时间戳的增量更新

加工和浓缩

  • 丰富人脉 -附上承包商联系信息
  • run_pipeline -自动化的端到端处理工作流程
  • 地理许可地址 -将地址转换为地理坐标

过滤和分析

  • 筛选器_许可证_日期 -基于时间的数据过滤
  • 过滤器_许可证 -基于表达式的自定义过滤
  • permit_stats_summary -统计分析和分组操作

状态管理

  • get_current分包商 -检索跟踪的分包商列表
  • update_current_subsectors -在跟踪中添加/删除分包商

沟通与报告

  • get_contacts_for_permit -个人许可证联系人查询
  • generate_contact_payload -基于模板的消息生成
  • 生成报告 -创建多格式报告(MD、Word、CSV)

🚦 健康监测

服务器包括内置的健康检查:

  • HTTP端点: GET /health
  • Docker健康检查:自动集装箱健康监测
  • 日志记录:使用相关ID进行全面的请求跟踪

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 提交您的更改: git commit -m 'Add amazing feature'
  4. 推到分支: git push origin feature/amazing-feature
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆘 支持

对于问题、疑问或贡献:

  1. 检查现有
  2. 创建具有详细描述的新问题
  3. 包括日志和配置详细信息(已清理)

🔗 相关项目

______________________________________________________________________

使用FastMCP构建 | 支持MCP协议 | 生产就绪

目录标签

目录标签

报告生成Python地理编码许可证管理本地部署数据分析联系人丰富

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP