Growmos

com.codician由 codician.com 发布v0.1.5更新于 Oct 24, 2026

Living knowledge graph for your repo: query with citations, remember/link facts, fact-check claims.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

Growmos 是一个本地 MCP 服务器,为助手提供随仓库生长的持久知识图谱,答案可带引用。

可以做什么
查询图谱:按 k 跳子图检索并返回边引用,也可按名称或描述查找单个实体,让回答基于出处而非片段回忆。写入图谱:记住实体、用简短谓词建立关系、追加日志条目,每条都带会话出处标记。核对与体检:用图谱边对声明做事实核查,查看图谱状态、健康指标与抽样。驱动抽取流程:获取下一个任务包,并把助手产出的 JSON 应用回存储。
适用场景
适合在代码库上进行长期或多智能体协作、上下文在会话间丢失、且问题需要跨多份文档串联的场景,例如某个被替换的组件有哪些依赖、由谁决定。也适合希望把文档、架构决策记录和设计笔记作为可 diff 的共享记忆随仓库提交的团队。
运行要求
本地 Python 3.9 或更高版本,安装 growmos 包(pip、pipx 或 uv),以 growmos mcp 的 stdio 命令运行。仓库需先用 growmos init 初始化,生成 .growmos 存储。MCP 工具本身无需 API 密钥;可选的无头 ingest 模式使用 ANTHROPIC_API_KEY、OPENAI_API_KEY 或 XAI_API_KEY。
安装前请注意
写入类工具(remember、link、journal、apply)会修改仓库内 .growmos 存储中的文件,该目录通常要提交,推送前请检查差异。存储会记录文档内容和会话笔记,避免摄入机密信息。可选的无头 ingest 会把文档内容发送给第三方模型提供商并产生 API 费用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Growmos,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

growmos

[PyPI] [CI] [Python] [MIT] [zero dependencies]

A living knowledge graph that grows with your repo. Shared, provenance-carrying memory for humans and AI agents — plug & play with Claude Code, Codex, Grok, Cursor, Gemini, or any MCP-capable CLI. Zero dependencies. MIT.

"Each agent's memory dies with its context window." growmos is the layer underneath: the durable, queryable world model that lets today's session pick up where yesterday's left off — and lets five agents share one picture of the codebase without passing it through anyone's context window.

Built by Codician as an open, tool-agnostic implementation of the knowledge-graph methodology described in Knowledge Graph Engineering for Multi-Agentic Systems: The Anthropic Playbook (extraction → resolution → assembly → querying, with an evaluation loop closing the circle). See METHODOLOGY.md for the full methodology.

   docs, ADRs, READMEs, sessions ──▶ 1. Extraction ──▶ 2. Resolution ──▶ 3. Assembly ──▶ 4. Querying                                     (agent packet)    (agent packet)    (deterministic)  (grounded answers,                                                                                            edge citations)                     ▲                                                                            │                     └──────────────── growmos remember / link / journal  ◀── agents develop ◀────┘                                       evaluation loop: change prompt → growmos eval → watch F1 move

▶ Live demo — click around growmos's own graph · Apollo corpus demo · site

[growmos view — interactive graph explorer]

growmos view — after a few days of development, this is what lays in your graph: hubs sized by degree, colored by type, every edge with provenance, profiles on click.

Why

Multi-agent systems and long-running coding sessions share one weakness: memory dies with the context window. RAG surfaces chunks but cannot chain facts. A knowledge graph — entities as nodes, short-verb-phrase relations as edges, every edge carrying provenance — turns multi-hop questions ("what depends on the thing we replaced in ADR-7, and who owns it?") into graph traversal, gives evaluators ground truth instead of vibes, and survives restarts.

growmos makes that a living organism inside your repo:

  • It eats what you write. Docs, ADRs, READMEs, design notes, sessions. Content-hashed; only what changed goes back into the pipeline (incremental by construction).
  • It grows as agents develop. growmos remember / link / journal are one-line write paths with provenance (session:2026-08-17). Git hooks queue changed docs after every commit.
  • It resolves itself. New names are matched against the canonical set; unmatched names become provisional single-element clusters (nothing is ever silently lost); the agent then clusters provisional entities using descriptions ("Edwin Aldrin" → "Buzz Aldrin").
  • It answers with citations. growmos query serializes the k-hop subgraph around a question; the answer must cite edge ids; growmos check fact-checks claims against edges.
  • It measures itself — with no manual step. growmos next also hands out gold-set packets (the agent writes the reference answer from the source document) and periodic review packets (verify one node's edges against its sources), so growmos eval (P/R/F1, raw and resolved), the 10-item growmos doctor checklist and the health signals (components, density, compression) all stay green on autopilot. Every gold file records who reviewed it (agent / human) — humans can overrule at any time, but never have to.
  • It shows itself. growmos view opens a self-contained, offline interactive explorer (force layout, search, type filters, click a node for its profile, edges and provenance) — no server, no dependencies. growmos export --format html|json|dot|mermaid|cypher|sql for everything else.
  • It is agent-native. No API key needed: the CLI does the deterministic work, and hands the judgment work (extraction, resolution, summarization) to whatever agent you already run as a task packet — prompt + JSON shape + the exact growmos apply … command. Optional headless mode (growmos ingest) calls Anthropic / OpenAI-compatible / xAI APIs for cron & CI.

Install

bash
pip install growmos          # or: pipx install growmos / uv tool install growmos

Python ≥ 3.9, no dependencies. (From source: pip install .)

60-second start

bash
cd your-repogrowmos init                 # creates .growmos/, detects your agent CLI, wires it, scans docsgrowmos next                 # → first task packet (extraction of README.md)

From here it runs itself:

  • Claude Code (hooks): at session start the brief is injected and, if work is pending, the agent is told to run the loop; at the end of a turn a Stop hook scans your docs and, if new packets appeared, keeps the agent going until the graph is up to date and journaled. You never have to ask.
  • Codex / Grok / Cursor / Gemini (no hooks): the same protocol lives in AGENTS.md / .cursor/rules — "if the brief shows pending work, run the loop before you stop." Agents follow it; you can still say "grow the knowledge graph" or "what does the graph say about X?".
  • Nobody at the keyboard: git hooks queue changed docs after every commit, and growmos ingest on cron/CI (headless mode) does the whole loop with an API key.

Manually, the loop is:

bash
growmos next                                 # packet: prompt + shape + apply command#   … agent produces the JSON …growmos apply extraction out.json --source src_ab12 --chunk 0growmos next                                 # → resolution → profiles → gold set → review → "up to date"growmos query "what depends on the Store and who decided that?"growmos remember "Scheduler" --type COMPONENT --desc "Schedules jobs; depends on Store."growmos link "Scheduler" "depends on" "Store"growmos journal "Moved Store to Postgres (ADR-001)."growmos check "(Alice Chen) --[owns]--> (Scheduler)"growmos view                                 # open the interactive explorer in your browsergrowmos status · growmos context · growmos doctor · growmos eval · growmos sample

Plug & play with agent CLIs

CLIgrowmos init --agent … writesHow the agent uses it
Claude CodeCLAUDE.md block, .claude/skills/growmos/SKILL.md, SessionStart/Stop hooks in .claude/settings.json, .mcp.jsoncontext injected at session start; skill triggers on graph-related asks; MCP tools
Codex CLIAGENTS.md block (+ optional MCP server)Codex reads AGENTS.md; run growmos mcp as an MCP server if you prefer tools
Grok CLI / othersAGENTS.md block, .mcp.jsonany CLI honouring AGENTS.md or MCP
Cursor.cursor/rules/growmos.mdc (alwaysApply)rules loaded in every chat
Gemini CLIGEMINI.md blocksame protocol
Any filegrowmos integrate file --file path/to/instructions.mdappend the protocol block anywhere
gitgrowmos integrate hooks → post-commit, post-merge, post-checkoutqueue changed docs automatically
CIgrowmos integrate ci → .github/workflows/growmos.ymldoctor + eval on every PR
MCPgrowmos integrate mcp → .mcp.json (+ .cursor/mcp.json)tools for any MCP client (below)

growmos init --agent all does all of the above. Everything is idempotent (marker blocks, JSON merges).

MCP server (any MCP-capable client)

growmos mcp is a zero-dependency MCP stdio server. Register it the same way you register any MCP server — growmos integrate mcp writes this for you, or paste it yourself:

json
{  "mcpServers": {    "growmos": {      "command": "growmos",      "args": ["mcp"]    }  }}
ClientWhere
Claude Code.mcp.json in the repo (written by growmos init / integrate claude), or claude mcp add growmos -- growmos mcp
Cursor.cursor/mcp.json (written by integrate cursor / integrate mcp)
Codex CLI~/.codex/config.toml: [mcp_servers.growmos] command = "growmos" args = ["mcp"]
Gemini CLI~/.gemini/settings.json → mcpServers.growmos as above
Grok CLI / otherstheir MCP config, same JSON

mcp-name: com.codician/growmos

Tools exposed: growmos_context, growmos_query, growmos_entity, growmos_search, growmos_remember, growmos_link, growmos_journal, growmos_check, growmos_next, growmos_apply, growmos_status, growmos_sample. Once registered, the agent calls them directly instead of shelling out — e.g. "what depends on the Store?" → growmos_query; "remember that Scheduler now uses Kafka" → growmos_remember + growmos_link; "grow the graph" → growmos_next / growmos_apply in a loop.

What lives in .growmos/ (commit it)

.growmos/  config.json       include globs, caps (max_docs_per_run, max_entities_per_doc), provider  schema.json       versioned entity types + predicate hints (bump on change; rows carry schema_version)  state.json        the loop's state file: runs, pending re-summarizations, last sample/eval  sources.jsonl     every document eaten: ref, sha256, status (pending|extracted|note|missing)  mentions.jsonl    raw per-document extraction output (append-only provenance)  entities.jsonl    canonical nodes (id, name, type, description, sources, mentions, provisional)  aliases.jsonl     alias → entity (the alias map)  relations.jsonl   edges: source, predicate, target, sources[], confidence (= corroborating docs)  profiles/*.json   hub-node profiles (summary, key facts, time range), keyed to source-set hash  prompts/*.md      the four playbook prompts + evaluator prompt — yours to tune  eval/gold/*.json  hand-labelled gold sets · eval/aliases.json scorer alias map  journal.md        the shared memo, append-only

Plain JSONL: diff-able, merge-friendly, greppable, viewable (growmos view) and exportable (growmos export --format html|json|dot|mermaid|cypher|sql). Storage is an infrastructure decision, not a pipeline decision: the same schema maps onto Neo4j or three Postgres tables.

Configuration & big projects

Everything tunable lives in .growmos/config.json (growmos config <key> [value]). Defaults are sized for a normal repo; for a big one, three knobs matter:

  • max_docs_per_run (default 50/day) — a speed bump against runaway unattended runs, not a wall. When you or your agent are driving a backfill: growmos next --force or growmos config max_docs_per_run 0. Agents are told this, so they won't stall on it.
  • include / exclude — which docs are knowledge (READMEs, ADRs, design docs by default; never source code — agents write what code means via remember/link).
  • chunk_chars (6 000) — packet size for long documents.

Full reference (all keys, monorepos, cost notes): docs/configuration.md.

Presets

growmos init --preset software|general|research|business — same prompts, extended entity vocabulary (the playbook's five base types + domain types). growmos remember --type NEWTYPE extends the schema on the fly (schema version bumps).

Headless / overnight mode (optional)

bash
export ANTHROPIC_API_KEY=…    # or OPENAI_API_KEY / XAI_API_KEY, or GROWMOS_PROVIDER + GROWMOS_BASE_URLgrowmos ingest --scan          # extraction (fast model) → resolution → profiles (reasoning model)growmos query "…" --auto

Follows the playbook's model split (a fast model for high-volume extraction, a stronger model for judgment). Cap runs with max_docs_per_run (default 50/day; growmos next --force or growmos config max_docs_per_run 0 when you're driving a big backfill). Prompt caching and batching are the natural next optimizations for large corpora.

Operational discipline (baked in)

  • Sample the graph — growmos sample (doctor warns after 7 days).
  • Cap extraction volume — max_docs_per_run (50/day; a speed bump, not a wall: growmos next --force, or growmos config max_docs_per_run 0 for a big backfill), max_entities_per_doc.
  • Version the schema — growmos schema bump --note … --add-type ….
  • Never lose a name — unmatched names get single-element clusters.
  • Every edge has provenance — and a corroboration count.
  • Re-summarize only when the source set changes — profiles carry a source-set hash.
  • Watch connectivity & density — growmos status prints components / density / compression.

Docs

Contributing

PRs welcome — see CONTRIBUTING.md. Run python -m unittest discover -s tests.

MIT © 2026 Codician. Not affiliated with Anthropic; the methodology it implements is a synthesis of Anthropic's public knowledge-graph cookbook and agent-pattern writing.

来源:README.md,提交 510deb2

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.5最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分