社区智能协议服务器

MCP Server是一个模块化、原则驱动的开源服务器,用于运行本地、可信和自主的社区AI,支持数据验证、模型编排和原则应用。

  • by CivikNet
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Publik-Works/civicnet-mcp-server

使用说明

🚀 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编写)

  1. 克隆回购:

    git clone https://github.com/PublikPrinciple/civicnet-mcp-server.git
    cd civicnet-mcp-server
    
  2. 复制和编辑环境变量:

    cp config/.env.example .env
    # Edit .env with your API keys, DB, LLM settings, etc.
    
  3. 启动MCP服务器(以及可选的数据服务):

    docker-compose up --build
    
  4. 查看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就绪: 此服务器旨在与其他社区、城市或地区联合发布/共享见解,同时保持完整的本地治理和隐私
  • 联合查询: 允许进行比较(例如,“显示所有社区的驱逐率”)

📖 文档和社区


📝 许可证

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:分析已完成