🚀 Civicnet MCP服务器——模型上下文协议
欢迎来到官方开源MCP服务器。\ 这是Konstellation&CivicNet联合公民基础设施的核心——一个模块化、原则驱动的服务器,用于运行本地、可信和代理的社区人工智能。
______________________________________________________________________
🧭 什么是MCP服务器?
MCP服务器供电 邻里、城市或组织级“节点” 在CivicNet/Konstellation网格中。每个节点:
- 获取并验证本地数据(GIS、政策、社区故事、公共记录)
- 主持和编排代理模型(推理、自我审计、模拟、角色扮演等)
- 适用于 公民原则 (公平、真相、隐私、透明度)对每一个查询和输出
- 为仪表板、GIS客户端和外部合作伙伴发布安全、有文档记录的API
- 与其他MCP节点建立联盟,在保持本地控制的同时共享知识
为什么?\ 因此,每个社区都可以拥有、管理和不断提高自己的公民智慧——没有黑匣子,没有供应商锁定,没有沉默的偏见。
______________________________________________________________________
🌌 主要特点
- 法学硕士不可知论者: 插入任何现代语言模型(OpenAI、Anthropic、开源)
- 云不可知: 部署在您的云端、本地、边缘或本地设备上
- 原理库: 在代码中定义、审核和发展社区原则
- 模块化代理逻辑: 支持思维链、自我反思、角色模拟、多智能体辩论等
- 数据管理: 用于本地、开放和联邦公民数据的细粒度连接器
- 模拟就绪: 运行“假设”情景和参与式模拟
- 完整审计跟踪: 每个输出、代理步骤和数据源都被记录并可审查
- 码头化: 易于本地或分布式容器设置
______________________________________________________________________
🗃 目录概述
| 文件夹 | 用途 |
|---|---|
src/agents | 代理模型(推理、对齐、模拟) |
src/api | 用于查询、数据和工具的REST/GraphQL API |
src/principles | 原理仓库(YAML/JSON+逻辑) |
src/data | 数据摄取、验证和连接器 |
src/prompts | 提示模板和场景脚本 |
src/simulation | 仿真、场景建模逻辑 |
src/utils | 日志记录、审计、助手功能 |
config/ | 节点配置、已启用的功能、.env模板 |
scripts/ | 开发、测试、迁移脚本 |
tests/ | 单元和集成测试 |
______________________________________________________________________
⚡️ 快速入门(本地Docker编写)
- 克隆回购:
git clone https://github.com/PublikPrinciple/civicnet-mcp-server.git
cd civicnet-mcp-server- 复制和编辑环境变量:
cp config/.env.example .env
# Edit .env with your API keys, DB, LLM settings, etc.- 启动MCP服务器(以及可选的数据服务):
docker-compose up --build- 查看API文档:
- 首选 http://localhost:4000/docs (默认情况下为Swagger/OpenAPI)
______________________________________________________________________
🛠️ 核心概念
原理库
- 所有输出都经过检查、过滤或重写,以符合社区的核心原则(例如,“确保公平”、“避免伤害”、“引用来源”)。
- 通过YAML/JSON更新原则
/src/principles/.
代理与代理逻辑
- 思维链代理: 透明度的逐步逻辑
- 自我反思剂: 检查自己的偏见、逻辑和合规性
- 角色模拟代理: 模拟辩论(规划师与居民)、专家小组或历史观点
- 多代理协作: 支持场景测试、参与式预算和红队
- 每个代理的逻辑都是模块化和可组合的(参见
/src/agents/).
数据层
- 连接器 用于GIS、人口普查、本地CSV、API等
- 验证/纠正 隐私和数据卫生步骤
- 联邦: 与受信任节点共享/选择性共享(选择加入)
提示和场景模板
- 所有代理推理都是由提示模板驱动的(参见
/src/prompts/) - 编写自己的或使用内置的公民案例研究和模拟模板
模拟
- 使用真实和合成数据对未来(住房、气候、预算等)进行建模
- 输出是交互式的,并经过原则审核
______________________________________________________________________
🔑 示例用例
- 利用地图、时间线和股权分析生成“达勒姆住房危机”案例研究,供GIS和公众审查
- 支持参与式预算模拟,社区代理人之间进行角色扮演辩论
- 发布本地仪表板的纯语言、原则对齐的数据API
- 审核所有输出的偏差、错误和社区原则(包括日志和反馈)
- 与其他社区/城市联合起来,进行比较、重新混合和改进当地分析
______________________________________________________________________
🧑💻 对于开发者
- 语言: 默认情况下为Types/Node.js,路线图中的Python代理兼容性
- 贡献: 看
CONTRIBUTING.md用于分支、代码风格和原则对齐PR检查 - 测验:
npm test(杰斯特),或者一起跑docker-compose -f docker-compose.test.yml up
______________________________________________________________________
🏛️ 面向公民数据管理员
- 原则驱动型治理: 编辑
/src/principles/更新节点的值 - 日志和审核: 每个答案都是可追溯的(谁问了,什么数据,什么代理,什么检查)
- 开放API: 在MCP服务器的端点之上构建自己的GIS客户端、仪表板或移动应用程序
______________________________________________________________________
🔒 安全与隐私
- 未经明确的原则性同意和编辑,不得共享或披露敏感数据
- 每个节点都是沙盒;联盟始终是可选择加入和可审计的
______________________________________________________________________
🌍 联邦与星座
- Konstellation就绪: 此服务器旨在与其他社区、城市或地区联合发布/共享见解,同时保持完整的本地治理和隐私
- 联合查询: 允许进行比较(例如,“显示所有社区的驱逐率”)
______________________________________________________________________
📖 文档和社区
- 完整文档在
/docs/或 链接到civicnet.org/docs - 加入Discord上的#mcp服务器频道以获得支持和讨论
______________________________________________________________________
📝 许可证
AGPL 2.0–开放、可混音和社区驱动\ 看 许可证 详见
______________________________________________________________________
✨ 开始建设城市基础设施的未来!
______________________________________________________________________
📘 Swagger/OpenAPI设置(API端点概述)
将此添加到/src/api/routes.ts(示例):
从“快递”进口快递; 从“swaggerUi express”进口swaggerUi; 从“yamljs”导入YAML;
const router=express。路由器(); const swaggerDocument=YAML.load('./config/swagg.YAML');
router.use(“/docs”、swaggerUi.serve、swagger Ui.setup(swaggerDocument)); 导出默认路由器;
swagger.yaml启动器示例:
OpenAPI版本:3.0.0 信息: 标题:MCP服务器API 版本:1.0.0 路径: /api/分析: 职位: 摘要:使用代理逻辑分析公民查询 requestBody: 必填:true 内容: 应用程序/json: 架构: 类型:对象 属性: 查询: 类型:字符串 上下文: 类型:对象 响应: '200': description:分析已完成
