市级CP
用于从Municode数字图书馆访问市政法规和条例的模型上下文协议(MCP)服务器。该服务器为美国数千个城市提供对市政法律文件的程序化访问,包括城市条例、分区代码和其他地方法规。
🏛️ 概述
Municode为美国数千个城市和县托管市政代码。该MCP服务器利用非官方的Municode API,通过标准化的MCP接口提供对这些有价值的公共信息的结构化访问。
特性
- 🏛️ 市政探索:按州查找城市
- 📜 代码导航:浏览市政代码结构
- 🔍 搜索功能:搜索条例和法规
- 📋 内容检索:获取特定的代码段和内容
- 🌐 URL生成:生成与市政法规的直接链接
- 🔗 MCP集成:适用于任何兼容MCP的客户端
🚀 快速开始
安装
- 克隆存储库:
git clone https://github.com/yourusername/MunicipalMCP.git
cd MunicipalMCP- 安装依赖项:
pip install -r requirements.txt- 测试服务器:
python3 test_server.py添加到MCP客户端
经纱终端
在以下位置创建或更新MCP配置文件 ~/.config/mcp/mcp.json:
{
"mcpServers": {
"municode": {
"command": "python3",
"args": ["/path/to/MunicipalMCP/municode-mcp-server.py"],
"description": "Access municipal codes and ordinances from Municode digital library"
}
}
}Claude桌面应用程序
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"municode": {
"command": "python3",
"args": ["/path/to/MunicipalMCP/municode-mcp-server.py"]
}
}
}🛠️ 可用工具
1. get_states_info
通过缩写获取美国各州的信息。
- 参数:
state_abbr(string)-两个字符的状态缩写
2. list_municipalities
列出一个州内使用Municode的所有城市。
- 参数:
state_abbr(string)-两个字符的状态缩写
3. get_municipality_info
获取特定城市的详细信息。
- 参数:
- municipality_name (string)-市政府名称 - state_abbr (string)-两个字符的状态缩写
4. get_code_structure
获取市政代码的目录结构。
- 参数:
- municipality_name (string)-市政府名称 - state_abbr (string)-两个字符的状态缩写 - node_id (字符串,可选)-特定节点ID(默认为根)
5. get_code_section
获取市政法规特定章节的内容。
- 参数:
- municipality_name (string)-市政府名称 - state_abbr (string)-两个字符的状态缩写 - node_id (string)-特定代码段的节点ID
6. search_municipal_codes
搜索市政法规和条例。
- 参数:
- municipality_name (string)-市政府名称 - state_abbr (string)-两个字符的状态缩写 - search_query (string)-要搜索的文本 - page_size (整数,可选)-每页结果(默认值:10) - page_number (整数,可选)-页码(默认值:1) - titles_only (布尔值,可选)-仅搜索标题(默认值:false)
7. get_municipality_url
获取市政当局代码库页面的URL。
- 参数:
- municipality_name (string)-市政府名称 - state_abbr (string)-两个字符的状态缩写
📝 示例用法
市政基础研究
User: "List all municipalities in Virginia that use Municode"
Tool: list_municipalities({"state_abbr": "VA"})
User: "Get information about Norfolk, Virginia"
Tool: get_municipality_info({"municipality_name": "Norfolk", "state_abbr": "VA"})
User: "What's the structure of Norfolk's municipal code?"
Tool: get_code_structure({"municipality_name": "Norfolk", "state_abbr": "VA"})搜索市政代码
User: "Search Norfolk VA municipal codes for zoning ordinances"
Tool: search_municipal_codes({
"municipality_name": "Norfolk",
"state_abbr": "VA",
"search_query": "zoning"
})
User: "Find building code requirements for crawl space ventilation in Norfolk"
Tool: search_municipal_codes({
"municipality_name": "Norfolk",
"state_abbr": "VA",
"search_query": "crawl space ventilation"
})🏗️ 用例
城市规划与发展
- 比较各市的分区条例
- 研究建筑规范要求
- 分析开发法规和程序
法律与合规研究
- 查找相关市政条例以供遵守
- 研究当地法律要求
- 跨司法管辖区的交叉引用法规
学术与政策研究
- 研究市政治理结构
- 分析各地区的监管模式
- 地方法律研究的演变
公民参与
- 了解影响居民的当地法规
- 为市议会会议做准备
- 研究市政程序和政策
⚙️ 技术细节
API集成
该服务器使用非官方的Municode API,其端点包括:
- 州和市发现
- 代码结构导航
- 内容检索
- 全文搜索功能
数据结构
市政法规按层次组织:
State → Municipality → Products → Sections → Content每个市可能有多个产品(条例法典、分区条例等),每个产品都有自己的层次结构。
⚠️ 局限性
- 使用可能更改的非官方API端点
- 并非所有城市都提供所有功能
- 某些内容可能为PDF格式,无法通过API进行搜索
- 速率限制可能适用于API请求
- 市政名称必须与Municode的确切格式相匹配
🤝 贡献
欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
开发设置
- 复刻仓库
- 创建要素分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 基于 非官方Municode API文件 by ~partytax
- Municode和CivicPlus,为公众提供市政代码信息
- 用于开发模型上下文协议标准的MCP社区
⚖️ 法律声明
这是一个非官方工具,旨在提供对公开市政代码信息的程序化访问。它不隶属于Municode或CivicPlus,也不受其认可。始终与官方来源核实关键法律信息,并尊重Municode的服务条款。
______________________________________________________________________
由...制作❤️ 提高公民透明度和可访问性
