
Weavatrix
io.github.sergii-ziborov由 GitHub 帳號 sergii-ziborov 發布v1.9.0更新於 Oct 24, 2026
Native Weavatrix MCP: 43 read-only repository tools across 24 code and configuration surfaces.
概覽
唯讀的儲存庫智慧服務:以修訂綁定的程式碼圖提供 67 項操作,用於影響範圍、架構、API、Git 與工作流程匯出分析。
- 可以做什麼
- Weavatrix 會將儲存庫索引成一張修訂綁定的證據圖,並透過 MCP 提供 67 項唯讀操作。工具涵蓋圖結構導覽、變更影響、精確原始碼脈絡、健康與品質檢查、API 與傳輸鏈路追蹤、架構驗證、Git 歷史,以及向量檢索與語意連結等原生擴充。額外領域可解析匯出的 n8n 工作流程、Dify YAML 應用、Agent 外掛/技能/MCP 目錄、Mermaid 圖與 Web3 ABI 消費端。每個有界結果都可帶出儲存庫修訂、檔案、行號、擷取器、證據類型與信心程度。
- 適用情境
- 當程式碼助理在修改前需要儲存庫證據時使用:改動某個檔案會影響什麼、該選哪些測試、誰消費某個 API 或工作流程欄位、架構契約是否仍然成立、某檔案在較早提交中是什麼樣子。適合唯讀的影響範圍與溯源問題,比 grep 或把整個儲存庫塞進提示詞更合適。
- 執行需求
- 以 npm 套件透過 npx 啟動(或經 Cargo 安裝),在本機以 stdio 執行。npm 發行版需要 Node.js;預編譯原生二進位檔涵蓋 Windows、macOS 與 glibc Linux 的 x64 和 arm64。未宣告認證、API 金鑰或環境變數。套件約 40 MB,首次啟動可能超過用戶端預設的啟動逾時。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Weavatrix,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Weavatrix — native MCP repository intelligence
[Weavatrix logo][CI] [npm] [crates.io] [engine] [MIT]
Part of the Weavatrix ecosystem: evidence infrastructure for AI software agents.
Give your coding agent repository evidence before it starts guessing.
Weavatrix is the native MCP product that answers the questions agents
otherwise invent: what breaks if this file changes, who consumes this n8n
field, whether an MCP schema still accepts yesterday’s request, which
viem call sites follow an ABI layout change, and whether
.weavatrix/architecture.json still holds. 67 read-only operations,
one revision-bound graph, no LSP and no prompt pack.
Codex, Claude Code, Cursor, and Grok get impact, architecture, APIs, Git
history, duplicates, dead code, search, semantic links, temporal memory,
exported n8n workflows (n8n_*), Dify YAML apps (dify_*), Agent
Plugins/Skills/MCP catalogs (agent_*), Mermaid flowcharts (diagram_*),
and Web3 ABI/consumer impact (web3_*). Those parsers are domains on
Weavatrix Core, not new MCP products. Dedicated pages:
n8n · Dify ·
parsers.
It does not answer from a larger grep or an invented confidence score. Every bounded result can carry the repository revision, file, line, extractor, evidence kind, and confidence that produced it.
Adjacent MCP tools (not this host)
This repository is the stdio MCP host and plugin pack. It pins
weavatrix-rust. It does not grow a second indexer, and it does not compete
with the engine crate for the same README story.
The host’s unique job is transport: profiles, watching, npm/crate distributions, and the 67-tool catalog over one engine session. Measured engine times live in weavatrix-rust benchmarks, not here.
Ecosystem place (UNDERSTAND)
Loom consumes Weavatrix facts for semantic classification (e.g. “this fn
is a candidate for data.json.parse@1”). Loom must not grow a second product
code indexer. Normative Loom side: ADR-0012.
The same source is distributed in two forms:
The npm package exists for convenience; it does not contain a different
JavaScript engine. Both distributions run the same native adapter and the same
weavatrix-rust analysis engine. The separately versioned weavatrix-js
package is the legacy JavaScript implementation used for compatibility and
historical baselines; it is not bundled into weavatrix.
Install as a plugin
The repository ships one plugin bundle for Cursor, Codex, Claude Code, and Grok Build. Each client starts the published native npm distribution and loads the same read-only MCP tools. Its optional Weavatrix skill activates only for tasks that benefit from indexed, cross-file evidence; detailed tool routing is loaded separately when needed.
Cursor plugin
Search for Weavatrix in Cursor's Plugins view after its marketplace review
is complete. The bundle can be tested before listing by copying or linking
plugins/weavatrix to
~/.cursor/plugins/local/weavatrix and reloading the Cursor window.
Codex plugin
Claude Code plugin
Grok Build plugin
Open /marketplace and install Weavatrix. Grok also accepts the plugin
directly with
grok plugin install Weavatrix/weavatrix#plugins/weavatrix.
Install in 30 seconds
Run the convenient prebuilt npm distribution:
Or install the same MCP product through Cargo:
Codex
Claude Code
Grok
Everything after -- is the server command, so -y reaches npx instead of
Grok. The equivalent hand-written entry:
The package unpacks to roughly 40 MB, so the first npx launch can spend
longer fetching it than Grok's 30-second default startup timeout allows.
startup_timeout_sec covers that once; npm i -g weavatrix or
cargo install weavatrix removes the cold start for every later session.
Use --scope project to write .grok/config.toml inside a repository instead,
so a clone carries the server with it.
Cursor
Prefer the Cursor plugin (it already passes ${workspaceFolder}). For a
hand-written user entry, pin the server to the open workspace — not the host
process cwd — and avoid running both a user MCP and the plugin at once:
Profiles expose bounded views of the same engine:
The npm package contains native binaries for Windows x64/arm64, macOS x64/arm64, and glibc Linux x64/arm64. It has no install script and performs no runtime download.
Halve every answer on a client that reads structured output
An MCP result carries the payload twice: once as structuredContent, and once
mirrored into a text block for clients that read only content. The mirror is
the pretty-printed copy, so it is the larger of the two.
Measured on run_audit over a real repository, the response falls from 8931 to
3589 bytes, 59.8% smaller. Whether a client reads structured output does
not change between calls, so it is chosen once at startup rather than restated
as an argument on every call; WEAVATRIX_OUTPUT_FORMAT=structured does the
same where a flag is awkward, and a call that names its own output_format
still wins.
json is the default and keeps the mirror, because a client that ignores
structuredContent would otherwise see an empty result. text returns only
the text block, but that block still contains serialized JSON; it is not a
summary mode. For an architecture question, call architecture_inventory
without arguments and summarize its bounded style hypotheses in prose.
What the new domains actually answer
What an agent can ask
The graph is built once per revision. Impact, API traces, health findings, architecture checks, clone families, and context bundles therefore agree about repository identity instead of recomputing incompatible partial views.
See it answer
Real answers from Weavatrix analyzing its own repository at commit
ec8bf30, abridged (…) and with the local root shortened. Reproduce any of
them with weavatrix tool <name> . '<arguments>'.
Orient in one call — and know exactly which repository and revision answered:
Every answer carries that repository_context block. From 1.11.1, each MCP
process pins its launch root for the session: open_repo to another path is
refused unless you started with --allow-retarget, and omitted
expected_repository is filled from that pin. Still pass
"expected_repository": "weavatrix" when you already know the folder name — a
mismatched server fails loudly instead of answering about the wrong repository.
Blast radius before you edit:
The file as it was — no checkout (git_read_blob):
Three commits before ec8bf30 this package was 1.9.2; the agent reads that
follow-up to a diff without touching the worktree. Binary blobs fail closed
instead of being decoded into garbage.
The 67 read-only operations
| APIs and transports | list_endpoints, trace_endpoint, trace_api_contract |
| Architecture | architecture_inventory, get_architecture_contract, verify_architecture, verify_capabilities, explain_architecture_violation, propose_architecture_exception |
| Local CI | ci_restrictions, explain_restriction |
| Git and repositories | git_history, git_read_blob, cross_repo_git, open_repo, list_known_repos, rebuild_graph |
| Native extensions | vector_search, semantic_link, seo_link_suggestions, memory_context |
| n8n workflows | n8n_inventory, n8n_trace, n8n_context |
| Dify apps | dify_inventory, dify_trace, dify_context |
| Agent packages | agent_inventory, agent_trace, agent_context, agent_change_impact |
| Mermaid diagrams | diagram_inventory, diagram_trace, diagram_context |
| Web3 integration | web3_inventory, web3_trace, web3_impact, web3_context |
coverage_map is an ingest, not a test runner. Pair it with Weavatrix
Quality quality_run, which writes .weavatrix/coverage/lcov.info onto
the engine search path. A missing report is unmeasured, not 0%.
Every operation is read-only with respect to the analyzed repository. Pagination and explicit limits bound large neighborhoods, histories, searches, and contract inventories.
build_graph and architecture_inventory now share one typed build model.
architecture_inventory defaults to detail:"summary": complete graph
totals, representative component paths, dominant coupling, and clearly
labeled cycle candidates in a bounded response. It also reports independent
style hypotheses for modular source organization, onion dependencies,
ports-and-adapters, layered dependencies, and deployment topology. Each
hypothesis states its evidence, contradictions, unknowns, and status; the
declared contract style is never treated as proof. Request detail:"full" for
paged edges and source evidence; output_format:"text" does not reduce detail.
In Rust, an explicit impl Trait for Type can support onion or
ports-and-adapters findings; an inherent impl Type cannot.
They preserve nested Cargo, npm/TypeScript, Go, and Python components,
many-to-many declared memberships, collision-free identities, configuration
predicates, and immutable source evidence. Component totals and SCC/cycle
witnesses are computed on the complete projection before pagination, so a
response cap cannot change the graph verdict. Quotient component cycles are
reported as architectural cycles, not mislabeled as symbol recursion.
ci_restrictions reuses that target-aware topology while reading local GitHub
Actions workflows and literal checks. Root files, repeated commands, UTF-8 BOM
offsets, optional events, base branches, and changed-path scenarios retain
their exact evidence. Dynamic conditions, mutually exclusive configuration
unions, actual runs, and remote required checks remain explicit unknowns; a
workflow file alone never establishes a passing gate.
Languages and repository surfaces
The engine recognizes 24 named surfaces across 65 registered extensions. Support is evidence-specific: lossless tokenization is not presented as typed semantic resolution.
Cross-surface passes connect HTTP routes and calls, GraphQL operations and schema types, gRPC services and streaming modes, and Kafka, RabbitMQ/AMQP, JMS, NATS, SQS, and SNS producers and consumers. Package manifests, lockfiles, coverage artifacts, and architecture contracts become evidence too.
Dynamic dispatch that cannot be proved stays unresolved. Static reachability is not called measured coverage, and absent optional evidence remains explicitly absent.
Workflow export domains
n8n and Dify are not new MCP servers, editors, or runtimes. They are domains
on the same evidence graph. JSON still goes through the JSON adapter; YAML
still goes through the Kubernetes adapter. After parse, a recognized export
becomes typed nodes, ports, and relations. A package.json does not become
an n8n workflow. A Kubernetes ConfigMap does not become a Dify app.
Product pages: n8n · Dify · parsers.
n8n (shipped in 1.12.0)
Exported workflow JSON → n8n_inventory, n8n_trace, n8n_context.
Use this when the question is about an export already in git: who reads this field, which node feeds that output, what this file actually contains. The agent stays on the repository revision. It does not log into n8n.
- Identities are scoped per file. The same display name in two workflows
stays two nodes; a short label that hits both is
ambiguous. flows_tois control flow.depends_on_outputis data. They are not walked as one relation.- Every
$('Name')/$node/$itemsoccurrence is bound, not the first match only..itemand.first()stay distinct. A dynamic$('' + prefix)isunresolved:dynamic_node. typeVersion1.7is not coerced to an integer.- Missing subworkflows are “not provided”, not “deleted”.
- Secrets, cookies, auth headers, URL credentials,
pinData,staticData, and$envvalues stay off the default graph and context.
Dify (shipped in 1.13.0)
Exported DSL YAML → dify_inventory, dify_trace, dify_context.
Use this when the question is about a local YAML export: which nodes consume
start_node.query, which Code or Template regions mention a selector, what
the export omitted. The agent stays on the repository revision. It does not
call the Dify console.
AppKeyis corpus + artifact origin.data.titleis display only.- Node subject type is
node.data.type, not the canvascustomUI type. - Iteration / loop children keep
parentIdscope. They are not flattened. {{#start_node.query#}}markers and structured selectors becomereads_variable/depends_on_outputwith source spans.- Conversation assigner reads and writes stay typed. Code and Template regions are inventoried, not executed.
- Chat and other modes are recognized. An unsupported mode is
structure_only, not a successful empty graph. - Environment values and credential-shaped labels are omitted from default inventory and context.
Agent packages (shipped in 1.14.0)
Local plugin, skill, catalog, and observation files → agent_inventory,
agent_trace, agent_context, agent_change_impact.
Use this when the question is about a package already in git: which catalog
tools a plugin exposes, which MCP config binds a server, whether two catalog
snapshots stayed compatible on the supported schema subset. Unsupported
keywords stay undetermined. Duplicate tool labels are
ambiguous-identity. The agent does not launch commands, and
allowed-tools is a declaration, not a proven call.
Mermaid diagrams (shipped in 1.14.0)
.mmd, .mermaid, and Markdown/MDX fences → diagram_inventory,
diagram_trace, diagram_context.
Drawn arrows are declared_architecture, never Calls. They do not clear
dead-code findings. Bindings come only from .weavatrix/diagram-links.json.
Name match is not exact. change_impact.documentation is separate from
production impact.
Web3 integration (shipped in 1.15.0)
ABI JSON, supplied solc/Foundry artifacts, and static viem/wagmi
consumers → web3_inventory, web3_trace, web3_impact, web3_context.
Use this when a contract interface changed and you need the proven client
call or decoder sites. Consumers stay on the paired artifact files. A
missing candidate is missing_input, not a removed member. Comment
properties inside a call object are not the callee. An indexed-mask event
change can silently misdecode. ABI equality is not a live deployment
proof. The engine does not compile contracts, call RPC, or open a wallet.
Compared with adjacent tools
These tools solve different jobs. Weavatrix does not replace a live console or a CI linter.
Weavatrix answers “who consumes this variable in this repository revision?” It does not execute expressions, Jinja, or Code nodes, and it does not deploy or publish the app.
Shared engine bench
n8n and Dify evidence is produced in-process after parse. There is no HTTP hop to an n8n or Dify host for those tools. We do not invent per-parser millisecond numbers.
The measured installed MCP boundary (2026-08-03, packaged 1.2.0 /
weavatrix-rust 2.1.1 vs weavatrix-js 0.3.15, same JavaScript service
repository) is the honest engine figure those domains share:
Methodology: Release evidence and
docs/benchmarks.md.
What this is not
No expression or Jinja execution. No n8n or Dify deployment. No automatic edits. No new graph engine. Unknown DSL versions and hidden export fields are not pretended as full support.
Product boundary
Weavatrix is deliberately split into a protocol-independent engine and a thin product adapter:
This repository owns the MCP transport, watcher, native npm packaging, and
client-facing identity weavatrix. The
weavatrix-rust crate owns
the reusable engine and standalone diagnostic CLI; it is not an MCP server.
weavatrix-stream is a
separate crate that provides adapters for Weavatrix observations; this
host does not take a runtime dependency on it.
Its separate binary therefore reports weavatrix-rust <engine-version> from
--version, while this product reports both the weavatrix product version
and its embedded engine version.
Rust applications that want to embed the engine should depend on the crate:
Release evidence
The release gate measures the installed npm boundary, not an in-process microbenchmark. Each side is packed, installed into an isolated npm root, and started with empty HOME, XDG, AppData, and graph caches. The harness validates package/native/initialize identity, advertised operations, successful MCP results, and process cleanup.
The packaged 1.2.0 product, backed by weavatrix-rust 2.1.1, was measured on
2026-08-03 against installed weavatrix-js 0.3.15 on the same real
JavaScript service repository (2,165 nodes / 5,712 edges), three paired fresh
processes per tool with alternating start order:
Both release thresholds (24x cold, 30x warm) passed, and the paired cold
median sits slightly above the 30.34x recorded for the 1.0.0 baseline, so the
three new tools, token budgets, and dependency-injection evidence did not
regress the installed boundary. Raw evidence and methodology live in
benchmark-results and
docs/benchmarks.md.
Safety and determinism
- read-only MCP surface;
- no source-writing operation;
- no execution of repository code;
- no spawned
git,rg, language server, Node, or Python from the native engine; - no network path in repository analysis;
- no npm install script or post-install binary download;
- bounded files, bytes, results, histories, and pagination;
- stable ordering and revision provenance;
unsafeRust forbidden in first-party engine crates;- MIT license for the product, engine, and maintained first-party components.
Filesystem watching only invalidates derived state. The next operation performs
a bounded refresh; it never edits the repository. Watching costs constant
memory: every event is classified as it arrives and collapses into one pending
change flag, so build output churning under target/ or node_modules/ never
accumulates in a server that is sitting idle between tool calls.
Architecture and development
The product adapter follows ports and adapters:
mcport is isolated to the inbound server. The application layer sees neither
MCP frames nor notify events, and the engine sees neither dependency.
Local gates:
Native npm artifacts are built by scripts/build-npm-packages.mjs; publication
is performed by the protected GitHub Actions workflow after all platform
binaries, identity checks, package checks, and installed-boundary gates pass.
Documentation
- Getting started
- Tool reference
- Evidence model
- Language support
- MCP product architecture
- npm distribution
- Dependencies
- Benchmarks
- n8n export evidence
- Dify export evidence
- Workflow parsers
- Engine API and architecture
License
MIT. See LICENSE.
來源:README.md,提交 1483c17
工具
0版本歷史
1- v1.9.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分

