OpenCrab
MetaOntology OS MCP服务器插件
癌变是甲壳类动物向蟹状体型进化的趋势。 OpenCrab将相同的原理应用于代理环境: 所有足够先进的人工智能系统最终都会向本体结构形式发展。
OpenCrab是一个MCP(模型上下文协议)服务器,它公开了MetaOntology OS语法 适用于任何与OpenClaw兼容的代理环境——Claude Code、n8n、LangGraph等。
同伴: crabharness/ --一个基于插件的任务控制平面,计划证据收集,将繁重的爬行任务委托给Codex工作人员,通过三门管道验证工件,并发出OpenCrab就绪的推广包。看 CrabHarness自述.
______________________________________________________________________
新增功能(v1.5.0)
第1阶段——堆芯稳定
- 语法版本控制:
GRAMMAR_VERSION = "1.0.0"在每个清单响应中 - 类型架构注册表:中的YAML模式
schemas/types/—required,enum每个节点写入时的验证 - 收据ID:每
add_node/add_edge回报receipt_id + receipt_ts来源
阶段2——动作/工作流运行时
- 工作流引擎:SQL状态机(
pending → running → approved/rejected → completed/failed)具有完整的审核日志 - Approval发动机:链接到工作流运行的三个状态审批队列
- CrabHarness
promotion-apply:CLI命令+MCP工具,用于内联应用促销包
第三阶段——身份认同/规范化/推广
- 身份引擎:别名表+模糊重复检测——无自动合并,人工审核优先
- 规范化发动机:基于墓碑的节点合并--保留别名节点,
resolve_canonical()用于查找 - 促销引擎:完整的提取生命周期
candidate → validated → promoted | rejected与证据相联系
第4阶段——查询/推理升级
- BM25指数:对所有节点属性进行纯Python关键字搜索(无外部deps)
- RRF排名:交互秩融合合并向量+BM25+图结果;BM25交叉评分提高查询相关点击率
- 策略感知过滤:通过
subject_id到ontology_query结果由ReBAC过滤view许可
第五阶段——产品化
- 租户隔离:
tenant_id文字上印有上下文;X-Tenant-Id标头支持 - 计费挂钩:
billing_events表跟踪每个租户的节点写入/查询/摄取/升级 - 架构包:域捆绑包(
saas,biomedical,legal)只需一次MCP调用即可安装
MCP工具总数:30
______________________________________________________________________
建筑
┌─────────────────────────────────────────────┐
│ OpenCrab MCP Server │
│ (stdio JSON-RPC) │
└──────────────────┬──────────────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
┌───────▼──────┐ ┌────────▼───────┐ ┌────────▼───────┐
│ grammar/ │ │ ontology/ │ │ stores/ │
│ manifest.py │ │ builder.py │ │ │
│ validator.py│ │ rebac.py │ │ neo4j_store │
│ glossary.py │ │ impact.py │ │ chroma_store │
└──────────────┘ │ query.py │ │ mongo_store │
│ identity.py │ │ sql_store │
┌───────────────┐ │ canonicalize │ └───────┬────────┘
│ schemas/ │ │ promotion.py │ │
│ types/*.yaml │ │ bm25.py │ ┌─────────────▼──────────┐
│ packs/*.yaml │ │ reranker.py │ │ billing/ │
│ loader.py │ │ tenant.py │ │ hooks.py │
│ pack_registry│ └────────────────┘ └────────────────────────┘
└───────────────┘
┌──────────────────────────────────┐
│ execution/ │
│ workflow.py approvals.py │
│ action_registry.py │
└──────────────────────────────────┘元本体操作系统——9个空格
| 空间 | 节点类型 | 角色 |
|---|---|---|
| subject | 用户、团队、组织、代理 | 具有身份和代理的参与者 |
| 资源 | 项目、文档、文件、数据集、工具、API | 主体作用的工件 |
| 证据 | 文本单元、日志条目、证据 | 原始经验观察 |
| 概念 | 实体、概念、主题、类 | 抽象知识 |
| 索赔 | 索赔,协变量 | 派生断言 |
| 社区 | 社区,社区报告 | 概念集群 |
| 结果 | 结果、关键绩效指标、风险 | 可衡量的结果 |
| 杠杆 | 杠杆 | 可调控制变量 |
| 策略 | 策略、敏感性、批准规则 | 治理规则 |
元边关系语法
subject ──[owns, manages, can_view, can_edit, can_execute, can_approve]──► resource
resource ──[contains, derived_from, logged_as]──────────────────────────► evidence
evidence ──[mentions, describes, exemplifies]────────────────────────────► concept
evidence ──[supports, contradicts, timestamps]───────────────────────────► claim
concept ──[related_to, subclass_of, part_of, influences, depends_on]────► concept
concept ──[contributes_to, constrains, predicts, degrades]──────────────► outcome
lever ──[raises, lowers, stabilizes, optimizes]───────────────────────► outcome
lever ──[affects]─────────────────────────────────────────────────────► concept
community ──[clusters, summarizes]────────────────────────────────────────► concept
policy ──[protects, classifies, restricts]─────────────────────────────► resource
policy ──[permits, denies, requires_approval]──────────────────────────► subject______________________________________________________________________
快速开始
1.启动数据服务
docker-compose up -d这将启动Neo4j、MongoDB、PostgreSQL和ChromaDB。
2.安装OpenCrab
pip install -e ".[dev]"3.配置环境
opencrab init # creates .env from template
# Edit .env if your credentials differ from defaults本地模式(无需Docker):
STORAGE_MODE=local opencrab serve本地模式使用SQLite+JSON文件,不需要外部服务。
4.种子示例数据
python scripts/seed_ontology.py5.验证连接
opencrab status6.添加到克劳德代码MCP
claude mcp add opencrab -- opencrab serve或添加到您的 .claude/mcp.json 手动(见下文)。
7.运行查询
opencrab query "system performance and error rates"
opencrab manifest # see the full grammar______________________________________________________________________
克劳德代码MCP配置
添加 ~/.claude/mcp.json (或项目级别 .mcp.json):
{
"mcpServers": {
"opencrab": {
"command": "opencrab",
"args": ["serve"],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "opencrab",
"MONGODB_URI": "mongodb://root:opencrab@localhost:27017",
"MONGODB_DB": "opencrab",
"POSTGRES_URL": "postgresql://opencrab:opencrab@localhost:5432/opencrab",
"CHROMA_HOST": "localhost",
"CHROMA_PORT": "8000"
}
}
}
}本地模式(SQLite+JSON,无Docker):
{
"mcpServers": {
"opencrab": {
"command": "opencrab",
"args": ["serve"],
"env": {
"STORAGE_MODE": "local"
}
}
}
}______________________________________________________________________
MCP工具参考
核心本体(9个工具)
ontology_manifest
返回完整的MetaOntology语法,包括版本、空格、元边、影响类别和ReBAC配置。
ontology_add_node
{
"space": "subject",
"node_type": "User",
"node_id": "user-alice",
"properties": { "name": "Alice Chen", "role": "analyst" },
"tenant_id": "acme",
"subject_id": "user-alice"
}退货 receipt_id + receipt_ts。如果存在类型架构,则根据类型架构验证属性。
ontology_add_edge
{
"from_space": "subject", "from_id": "user-alice",
"relation": "owns",
"to_space": "resource", "to_id": "doc-spec"
}验证 (from_space, to_space, relation) 在写作之前,先对照语法进行三次复习。
ontology_query --混合查询(v2)
{
"question": "What factors degrade system performance?",
"spaces": ["concept", "outcome"],
"limit": 10,
"subject_id": "user-alice",
"tenant_id": "acme",
"use_bm25": true,
"use_rerank": true
}管道:向量相似性→ BM25关键字→ 图扩展→ RRF重新银行化→ 策略筛选器。
query_bm25
{ "question": "machine learning", "spaces": ["concept"], "limit": 10 }仅BM25关键字搜索。快速和确定性,无嵌入。
ontology_impact
{ "node_id": "lever-cache-ttl", "change_type": "update" }返回触发了I1-I7影响类别和受影响的邻居。
ontology_rebac_check
{ "subject_id": "user-alice", "permission": "edit", "resource_id": "ds-events" }退货 { "granted": true/false, "reason": "...", "path": [...] }.
ontology_lever_simulate
{ "lever_id": "lever-cache-ttl", "direction": "lowers", "magnitude": 0.7 }ontology_ingest
{ "text": "...", "source_id": "incident-2026-01", "metadata": { "space": "evidence" } }______________________________________________________________________
身份与规范化(7个工具)
identity_add_alias
注册 alias_id 作为别名 canonical_id.类型: name, merge, external.
identity_resolve_canonical
将节点ID解析为其规范形式。返回 is_alias: true 如果这是一个别名。
identity_propose_duplicate
建议两个节点作为潜在的重复节点,供人工审查。
identity_resolve_duplicate
接受或拒绝待处理的重复候选人。接受后,自动注册别名。
identity_list_pending_duplicates
列出所有待处理的重复候选者,按相似性排序。
canonicalize_merge_nodes
合并 alias_id 进入 canonical_id 使用墓碑模式——保留别名节点。
canonicalize_find_and_propose
查找具有相似名称的节点,并将其自动推荐为重复的候选节点。
______________________________________________________________________
促销生命周期(4个工具)
通过以下方式跟踪提取的实体: candidate → validated → promoted | rejected.
promotion_register_candidate
将提取的实体注册为晋升候选者(在正常查询中尚不可见)。
promotion_validate_candidate
将候选人标记为已验证,准备进行最终审核。
promotion_promote
晋升为 promoted 状态。可选择通过以下方式链接证据节点 supports 边缘。
promotion_reject
将候选人标记为拒绝,并注明可选原因。
______________________________________________________________________
工作流程和审批(3个工具)
workflow_create_run
在中启动可审核的工作流运行 pending 在执行任何敏感操作之前。
workflow_advance
将跑步提升到新状态(pending → running → approved/rejected → completed/failed).
approval_request
提交与工作流运行链接的审批请求。
______________________________________________________________________
CrabHarness集成(1个工具)
harness_promotion_apply
{ "package": { ... }, "dry_run": false }内联应用CrabHarness促销包。退货 receipt_id + receipt_ts 每写入一个节点/边。使用 dry_run: true 无需书写即可验证。
______________________________________________________________________
计费和使用(2个工具)
billing_get_usage
{ "tenant_id": "acme", "event_type": "query", "since": "2026-04-01T00:00:00Z" }按事件类型汇总租户的使用情况计数。
billing_list_events
租户最近的原始计费事件(最后N个)。
______________________________________________________________________
架构包(3个工具)
特定于域的模式包,在不接触核心模式的情况下扩展类型注册表。
schema_pack_list
列出具有安装状态的可用包。内置包: saas, biomedical, legal.
schema_pack_install
{ "name": "biomedical" }在中生成存根YAML类型模式 schemas/types/。现有的用户模式永远不会被覆盖。
schema_pack_uninstall
{ "name": "biomedical", "force": false }______________________________________________________________________
CLI参考
opencrab init Create .env from template
opencrab serve Start MCP server (stdio)
opencrab status Check store connections
opencrab ingest
Ingest files into vector store
opencrab query Run a hybrid query
opencrab manifest Print MetaOntology grammar全球旗帜:
opencrab --version
opencrab query --json-output
opencrab manifest --json-output
opencrab ingest -r
opencrab ingest -e .txt,.md ______________________________________________________________________
影响类别(I1-I7)
| ID | 姓名 | 问题 |
|---|---|---|
| I1 | 数据影响 | 哪些数据值或记录发生了变化? |
| I2 | 关系影响 | 哪些图边受到影响? |
| I3 | 空间影响 | 哪些本体空间被触及? |
| I4 | 权限影响 | 哪些访问权限发生了变化? |
| I5 | 逻辑影响 | 哪些业务规则无效? |
| I6 | 缓存/索引影响 | 哪些缓存或索引必须刷新? |
| I7 | 下游系统影响 | 哪些外部系统或API受到影响? |
______________________________________________________________________
活动元数据层
每个节点和边都可以携带正交元数据属性:
| 图层 | 属性 |
|---|---|
| 存在 | 身份、来源、血统 |
| 质量 | 自信、新鲜、完整 |
| 关系 | 依赖性、敏感性、成熟度 |
| 行为 | 使用、变异、效果 |
______________________________________________________________________
发展
make dev-install # install with dev extras
make up # start docker services
make seed # seed example data
make test # run test suite
make coverage # test + coverage report
make lint # ruff linter
make format # black + isort
make status # check store connections运行集成测试
OPENCRAB_INTEGRATION=1 pytest tests/ -v项目结构
opencrab/
├── grammar/ # MetaOntology grammar (manifest, validator, glossary)
├── schemas/ # Type schemas (YAML), schema packs, loader
│ ├── types/ # Per-node-type YAML schemas (required/enum validation)
│ └── packs/ # Domain packs: saas, biomedical, legal
├── ontology/ # Core engines
│ ├── builder.py # Node/edge write with receipt IDs + schema validation
│ ├── query.py # Hybrid query: vector + BM25 + graph + RRF reranker
│ ├── bm25.py # Pure Python BM25 index
│ ├── reranker.py # RRF + BM25 cross-score fusion
│ ├── identity.py # Alias table + duplicate candidate detection
│ ├── canonicalize.py # Tombstone-based node merge
│ ├── promotion.py # Extraction lifecycle (candidate → promoted)
│ ├── tenant.py # Tenant isolation context + property stamping
│ ├── rebac.py # Relationship-based access control
│ └── impact.py # I1–I7 impact analysis
├── execution/ # Workflow & approvals runtime
│ ├── workflow.py # WorkflowEngine state machine
│ ├── approvals.py # ApprovalEngine queue
│ └── action_registry.py # YAML action schemas
├── billing/ # Usage metering
│ └── hooks.py # BillingHooks — billing_events table
├── stores/ # Store adapters (Neo4j, ChromaDB, MongoDB, PostgreSQL, Local)
└── mcp/ # MCP server (stdio JSON-RPC) + 30 tool definitions
tests/ # Test suite
scripts/ # Seed script
crabharness/ # Evidence collection pipeline
docker-compose.yml # All data services______________________________________________________________________
CrabHarness——任务控制飞机
crabharness/ 是OpenCrab的配套数据收集管道。它拥有“我们该怎么办 *得到* OpenCrab拥有“本体是如何构造和查询的”层。
CrabHarness添加了什么
| 能力 | 描述 |
|---|---|
| 插件工作者 | 放下a worker.manifest.json + adapter.py 进入 codex_workers/ 目录中出现了一个新的收集器——核心没有变化。 |
| 任务第一规划师 | 声明性 mission.json 挑选工人 target_object +标签匹配,而不是硬编码管道。 |
| 三门验证 | 每个工件包都在以下方面得分:(1)完整性,(2)语义相关性,(3)自动搜索判断。 |
| 收集重复数据 | .seen.json 带有SHA256 ID的侧面索引 harvest 收集模式。 |
| 促销套餐 | 构建OpenCrab节点/边缘包-- 从不直接突变OpenCrab. |
| MCP本地应用 | harness_promotion_apply MCP工具从Claude内联应用软件包,无需文件I/O |
快速入门
cd crabharness
pip install -e .
crabharness catalog
crabharness run missions/examples/github-trending-harvest.json
crabharness promotion-apply artifacts/runs///promotion_package.json与OpenCrab集成
CrabHarness以纯JSON格式生成推广包。通过以下方式应用它们:
- 命令行界面: `crabharness promotion-apply
`
- 主控程序:
harness_promotion_apply { "package": { ... } }
这 dry_run: true flag无需书写即可验证语法和模式。
______________________________________________________________________
许可证
麻省理工学院——见 许可证.
______________________________________________________________________
*OpenCrab:抵抗是徒劳的。你的代理将成为一个本体论。*
