mcpField
C
Curate-Ipsum

Curate-Ipsum

本地服务
github.com/egoughnour开发工具037 周前更新

关于 Curate-Ipsum

Curate-Ipsum 是面向开发者的 MCP 服务,用于构建和检查代码补丁。它将变异测试、图分析、信念修订、代码合成与形式化验证整合到同一工作流中。

主要功能

  1. 01跨框架变异测试
  2. 02调用图与可达性分析
  3. 03带溯源的信念修订
  4. 04CEGIS 与遗传算法补丁合成
  5. 05使用 Z3 和 angr 验证
  6. 06基于 RAG 的代码图搜索

适用场景

  1. 01通过单元、集成和变异测试评估代码区域
  2. 02定位可达函数及依赖
  3. 03生成补丁并验证其属性
  4. 04搜索用于合成的代码上下文

MCP 相关

它通过 MCP stdio 暴露 30 个工具,涵盖测试、信念修订、回滚、图分析、验证、合成和 RAG 搜索。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
pypicurate-ipsum2.5.1
mcpbcurate-ipsum.mcpb2.5.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Curate-Ipsum

通过信念修订实现经过验证的代码合成的图谱谱 MCP 服务

PyPI MCP Registry Claude Desktop License: MIT Python

Top Language Code Size Last Commit Repo Size

Curate-Ipsum 填补了大模型生成的代码(快速、看似合理、未经验证)与形式化验证的补丁(缓慢、正确、可信)之间的鸿沟。它将变异测试视为一套更大型系统的组成部分,用于维护稳健、自愈的代码库元数据,支持可达性分析、符号执行和自动化测试生成。

安装

# PyPI
pip install curate-ipsum

# or with uv
uv pip install curate-ipsum

# Docker (includes baked-in embedding model)
docker pull ghcr.io/egoughnour/curate-ipsum:latest
Claude Desktop / MCP 客户端

将以下内容添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "curate-ipsum": {
      "command": "uvx",
      "args": ["curate-ipsum"]
    }
  }
}

也可以使用 Docker(已预加载嵌入模型,无需 Python):

{
  "mcpServers": {
    "curate-ipsum": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/egoughnour/curate-ipsum:latest"]
    }
  }
}

MCP 工具

Curate-Ipsum 通过 MCP stdio 传输方式提供 30 个工具,分为六组:

测试 — run_unit_tests、run_integration_tests、run_mutation_tests、get_run_history、get_region_metrics、detect_frameworks、parse_region、check_region_relationship、create_region

信念修订 — add_assertion、contract_assertion、revise_theory、get_entrenchment、list_assertions、get_theory_snapshot、store_evidence、get_provenance、why_believe、belief_stability

回滚与故障 — rollback_to、undo_last_operations、analyze_failure、list_world_history

图谱谱 — extract_call_graph、compute_partitioning、query_reachability、get_hierarchy、find_function_partition、incremental_update、persistent_graph_stats、graph_query

验证 — verify_property(Z3/angr)、verify_with_orchestrator(CEGAR 预算升级)、list_verification_backends

合成与 RAG — synthesize_patch(CEGIS + 遗传算法 + LLM)、synthesis_status、cancel_synthesis、list_synthesis_runs、rag_index_nodes、rag_search、rag_stats

当前状态

最后更新:2026-02-08

组件状态
多框架解析(5 种框架)已完成
图谱基础设施(Spectral/Kameda)已完成
信念修订引擎(AGM/Provenance)已完成
合成循环(CEGIS/Genetic)已完成
验证后端(Z3/angr)已完成
图谱持久化(SQLite/Kuzu)已完成
RAG / 语义搜索(Chroma)已完成

问题

大模型生成的代码:

  • ✅ 语法有效(通常如此)
  • ✅ 统计上看似合理
  • ❌ 语义正确(有时如此)
  • ❌ 类型安全(碰巧如此)
  • ❌ 经过形式化验证(从未如此)

目前的方法要么盲目信任大模型的输出,要么彻底拒绝。两者都不是最佳选择。

解决方案

使用大模型进行低成本候选生成,然后投入计算资源以实现形式化保证:

LLM Candidates (k samples)
        ↓
   Seed Population
        ↓
┌───────────────────────────┐
│  CEGIS + CEGAR + Genetic  │  ← Verification loop
│  + Belief Revision        │
└───────────────────────────┘
        ↓
  Strongly Typed Patch
  (with proof certificate)

与当前最先进技术的主要区别

与传统变异测试(Stryker、mutmut、cosmic-ray)的比较
传统方案Curate-Ipsum
单一工具、单一语言多框架编排
扁平的文件级分析分层图谱分解
输出变异分数将变异测试作为综合的输入
无形式化验证CEGIS/CEGAR 验证循环
手动编写测试自动生成补丁
与 LLM 代码生成(Copilot、Claude、GPT)的比较
仅使用 LLMCurate-Ipsum
信任模型输出验证模型输出
单次采样或 best-of-k基于群体的优化
无形式化保证证明证书
无状态生成带溯源的信念修正
看似合理的代码可证明正确的代码
与程序综合(Sketch、Rosette、SyGuS)的比较
传统综合Curate-Ipsum
手写草图LLM 生成的候选项
冷启动搜索从 LLM 候选群体热启动
运行之间不学习全化理论不断累积知识
单一规范多框架隐式区域
与符号执行(KLEE、S2E)的比较
符号执行Curate-Ipsum
仅探索路径与综合集成
布尔约束求解数学重构(SymPy)
单一工具分析图数据库 + SMT + 变异编排
不生成代码生成经过验证的补丁
创新贡献
  1. 图谱频谱代码分解

    • 使用 Fiedler 向量分区以实现最优可达性
    • 分层 SCC 凝缩
    • 平面子图识别 → O(1) Kameda 查询
    • Kuratowski 子图作为原子级非平面单元
  2. 用于综合的信念修正

    • 符合 AGM 的理论修正
    • 用于最小收缩的优先级排序
    • 用于故障模式分析的溯源 DAG
    • 回滚可提高有效性(故障会完善通用模型)
  3. 隐式区域检测

    • 频谱异常揭示测试不足的代码
    • 跨框架变异抵抗能力可识别关键区域
    • 历史可变性为分区优化提供指导
  4. 数学约束重构

    • 从布尔难解问题转为微分/求根
    • SymPy 路径条件编码
    • SMT 与数值求解相结合

架构

flowchart TB
    subgraph MCP["MCP Interface"]
        direction TB

        subgraph Sources["Analysis Sources"]
            direction LR
            MUT["🧬 Mutation<br/>Orchestrator<br/><small>Stryker<br/>mutmut<br/>cosmic-ray</small>"]
            SYM["🔬 Symbolic<br/>Execution<br/><small>KLEE · Z3<br/>SymPy</small>"]
            GRAPH["📊 Graph<br/>Analysis<br/><small>Joern<br/>Neo4j<br/>Fiedler</small>"]
        end

        MUT --> BRE
        SYM --> BRE
        GRAPH --> BRE

        BRE["🧠 Belief Revision Engine<br/><small>AGM Theory · Entrenchment · Provenance DAG</small>"]

        BRE --> SYNTH

        SYNTH["⚙️ Synthesis Loop<br/><small>CEGIS · CEGAR · Genetic Algorithm</small>"]

        SYNTH --> |"counterexample"| BRE

        SYNTH --> OUTPUT

        OUTPUT["✅ Strongly Typed Patch<br/><small>Proof Certificate ·Type Signature<br/>Pre/Post Conditions</small>"]
    end

    LLM["🤖 LLM Candidates<br/><small>top-k samples</small>"] --> SYNTH

    style MCP fill:#1a1a2e,stroke:#16213e,color:#eee
    style Sources fill:#16213e,stroke:#0f3460,color:#eee
    style MUT fill:#0f3460,stroke:#e94560,color:#eee
    style SYM fill:#0f3460,stroke:#e94560,color:#eee
    style GRAPH fill:#0f3460,stroke:#e94560,color:#eee
    style BRE fill:#533483,stroke:#e94560,color:#eee
    style SYNTH fill:#e94560,stroke:#ff6b6b,color:#fff
    style OUTPUT fill:#06d6a0,stroke:#118ab2,color:#000
    style LLM fill:#ffd166,stroke:#ef476f,color:#000

路线图

阶段 1:基础 ✅
  • MCP 服务基础设施
  • Stryker 报告解析
  • 运行历史和 PID 指标
  • 灵活的区域模型(分层:文件 → 类 → 函数 → 行)
  • 集成 mutmut 解析器
  • 自动检测框架
  • 统一解析器接口
阶段 2:图基础设施 ✅
  • 图模型(CodeGraph、Node、Edge)
  • 调用图提取(基于 AST)
  • ASR 提取器(导入/类分析)
  • 依赖图提取(模块级导入)
  • 根据调用图/依赖图构建拉普拉斯矩阵
  • Fiedler 向量计算(scipy.sparse.linalg)
  • 使用虚拟汇点/源点递归进行 Fiedler 分区
  • SCC 检测和分层凝缩
  • 平面子图识别(Boyer-Myrvold)
  • Kameda 预处理,实现 O(1) 可达性查询
  • MCP 工具(提取、分区、可达性、层级、查找)
阶段 3:多框架编排 ✅
  • 统一变异框架接口
  • cosmic-ray 解析器
  • poodle 解析器
  • universalmutator 解析器
Phase 4:信念修正引擎 ✅
  • 集成 py-brs 库(AGM 核心)
  • 证据适配器(突变结果 → 信念)
  • curate-ipsum 理论管理器
  • AGM 收缩(py-brs v2.0.0 已发布)
  • 根深度计算(py-brs v2.0.0)
  • 来源 DAG 存储与查询
  • 失败模式分析器
  • 回滚机制
Phase 5:综合循环 ✅
  • 使用 LLM 种子的 CEGIS 实现
  • 具备 AST 感知交叉操作的遗传算法
  • 熵监控与多样性注入
  • 反例导向突变
  • CEGAR 预算递增(10s → 30s → 120s)
Phase 6:验证后端 ✅
  • 集成 Z3 进行 SMT 求解(默认后端)
  • angr Docker 符号执行(高开销层级)
  • 带预算递增的 CEGAR 编排器
  • 验证测试框架构建器(生成 C 源代码)
  • 用于测试的模拟后端
  • 替代求解器(CVC5、Boolector)
  • SymPy 路径条件编码
Phase 7:图持久化 ✅
  • 抽象 GraphStore ABC
  • SQLite 图存储(主要)
  • Kuzu 图存储(可选)
  • 持久化综合结果
  • 持久化 Kameda & Fiedler
  • 增量更新引擎
Phase 8:RAG / 语义搜索 ✅
  • 集成 ChromaDB 向量存储
  • sentence-transformers 嵌入提供程序(all-MiniLM-L6-v2)
  • 图扩展 RAG 流水线(向量 top-k → 邻居扩展 → 重排)
  • 用于衡量时间相关性的衰减评分
  • 集成 CEGIS,实现上下文感知综合
Phase 9:生产环境加固 ✅
  • CI/CD(GitHub Actions — lint、测试矩阵、集成、锁文件)
  • 发布流水线(推送标签 → PyPI + GHCR + MCP registry)
  • uv 锁文件(149 个软件包)
  • pre-commit 钩子(ruff format + lint + 锁文件检查)
  • MCP bundle 打包(server.json、smithery.yaml、manifest.json)
  • HTML/SARIF 报告
  • IDE 扩展(VSCode)
  • 回归检测与告警

后续工作

高级编排(暂缓)
  • 隐式区域检测(谱异常)
  • 非矛盾框架分配
  • 跨框架生存分析
语义搜索与 RAG
  • 用于语义搜索的代码图 RAG
  • 语义搜索索引(ChromaDB)
  • 带图扩展的 RAG 检索流水线
  • 文本转 Cypher 查询

快速开始

# Clone and install (dev)
git clone https://github.com/egoughnour/curate-ipsum.git
cd curate-ipsum
uv sync --extra dev --extra verify --extra rag --extra graph --extra synthesis

# Run the MCP server
uv run curate-ipsum

# Or run tests
make test                     # fast suite (no Docker/model needed)
make test-all                 # including integration tests

配置

所有配置均通过环境变量设置(参见 .env.example):

CURATE_IPSUM_GRAPH_BACKEND=sqlite   # or kuzu
MUTATION_TOOL_DATA_DIR=.mutation_tool_data
MUTATION_TOOL_LOG_LEVEL=INFO
CHROMA_HOST=                         # empty = in-process, or localhost:8000
EMBEDDING_MODEL=all-MiniLM-L6-v2

完整服务栈(ChromaDB + angr runner)的配置:

make docker-up-verify         # starts Chroma + angr via Docker Compose

文档

规划与设计
架构
参考

关键参考文献

  • Alchourrón、Gärdenfors、Makinson(1985)。On the Logic of Theory Change
  • Fiedler(1973)。Algebraic Connectivity of Graphs
  • Kameda(1975)。On the Vector Representation of Reachability in Planar Directed Graphs
  • Solar-Lezama(2008)。Program Synthesis by Sketching(CEGIS)
  • Clarke 等人(2000)。Counterexample-Guided Abstraction Refinement(CEGAR)

许可证

MIT 许可证 - 请参阅 LICENSE


评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。