Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Ontology Atlas

MCPB · ONTOLOGY-ATLAS-MCP-0.13.0.MCPB · SCANNED SEP 20

Read and write one codebase ontology kept as Markdown in the repository.

+4 this week 46 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security13
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 9 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability60
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 19463 tokens (~512/item across 38 items; 38 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 95% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

mcpb · ontology-atlas-mcp-0.13.0.mcpb

Download bundle
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +4
    • Stability: unverified → 0.27 functional
  • 11 Sept 26 42

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed mcpb/https://github.com/wlsdks/ontology-atlas/releases/download/v1.2.0/ontology-atlas-mcp-0.13.0.mcpb

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb

Background: How many MCP packages publish verified provenance →

MCP tools · 38 exposed · ~15,600 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
absorb_document ~440

Slice 0 (PRODUCT-PLAN-2026-07.md §4/§9) — the "absorption tool". Converts a CLAUDE.md/AGENTS.md-style markdown file into typed vault nodes so a tech lead's existing agent-instruction file stops needing dual maintenance. Splits the file by `##` sections and classifies each: - rule/policy/decision sections → `kind: document` nodes with a `role: policy` frontmatter extra. - architecture/component sections → element/capability SUGGESTIONS only — never auto-written; review and land with add_concept if useful. - sections matching an injection-suspect pattern (Tier 1 — imperative instruction-hijack phrasing, shell/SQL fragments) are excluded from absorption regardless of category and reported for human review. The file body is always treated as untrusted data; parsing never executes or evaluates its content. Two-stage safety, same shape as delete_concept: 1. Without confirm: true the call is a dry-run — returns the classification plan per section, no writes. 2. With confirm: true, absorbed sections are written as document nodes, the source file is backed up to `<file>.pre-absorb.bak`, then rewritten into a "slim pointer" that reproduces every non-absorbed section (suggested, unclassified, or injection-suspect) verbatim — content is never destroyed. Throws instead of overwriting an existing backup file. The canonical source path must be inside repoRoot; outside paths (including symlink escapes) require an reviewed dry-run plus explicit allowOutsideRepo:true.

NameTypeReqDescription
allowOutsideRepobooleanExplicit destructive opt-in required only when filePath resolves outside repoRoot. Dry-run reports outsideRepo and keeps canConfirm:false without it.
confirmbooleanActually write when true. Omit or false for a dry-run (plan only, no writes).
filePathstringyesPath to the CLAUDE.md/AGENTS.md-style markdown file to absorb (absolute, or relative to the MCP server cwd).
NameTypeReqDescription
backupPathstring
blockedReasonsarrayyesMachine-readable human explanations for every condition currently blocking confirmation.
canConfirmbooleanyesTrue only when repeating the call with confirm:true can perform the previewed change without another explicit safety opt-in.
changedboolean
dryRunbooleanyes
filePathstringyes
messagestringyes
okbooleanyes
outsideRepobooleanyes
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
previewReadybooleanyesTrue only when this response is a complete dry-run preview that an agent can review.
sectionsarrayyes
sourceLabelstringyes
summaryobjectyes
titlestring|null
wouldChangebooleanyesTrue only when the dry-run predicts a disk or Git change.
writtenarray

No examples provided.

add_concept ~764

Create a new ontology node (.md file). Call when an AI agent finds a new capability / element / project from code analysis. Throws if the slug already exists — use patch_concept in that case. The frontmatter is normalized per kind (project gets `domains/capabilities/elements` empty arrays; capability gets `elements: []`; capability/element should also set `domain:` so the tree has a parent — missing extras come back as `warnings` in the response, not as an error. If another node already has the same title, a near-duplicate `warning` is included too — prefer patch_concept on the existing node over forking a duplicate. Successful writes return compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers so agents can immediately see graph cleanup / relation suggestions after the new node lands. **For bulk creation (e.g. bootstrap flow with 5+ nodes) use `add_concepts({concepts: [...]})` (batch, max 50, partial result) — saves K-1 round-trips.** When `kind` is `element`: an element names a CONCEPT a capability uses (e.g. "jwt-token"), not a file. If your `title` is a bare path or ends in a source extension, you are describing evidence, not the concept — rename `title` to the role and put the path in `path:`, or if 3+ siblings under the same parent already look like this, call `get_concept` on the parent and consider `patch_concept` on an existing sibling instead of adding another file-mirror node. The same rule binds the `slug`: flat under the kind folder (`elements/<role-name>`), never a code path (`elements/src/views/home` is rejected) — path-style slugs collide the moment two files share a basename and the graph silently merges distinct nodes.

NameTypeReqDescription
bodystringMarkdown body (optional). When omitted a kind-specific starter body is written so the file is self-explanatory in the editor.
capabilitiesarrayCapability slugs this node owns (project / domain).
domainstringParent domain slug. Strongly expected for kind=capability and kind=element — without it the node floats orphaned in the tree.
elementsarrayElement slugs this node uses (project / capability).
kindstringyesproject / domain / capability / element / document. (vault-readme is reserved for the auto-generated README.md and should not be set by agents.)
labelsobjectPer-locale display names, e.g. { "ko": "결제", "en": "Payments" }. Written as `display_ko` / `display_en` frontmatter keys; `title` stays the single source for search/matching. Fill BOTH locales the va…
pathstringOne canonical implementation entrypoint for a capability or element (repo-relative file or directory). Preserved as evidence and checked by validate_vault path drift.
slugstringyesVault-relative slug (omit the .md extension), flat under the kind folder — e.g. "elements/jwt-token", "capabilities/token-issue". A slug is the node's name, never a code path: "elements/src/views/hom…
titlestringyesDisplay title for the node.
NameTypeReqDescription
changedbooleanyes
filePathstringyes
okbooleanyes
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
slugstringyes
warningsarray

No examples provided.

add_concepts ~465

Batch-create multiple nodes in one call — same per-row shape as `add_concept`. Use after `analyze_repo_structure` or another reviewed proposal flow when the agent has K accepted candidates from the user — replaces K×`add_concept` round-trips. Each row is processed independently: existing-slug / invalid-kind / missing-required-fields / non-object row shape / unknown row fields surface as `{ slug, ok: false, error }` rows whose errors include a `concepts[n]` row label, single unknown-field rows include `receivedField` plus one-row `unknownFields`, multi unknown-field rows report every unknown field with nearest hints and `Received fields: ...`, and duplicate input slugs report the later `concepts[n]` row plus first-seen `concepts[m]` with structured `rowName` / `firstSeenAt`; the rest still land. A row whose normalized title matches an earlier landed row in the same batch still lands but carries a near-duplicate `warning` — `patch_concept` the earlier node instead of forking the same concept (duplicates are the #1 growing-vault failure mode). `concepts[]` order in the response matches the input. Cap = 50 per call (split into multiple batches for larger sets). NO atomic rollback — if you need all-or-nothing semantics use single `add_concept` calls. Invalid-only batches return no row-level write metadata and no top-level `postWriteMaintenance`. When at least one row changes the vault, the response includes one compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers for the final graph. Rows whose `title` is a bare file path follow the same rule as `add_concept` above. Prefer one capability node covering a directory plus a short `elements:` list over one row per file, unless each file's role differs in a stated sentence.

NameTypeReqDescription
conceptsarrayyesArray of concept specs (max 50). Each row uses the same shape as `add_concept` input.
NameTypeReqDescription
conceptsarrayyes
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.

No examples provided.

add_relation ~435

Add a semantic relation between two nodes. Appends to the matching frontmatter graph key (domains / capabilities / elements / dependencies / relates / contains / describes); `domain` sets the source node's inline parent domain. The relation type picks which key receives the entry. A new `depends_on` relation requires a nonblank `why`; an already-existing edge remains an idempotent read even if legacy data has no rationale. **R11**: optional `expected_mtime` — pass the source-side `mtime` from a prior get_concept so concurrent external edits throw VaultConflictError. Invalid relation `type` is rejected before endpoint slug resolution with a closest-value hint and structured `valueName` / `receivedValue` / `suggestion` / `allowedValues` repair fields in `structuredContent`, with no `changed`, `alreadyExists`, or `postWriteMaintenance` write metadata. Changed writes return compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers so agents can immediately see graph cleanup / relation suggestions after the edge lands. **For multiple already-approved semantic edges use `add_relations({relations: [...]})` (batch, idempotent, max 50). `infer_imports.moduleEdges` require exact-evidence review, a semantic rationale, and human approval first.**

NameTypeReqDescription
expected_mtimenumberOptional conflict guard for the source slug. If the source mtimeMs differs at write time, the call throws.
fromstringyesSource slug.
tostringyesTarget slug.
typestringyesRelation type.
whystringOne-line rationale for this relation ("A leans on B because ..."). Stored in the SAME frontmatter write as the ref (relation_notes map) — write it whenever you know the reason; a graph edge without a…
NameTypeReqDescription
alreadyExistsboolean
changedboolean
fromstringyes
keystring
okbooleanyes
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
tostringyes
typestringyes

No examples provided.

add_relations ~432

Batch-add multiple relations in one call — same per-row shape as `add_relation`. Use after `analyze_repo_structure` or another review flow when the agent has K semantic edges accepted by the user — replaces K×`add_relation` round-trips. Inferred module edges are not accepted merely because imports exist; review exact evidence and include the required nonblank `why` for every new `depends_on`. Each row is processed independently and idempotently: existing edges return `{ok: true, alreadyExists: true}`; missing source/target slugs / unknown type / non-object row shape / unknown row fields surface as `{ok: false, error}` with a `relations[n]` row label and structured `rowName`; unknown type rows include a closest-value hint with structured `valueName` / `receivedValue` / `suggestion` / `allowedValues`; single unknown-field rows include `receivedField` plus one-row `unknownFields`; multi unknown-field rows report every unknown field with nearest hints, `allowedFields`, `receivedFields`, and `Received fields: ...`. `relations[]` order in the response matches the input. Cap = 50 per call. NO atomic rollback — for all-or-nothing semantics use single `add_relation` calls. Tip: avoid `expected_mtime` in batch when multiple rows share the same `from` slug — the first row mutates that file so the second would see a stale mtime. Invalid-only batches return no row-level `changed` / `alreadyExists` write metadata and no top-level `postWriteMaintenance`. When at least one row changes the vault, the response includes one compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers for the final graph.

NameTypeReqDescription
relationsarrayyesArray of relation specs (max 50). Each row uses the same shape as `add_relation` input.
NameTypeReqDescription
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
relationsarrayyes

No examples provided.

analyze_repo_structure ~1,027

R16 (autonomous ingest base) — analyze a code repository and propose ontology node candidates. side effect 0 (vault frontmatter NOT modified). Returns deterministic candidates the agent must turn into an evidence-backed proposal and move through the construction lifecycle before any exact batch-writer rows are released. Repository structure is implementation evidence, not automatic business meaning: extractionContract and proposedBusinessOntology make that uncertainty explicit. Detects: - package.json `name` → project candidate - README.md first H1 → project title fallback - README.md H2 sections (skipping generic "Usage"/"Installation"/etc) → domain candidates - src/features|entities|widgets|views/* (FSD) → capability/element candidates - src/* depth-1 folders (generic) → capability candidates + index entry → element - apps/* and packages/* members with package.json → implementation element candidates - README.rst + bounded static setup.py → Python project/package evidence without execution - mixed current and future/negated/deprecated README prose → exact current candidate excerpt plus bounded line-scoped `reviewRequiredEvidence`; review units stay visible but cannot support a proposal claim - selected safe README sections share the existing 1,200-character budget deterministically; no document, heading, or excerpt cap grows - root Python packages plus at most 12 import-connected implementation boundaries → direct modules plus up to 2 exact security/policy/risk file anchors; unused files are not mirrored and no capability is inferred from imports - bounded root Cargo package or repo-contained literal direct workspace members → typed feature declaration + literal cfg/cfg_attr source provenance; predicates are not evaluated and no runtime/import/semantic dependency is inferred - a complete proposal may select at most 4 additional exact TypeScript, JavaScript, Python, or Rust file endpoints already observed by infer_imports for distinct navi…

NameTypeReqDescription
ignorearrayExtra folder names to skip (added to defaults: node_modules, .git, dist, build, …).
maxDepthintegerNon-negative integer folder walk depth (default 2, max 10). Higher → more elements.
proposalobjectOptional business ontology proposal to validate against repository evidence before any write call. Python proposals may select at most 4 exact observed import endpoints beyond the analyzer candidates.
qualificationobjectOptional independent evaluation and declared human acceptance bound to the exact planDigest, planRevision, and sourceDigest returned for this proposal. Omit it on the first review call.
rootPathstringRepository root to analyze. Defaults to the MCP server cwd.
NameTypeReqDescription
capabilitiesarrayyes
configurationEvidenceobjectyes
domainsarrayyes
elementsarrayyes
extractionContractobjectyes
frameworkstringyes
meaningGateobjectyes
projectobject
proposalValidationobjectyes
rootPathstringyes
semanticEvidencearrayyes
skippedarrayyes
suggestedRelationsarrayyes

No examples provided.

compile_ontology ~449

Compile the whole markdown vault into a deterministic graph artifact: canonical nodes, edges, aliases, graph issues, graph-array canonicalization actions, and optional adjacency indexes. This is the compiler-style read path for graph-database-like use: call it before advanced reasoning, indexing, export, or non-developer-friendly graph views. Includes a stable semantic graphHash and maxMtime for cache invalidation. side effect 0. Large vaults (100+ nodes) can exceed the MCP token cap with the default full payload — use `summary: true` for cheap polling (counts + graphHash, no arrays), or `nodesLimit/nodesOffset` / `edgesLimit/edgesOffset` to slice arrays. The response includes `nodesPagination` / `edgesPagination` meta with `{offset, limit, total, returned, hasMore, nextOffset}` when sliced.

NameTypeReqDescription
edgesLimitintegerPositive integer max edges to return. Pair with `edgesOffset` to paginate. Max 500.
edgesOffsetintegerNon-negative integer starting index in the sorted edges array. Defaults 0.
includeIndexesbooleanWhen true, include indexes `{out, in, byKind, byDomain, edgeById, aliasToSlug, uidToSlug, slugToUid, mergedUidToSlug}`. Graph traversal remains slug-based; UID indexes provide exact identity resoluti…
nodesLimitintegerPositive integer max nodes to return. Pair with `nodesOffset` to paginate. Omit for unlimited (backward compat), max 500 when provided.
nodesOffsetintegerNon-negative integer starting index in the sorted nodes array. Defaults 0.
summarybooleanWhen true, omit `nodes` / `edges` / `aliases` / `ambiguousAliases` / `canonicalizationActions` / `indexes` arrays — return only `graphHash`, `maxMtime`, counts (`nodeCount`/`edgeCount`/`aliasCount`/.…
NameTypeReqDescription
aliasCountintegeryes
aliasesarray
ambiguousAliasCountintegeryes
ambiguousAliasesarray
byDomainobjectyes
byKindobjectyes
canonicalizationActionCountintegeryes
canonicalizationActionsarray
edgeCountintegeryes
edgesarray
edgesPaginationobject
externalEdgeCountintegeryes
graphHashstringyes
indexesobject
issueCountintegeryes
issuesarray
maxMtimenumberyes
nodeCountintegeryes
nodesarray
nodesPaginationobject
resolvedEdgeCountintegeryes
summaryobject
unresolvedEdgeCountintegeryes
versionintegeryes

No examples provided.

connect_project_source ~280

Bind a project node to the local code folder it describes, measure it, and write the source receipt. This is what `nextAction: connect_source` (and `repair_source_binding` / `measure_source` / `remeasure_source`) asks for. Omit `rootPath` and the server infers it: the git repository enclosing the vault wins, otherwise the nearest ancestor folder carrying a project manifest. Without `confirm: true` nothing is written — you get the proposed folder, how many declared `path:` claims actually land in it, and the exact confirming call. Re-running with a different `rootPath` replaces the binding; `disconnect_project_source` removes it. The absolute root stays in the local gitignored sidecar `.ontology-atlas/project-sources.json` and never enters the receipt, the graph markdown, or any handoff.

NameTypeReqDescription
confirmbooleanRequired to write. Default false returns the proposal and changes nothing.
projectSlugstringyesExact project node slug (or an unambiguous vault alias) to bind.
repairbooleanDiscard a malformed .ontology-atlas/project-sources.json instead of refusing to write over it.
rootPathstringAbsolute local folder holding the code. Omit to auto-infer, or to re-measure an existing binding.
NameTypeReqDescription
bindingobjectyes
changedbooleanyes
confirmedbooleanyes
contractstringyes
inferenceobject|null
modestringyes
nextCallobject
okbooleanyes
previewReceiptobject
previousBindingCountnumber
projectSlugstringyes
projectSourceobject
remedyobject
undoobject|null

No examples provided.

connection_info ~54

Return the exact active vault root and code-repository root used by this MCP process, including how each root was resolved. Call first when a client may have stale configuration or multiple workspaces. Root changes require restarting the MCP process.

Input schema present but exposes no named parameters.

NameTypeReqDescription
repoResolutionstringyes
repoRootstringyes
restartRequiredForRootChangebooleanyes
sameRootbooleanyes
serverobjectyes
vaultResolutionstringyes
vaultRootstringyes

No examples provided.

delete_concept ~318

⚠ DESTRUCTIVE — permanently deletes the vault .md file. Two-stage safety: Both preview and confirmed responses identify the node by permanent `uid` plus current `slug`. 1. Without confirm: true the call is a dry-run — returns a backlinks preview without deleting. 2. If any backlinks exist the call throws — refuses while other nodes still reference this slug. Pass force: true to delete anyway (the referrers become dangling). Successful deletion returns the frontmatter + body so a user who deleted by mistake can recreate the node via add_concept. Directories are left untouched. Pass `expected_mtime` to guard against concurrent external edits — throws if the file changed on disk since you read it. Confirmed deletes return compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers for the final graph.

NameTypeReqDescription
confirmbooleanActually delete when true. Omit or false for a dry-run (backlinks preview, no delete).
expected_mtimenumberOptional conflict guard — file mtimeMs at read time. If it differs at delete time, the call throws.
forcebooleanDelete even when backlinks exist (referrers become dangling). Defaults to false.
slugstringyesVault-relative slug (omit the .md extension).
NameTypeReqDescription
backlinksarray
backlinksAtDeletearray
blockedReasonsarrayyesMachine-readable human explanations for every condition currently blocking confirmation.
canConfirmbooleanyesTrue only when repeating the call with confirm:true can perform the previewed change without another explicit safety opt-in.
capturedobject
changedboolean
dryRunbooleanyes
filePathstringyes
forcedboolean
messagestring
okbooleanyes
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
previewReadybooleanyesTrue only when this response is a complete dry-run preview that an agent can review.
slugstringyes
uidstringyes
wouldChangebooleanyesTrue only when the dry-run predicts a disk or Git change.

No examples provided.

disconnect_project_source ~107

Remove a project node's local source binding and its receipt. The reversal of connect_project_source — use it when the wrong folder was bound, or to stop measuring. Without `confirm: true` it only reports what would be removed. Other projects' bindings are never touched, and no ontology markdown changes.

NameTypeReqDescription
confirmbooleanRequired to write. Default false lists the binding that would be removed.
projectSlugstringyesProject node slug whose source binding should be removed.
NameTypeReqDescription
bindingsarrayyes
changedbooleanyes
confirmedbooleanyes
contractstringyes
nextCallobject
okbooleanyes
projectSlugstringyes
projectSourceobject
remedyobject
removednumberyes

No examples provided.

finalize_project_meaning ~199

Finalize the current project competency Markdown after concept/relation writes, vault validation, and a complete project compile. The server derives the current body digest, project graph hash, source fingerprint, and witness inventory itself; callers cannot submit or restamp those values. This writes only a small provenance receipt to `.ontology-atlas/project-meaning.json`. It never stores raw answers, witness text, absolute source roots, or remote coordinates. `ok: true` means the receipt was written, not that source currentness is verified; read `meaningAssessment` or a fresh `agent_brief` for the fail-closed categorical result.

NameTypeReqDescription
expected_mtimenumberyesRequired conflict guard. Pass the project node mtime from get_concept; any intervening human or agent edit blocks finalization.
projectSlugstringyesExact project node slug (or an unambiguous vault alias) whose current Competency answers section should be finalized.
NameTypeReqDescription
bodyDigeststringyes
changedbooleanyes
contractstringyes
graphHashstringyes
meaningAssessmentobjectyes
measuredAtstringyes
okbooleanyes
projectSlugstringyes
sourceFingerprintstringyes

No examples provided.

find_backlinks ~86

Return every node that points to the target slug. Scans both frontmatter array keys (capabilities / elements / dependencies / relates / contains / describes etc.) and the wikilinks / markdown links in the body. Used by AI agents to walk the graph from a node to its dependents.

NameTypeReqDescription
slugstringyesTarget vault-relative slug (omit the .md extension).
NameTypeReqDescription
matchesarrayyes
targetstringyes
totalintegeryes

No examples provided.

find_evidence ~323

Find vault docs that mention a given concept by title. Useful when an AI agent asks where a capability is realized in code or docs. Each match includes a prose `excerpt` (max 200 chars, headings/tables/code skipped) so agents see *what the matching doc says* without an extra get_concept call. Matches are RANKED by a deterministic relevance `score` (title match > frontmatter ref > body, plus a title token-overlap tiebreaker), then by whether the doc is a graph node, then slug — best-first. **A vault holds ordinary markdown too** (meeting notes, memos, drafts have no `kind:` and are not graph nodes); every row says which it is via `isNode`, non-nodes rank below nodes of equal relevance, and `nodesOnly: true` filters them out. Do not cite a non-node as graph evidence without saying so. Pass `limit` for the top-N. When zero docs mention the title, the response includes a `growthHint` — near-titled vault nodes to check first, or an add_concept scaffold if the concept looks genuinely new.

NameTypeReqDescription
limitintegerReturn only the top-N highest-scoring matches. Omit for all matches (still ranked).
nodesOnlybooleanReturn only graph nodes (docs with a `kind:`). Default false — ordinary markdown in the same folder is included and marked `isNode: false`.
titlestringyesConcept title to search for (case-insensitive substring match).
NameTypeReqDescription
bodyHintstringOnly present when at least one match returned a partial excerpt — names the get_concepts({ body: "full" }) call that returns the rest.
growthHintobjectOnly present when matches is empty — near-titled vault node(s) to check, or an add_concept scaffold, derived from the real vault title set.
matchesarrayyes
nonNodeHintstring
querystringyes

No examples provided.

find_neighbors ~177

Return the one-hop graph neighborhood around a node. Unlike find_backlinks, this is graph-frontmatter only and can include outgoing, incoming, or both directions. Returns canonical edges plus neighbor node summaries so agents can inspect a local subgraph in one call.

NameTypeReqDescription
directionstringEdge direction to include. Defaults to both.
includeNodesbooleanWhen true (default), include neighbor node summaries for resolved edges.
limitintegerPositive integer max edges to return. Defaults to 100, max 500.
slugstringyesCenter node slug, unique tail slug, or frontmatter `slug` alias.
typesarrayOptional relation types/frontmatter keys to include, e.g. ["domain", "depends_on", "contains"]. Public add_relation types are normalized to stored graph keys.
NameTypeReqDescription
centerstringyes
directionstringyes
edgesarrayyes
limitedbooleanyes
nodesarray
requestedstringyes
totalEdgesintegeryes
typesarray

No examples provided.

find_orphans ~132

List orphan nodes — docs that no other node references via any frontmatter array key. Useful as a cleanup starting point or to answer "which nodes are unused?". Same matching policy as find_backlinks (full slug or final segment). Root/sentinel kinds like project and vault-readme are excluded by default.

NameTypeReqDescription
excludeKindsarrayKinds to exclude from results. Defaults to ['project', 'vault-readme']. Pass [] to include every kind. Typos fail with nearest-value hints.
kindstringRestrict to one kind (e.g. capability). Omit for all kinds.
NameTypeReqDescription
orphansarrayyes
totalintegeryes

No examples provided.

find_path ~282

Shortest path between two nodes (undirected BFS). Returns `{ from, to, hops: [slug...], nodes: [{uid, slug, kind, title, domain?}], edges: [{from, to, via, rationale?}] }` where each `via` is the frontmatter key (`domains` / `domain` / `capabilities` / `elements` / `dependencies` / `relates` / `contains` / `describes`) that linked the two slugs and `rationale` is the one-line `relation_notes` sentence the declaring document stores for that pair (present only when one is stored) — so the agent sees not just *that* A and B are connected but by which key and, when someone wrote it down, *why*. Returns `{ found: false }` when no path is found within maxHops, plus a `growthHint` — a concrete add_relation (both endpoints exist) or add_concept (an endpoint is missing) example so the unanswered question becomes a vault-growth signal instead of a dead end. maxHops defaults to 5 and is capped at 20.

NameTypeReqDescription
fromstringyesSource slug.
maxHopsintegerNon-negative integer maximum hop count (default 5, max 20).
tostringyesTarget slug.
NameTypeReqDescription
edgesarray
foundbooleanyes
fromstringyes
growthHintobjectOnly present when found=false — a candidate add_relation (both endpoints exist) or add_concept (an endpoint is missing) suggestion, derived from the real vault, not invented.
hopCountinteger
hopsarray
nodesarray
reasonstring
tostringyes

No examples provided.

get_concept ~356

Fetch one node by exactly one selector: `slug` (canonical slug or unique alias) or immutable `uid`. Successful responses always carry both the permanent `uid` and current canonical `slug`; graph relations and graph-operation inputs remain slug-based. Returns frontmatter, body, direct graph neighbors, outgoingEdges (each `{to, via, rationale?}`, the rationale being the stored `relation_notes` sentence when one exists), and mtime. **By default you get `excerpt` — the first prose paragraph only. The node body is where the construction rules put definition, evidence, confidence, and in-scope/out-of-scope, so pass `body: "full"` whenever you are reading a node to answer a question rather than just to identify it.** `bodyInfo` always reports `totalChars` / `returnedChars` / `truncated`, so a partial read is never silent. **For K specific selectors in one call use `get_concepts({slugs: [...]})` or `get_concepts({uids: [...]})`.** When a slug does not resolve, structured growth guidance remains available.

NameTypeReqDescription
bodystring`excerpt` (default) returns the first prose paragraph as `excerpt`. `full` returns the entire markdown body as `body` and omits `excerpt`. Use `full` when the answer depends on what the node actually…
slugstringVault-relative slug (e.g. projects/auth-platform), unique tail slug, or frontmatter `slug` alias. Omit the .md extension.
uidstringExact permanent node UID. Use instead of `slug`, never together with it.
NameTypeReqDescription
bodystringEntire markdown body. Present only when the caller passed `body: "full"`.
bodyInfoobjectyesHow much of the body this response carries — always present, so truncation is never silent.
excerptstringFirst prose paragraph. Present only when `body` is `excerpt` (the default).
frontmatterobjectyesResolved markdown frontmatter.
mtimenumberyes
neighborsobjectyesDirect graph neighbor buckets.
outgoingEdgesarrayyes
slugstringyes
uidstringyesPermanent immutable node identity.
warningsarray

No examples provided.

get_concepts ~270

Fetch multiple nodes by exactly one selector array: `slugs` (canonical slugs or unique aliases) or immutable `uids`. Same per-row shape as `get_concept`; successful rows always return permanent `uid` plus current canonical `slug`. Order matches the selected input array. Missing or invalid slug rows return partial `{slug, ok:false, error, ...repairFields}` rows, so later valid slugs still resolve; UID misses likewise return `{uid, ok:false, error, ...repairFields}` without aborting the batch. Graph relations and graph-operation inputs remain slug-based.

NameTypeReqDescription
bodystringApplies to every row. `excerpt` (default) returns the first prose paragraph per row; `full` returns the entire markdown body per row and caps the batch at 20 slugs.
slugsarrayVault-relative slugs, unique tail slugs, or frontmatter `slug` aliases (e.g. ["capabilities/x", "elements/y"]). Omit the .md extension. Max 50 per call (max 20 when body is `full`).
uidsarrayExact permanent node UIDs. Use instead of `slugs`, never together with it. Max 50 (max 20 with body `full`).
NameTypeReqDescription
conceptsarrayyes

No examples provided.

git_history ~109

Read commit history scoped to the active vault path only. Returns bounded newest-first hashes, subjects, and authored timestamps plus limited/hasMore, shallow-repository state, and historyComplete so agents do not mistake a truncated or shallow view for complete evidence. Commits that touched only files outside the vault are excluded. Read-only; never initializes, fetches, pulls, commits, or pushes.

NameTypeReqDescription
limitintegerMaximum newest-first vault commits to return. Defaults to 20; maximum 100.
NameTypeReqDescription
branchstring|null
commitsarray
countinteger
hasMoreboolean
headstring|null
historyCompleteboolean
limitinteger
limitedboolean
okbooleanyes
operationstringyes
reasonstring
repoRootstringyes
shallowboolean
vaultPathspecstring
vaultRootstringyes

No examples provided.

git_snapshot ~172

Create a local, vault-scoped Git checkpoint. Dry-run by default and returns exact expectedHead, files, validation, risk, and the shared previewReady/canConfirm/wouldChange/blockedReasons safety contract. confirm:true requires that expectedHead, blocks validator errors and Git operations in progress, commits only the vault pathspec, leaves outside files untouched, and never pushes.

NameTypeReqDescription
confirmbooleanDefault false. Set true only after reviewing the dry-run preview and its risk/validation fields.
expectedHeadstringRequired with confirm:true. Copy the exact expectedHead returned by the immediately preceding dry-run; this prevents committing after a concurrent HEAD change.
messagestringOptional local commit subject, one line and at most 200 characters. A deterministic ontology snapshot subject is generated when omitted.
NameTypeReqDescription
blockedReasonsarrayyesMachine-readable human explanations for every condition currently blocking confirmation.
branchstring|null
canConfirmbooleanyesTrue only when repeating the call with confirm:true can perform the previewed change without another explicit safety opt-in.
commitHashstring
commitSummarystring
committedbooleanyes
countsobject
detachedHeadboolean
dryRunbooleanyes
expectedHeadstring|null
filesarray
headstring|null
okbooleanyes
operationstringyes
operationInProgressstring|null
previewReadybooleanyesTrue only when this response is a complete dry-run preview that an agent can review.
previousHeadstring
pushReasonstring
pushSupportedboolean
reasonstring
repoRootstringyes
riskobject
stagedOutsideVaultarray
subjectstring
validationobject
vaultPathspecstring
vaultRootstringyes
wouldChangebooleanyesTrue only when the dry-run predicts a disk or Git change.

No examples provided.

git_status ~58

Inspect local Git state for the active vault only. Returns HEAD/branch, vault files, outside-vault change counts, staged-outside-vault warnings, and in-progress operation risk. Read-only; never initializes, stages, commits, or pushes.

Input schema present but exposes no named parameters.

NameTypeReqDescription
branchstring|null
commitHashstring
commitSummarystring
committedboolean
countsobject
detachedHeadboolean
dryRunboolean
expectedHeadstring|null
filesarray
headstring|null
okbooleanyes
operationstringyes
operationInProgressstring|null
previousHeadstring
pushReasonstring
pushSupportedboolean
reasonstring
repoRootstringyes
riskobject
stagedOutsideVaultarray
subjectstring
validationobject
vaultPathspecstring
vaultRootstringyes

No examples provided.

index_project ~283

Project ontology indexing plan — run analyze_repo_structure + infer_imports + validate_vault in one read-only call. Use for large or already-existing projects where the agent needs a resumable ontology indexing checkpoint before writing. Its extractionContract treats source facts as observed evidence, README/folder meanings as proposals, and only persisted ontology meanings as shared; it also returns competency questions, uncertainty, approval gates, and whether active-vault validation actually applies to the analyzed project. The plan distinguishes raw candidates into existing, ambiguous-alias review, and genuinely new buckets, then returns exact reviewCalls for retrieving full rows. side effect 0: this tool never writes markdown. CLI `index --apply` may write analyzer-proposed concepts and containment, but inferred imports remain review-only and are never auto-promoted to depends_on.

NameTypeReqDescription
maxDepthintegerFolder walk depth forwarded to analyze_repo_structure (default 2, max 10).
maxFilesintegerFile cap forwarded to infer_imports (default 5000, max 50000).
rootPathstringRepository root to index. Defaults to the active resolved repository root from connection_info.
skipImportsbooleanWhen true, skip infer_imports and return an analyze + validate plan only.
thresholdintegerOptional module-edge count threshold for the returned import relation plan.
NameTypeReqDescription
analyzeobjectyes
configurationEvidenceobjectyes
extractionContractobjectyes
importsobject|nullyes
meaningGateobjectyes
modestringyes
nextobjectyes
planobjectyes
rootPathstringyes
semanticEvidencearrayyes
sideEffectintegeryes
validationobjectyes
vaultRootstringyes

No examples provided.

infer_imports ~1,310

R17 (autonomous ingest deeper) — walk TS/JS files in a code repo and infer file-level + module-level import edges. It also walks bounded root Python packages, bounded src/source-layout Python packages, and deterministic Rust use/file-module/literal-include dependencies. A valid root Go module additionally exposes typed local package-import evidence; it stays separate from legacy file edges and never self-approves a semantic relation. Structured `coverage` names the supported languages; Rust support is bounded static text evidence and does not expand macros, evaluate cfg, resolve symbols, or prove runtime impact. side effect 0 (vault frontmatter NOT modified). `moduleEdges` are source-backed review candidates, never self-approving semantic `depends_on` relations. When you know an implementation file, set `focusPath` (or `reviewMode:"focus"`) before considering `full`: Atlas returns bounded exact incoming/outgoing static import receipts, counts, and a cursor without requiring a vault. This focused source boundary is not runtime impact or a semantic relation. Omit `reviewMode` for size-safe automatic delivery: scans whose estimated full MCP result is at most 128 KiB keep the complete response; larger reconciled scans return exactly one compact, non-writing `nextRelationReview:v1` packet plus a delivery receipt and stateless cursor. Use `reviewMode:"next"` to request that bounded packet explicitly. `reviewMode:"full"` preserves the complete shape, but a result over 128 KiB additionally requires `allowLargeResponse:true`; this second confirmation prevents coding agents from accidentally opting into a multi-megabyte response. Oversized raw scans without a loadable reconciliation vault fail with an actionable error instead of emitting an unbounded default response. Every compact candidate carries `absentEndpoints`. If an endpoint is missing, `nextCalls` is empty and `endpointModelling` separates an evidence-only analysis call from the complete `rootPath + proposal` valida…

NameTypeReqDescription
afterReviewIdstring`reviewMode:"next"` only. Pass the prior packet cursor.nextAfterReviewId to advance deterministically; omit to start at the first current candidate.
allowLargeResponsebooleanConfirmation for reviewMode:"full" only. Required when the estimated complete MCP result exceeds 128 KiB. It never changes scan contents or writes the vault.
focusAfterEdgeIdstringFocus mode only. Pass the prior focusReview.cursor.nextAfterEdgeId to advance deterministically; omit to start at the first current edge.
focusDirectionstringFocus mode only. Which exact file-level import direction to page (default both).
focusLimitintegerFocus mode only. Maximum exact import receipts returned in one page (default 50, max 100).
focusPathstringRepository-relative implementation file to inspect. Supplying focusPath with omitted reviewMode selects focus mode automatically. Returns bounded incoming/outgoing supported static import receipts; i…
ignorearrayExtra folder names to skip (added to defaults: node_modules, dist, build, …).
maxFilesintegerPositive integer cap on files walked (default 5000, max 50000). Hard stop to avoid pathological monorepos.
reconcilebooleanDefault true. When true, diff the inferred module edges against the vault's compiled depends_on edges and include `reconciliation` + `reconciliationSummary`. Set false to skip (raw scan only / no vau…
reviewModestringOmit for automatic delivery unless focusPath is present. `focus` returns a bounded exact file-level import neighborhood for focusPath. Otherwise responses estimated at or below 128 KiB keep the compl…
rootPathstringRepository root to analyze. Defaults to the active resolved repository root from connection_info.
sourceFoldersarraySource folders to walk (default: ['src','source','lib','app','apps','packages']). Nested scopes preserve repository-relative ontology endpoints. If none exist, falls back to rootPath.
NameTypeReqDescription
contractstring
coverageobjectyes
deliveryobjectPresent only when omitted reviewMode was automatically compacted because the estimated full MCP result exceeded the safe delivery boundary.
edgesarray
externalImportsarray
filesScannedintegeryes
focusReviewobject
moduleEdgesarray
nextReviewobject|null
packageImportEvidenceobjectRoot Go module-only, bounded package import evidence. It is observed static source evidence, never a runtime claim or semantic relation approval.
packageImportEvidenceSummaryobjectBounded Go package-import census. Call fullEvidenceCall to retrieve the complete typed receipt; focusReview itself contains legacy file edges only.
reconciliationobject|nullModule edges diffed against the vault's compiled depends_on edges (alias-normalized). null when no vault is loadable (e.g. scanning a foreign repo). Absent when reconcile:false.
reconciliationSummaryobject
reviewQueueobject
rootPathstringyes
scanSummaryobject
staleEdgeFollowUpobject
unresolvedarray

No examples provided.

inspect_architecture ~193

Read one reviewed architecture-profile/v1 document from the active vault, scan the connected repository with the existing bounded static import analyzer, and return an architectureBrief:v1 for humans and coding agents. The profile declares scoped roles, intended dependency rules, and which known import usages those rules govern; source imports remain observed evidence with usage-qualified receipts. The result distinguishes conforms, violated, and unknown, and never treats unsupported languages, unclassified import usage, empty role mappings, or unmapped edges as compliance. Pattern labels are human/document declarations, not folder-name inference. side effect 0.

NameTypeReqDescription
maxFilesintegerPositive source-file scan cap (default 5000, max 50000).
profileSlugstringArchitecture profile_slug. Optional only when the vault contains exactly one architecture profile.
rootPathstringRepository root to inspect. Defaults to the active resolved repository root from connection_info.
NameTypeReqDescription
agentPlanContractobjectyes
conformanceobjectyes
contractstringyes
nextActionsarrayyes
profileobjectyes
sideEffectintegeryes

No examples provided.

list_concepts ~426

List every ontology node in the vault (each .md file with a frontmatter `kind:`). Filter by `kind`, `domain`, and/or `since` (mtime-based incremental sync). Large vaults are resumable with `offset` + `limit`; always follow `pagination.nextOffset` while `hasMore` is true. AI agents call this first to grasp the codebase's mental model.

NameTypeReqDescription
domainstringFilter to nodes whose frontmatter `domain:` matches this slug (e.g. "auth"). Combine with `kind` for "all capabilities under auth" in one call. Use the domain *slug*, not the title.
kindstringFilter to one canonical ontology kind (project, domain, capability, element, document, vault-readme). Omit to return all. Invalid kind typos fail closed with nearest-value hints instead of returning…
limitintegerPositive integer max rows to return. Defaults to 100, max 500.
offsetintegerZero-based page offset applied after kind/domain/since filters. Resume at pagination.nextOffset until hasMore is false; ordering is deterministic by canonical slug.
sincenumberNon-negative mtime threshold. Filter to nodes with `mtime > since` (ms). Pair with the `mtime` returned in earlier `list_concepts` / `get_concept` responses for incremental sync — "what changed since…
summarybooleanWhen true, each node row includes a `summary` (max 200 chars, prose-only — heading / table / code block / image / divider / list / quote are skipped and only the first paragraph is kept, same `extrac…
NameTypeReqDescription
limitedbooleanyesTrue when this page does not contain every matching row.
nodesarrayyes
paginationobjectyes
returnedintegeryesNumber of rows returned in this page.
summaryHintstringOnly present when at least one row carries a partial summary — names the follow-up call that returns the full bodies.
totalintegeryesTotal number of matching ontology nodes before the limit is applied.
vaultRootstringyesResolved vault root path used for the listing.
vaultWarningsobject

No examples provided.

list_kinds ~45

Vault kind distribution — { total, byKind: { capability: N, ... } }. A quick census so AI agents can size up the vault without paging through list_concepts.

Input schema present but exposes no named parameters.

NameTypeReqDescription
byKindobjectyesNode counts keyed by frontmatter kind.
totalintegeryesTotal number of vault docs that declare a kind.

No examples provided.

merge_concepts ~352

⚠ DESTRUCTIVE MULTI-FILE WRITE — fold one node into another. Every backlink to fromSlug is redirected to intoSlug (frontmatter array entries + body links), then fromSlug is deleted. The survivor keeps its UID while the source UID/history is recorded in canonical `merged_uids`. The intoSlug prose and non-identity frontmatter are preserved as-is — they are not merged automatically (use patch_concept after if you want to combine descriptions). Tail-only references are also redirected. Two-stage safety: 1. Without confirm: true the call is a dry-run — returns the redirect plan + list of deletions without writing. 2. With confirm: true the rewrites and the delete happen in one pass. Throws if either slug is missing. Confirmed writes return compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers for the final graph.

NameTypeReqDescription
confirmbooleanActually perform the merge when true. Omit or false for a dry-run.
expected_into_mtimenumberOptional conflict guard for intoSlug. Pass the survivor mtime from get_concept so a concurrent edit or identity-history change is never overwritten.
expected_mtimenumberOptional conflict guard for fromSlug. Throws if the source has been modified externally.
fromSlugstringyesSlug to dissolve. Its file is deleted after backlinks redirect.
intoSlugstringyesSlug to keep. Receives every redirected backlink.
NameTypeReqDescription
absorbedUidsarrayyes
backlinkUpdatesobjectyes
blockedReasonsarrayyesMachine-readable human explanations for every condition currently blocking confirmation.
canConfirmbooleanyesTrue only when repeating the call with confirm:true can perform the previewed change without another explicit safety opt-in.
capturedFromobjectyes
changedboolean
deletedbooleanyes
dryRunbooleanyes
fromPathstringyes
fromSlugstringyes
fromUidstringyes
intoSlugstringyes
intoUidstringyes
messagestring
okbooleanyes
postWriteMaintenanceobjectCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
previewReadybooleanyesTrue only when this response is a complete dry-run preview that an agent can review.
wouldChangebooleanyesTrue only when the dry-run predicts a disk or Git change.

No examples provided.

patch_concept ~330

Update the frontmatter and/or body of an existing ontology node. Use when an AI agent revises, deepens, or reclassifies a node. Frontmatter patches are key-by-key — null deletes a key, omission preserves it. Body is fully replaced when provided, otherwise preserved. Pass `expected_mtime` (from the previous get_concept response) to detect concurrent external edits — throws VaultConflictError if the file has changed on disk since you read it. Changed writes return compact `postWriteMaintenance` (maintenance_plan) with count-safe `byPhase` / `bySeverity` / `byKind` queue buckets, action `score`, executable `proposedAction`, and current-page `nextExecutableAction` / `nextReviewAction` pointers so agents can immediately continue graph cleanup.

NameTypeReqDescription
bodystringFull replacement markdown body (optional). Preserved when omitted.
expected_mtimenumberOptional conflict guard. If the file mtimeMs differs at write time, the call throws so the caller can re-read and retry. Pass the `mtime` field from the most recent get_concept response.
frontmatterobjectFrontmatter key/value patches (e.g. { kind: "capability", domain: "views" }). null removes the key. Per-locale display names go here as `display_ko` / `display_en` — fill every locale the vault serve…
slugstringyesVault-relative slug (omit the .md extension).
NameTypeReqDescription
changedbooleanyes
filePathstringyes
okbooleanyes
postWriteMaintenanceobjectyesCompact maintenance_plan summary for post-write follow-up. Bucket maps describe the remaining queue after the write.
slugstringyes

No examples provided.

query_concepts ~278

Typed filter DSL — search vault nodes by predicate. Built for saved-filter / smart-list cases that find_path (BFS) cannot answer, such as "which capabilities have zero elements?", "stub-only nodes in domain=auth", or "has(depends_on) excluding vault-readme". Grammar (case-insensitive keywords, whitespace-tolerant): filter := atom (AND|OR atom)* atom := NOT? predicate predicate := key=value | key!=value | has(key) Keys: kind / domain / slug / title for equality, plus any graph frontmatter array key for has(...). kind and has(...) keys are enum-validated with nearest-value hints. Example: `kind=capability AND domain=auth AND NOT has(elements)` — capabilities under domain auth that have zero elements (= unfinished caps). When total=0, the response includes a `growthHint` — it names any referenced kind/domain that has 0 nodes in this vault, or nudges you to loosen the filter.

NameTypeReqDescription
filterstringyesFilter expression. Example: kind=capability AND has(elements). Supports NOT / AND / OR. Wrap values containing whitespace or special characters with "..." or '...'.
limitintegerPositive integer max rows to return. Defaults to 100, max 500.
NameTypeReqDescription
filterstringyes
growthHintobjectOnly present when total=0 — flags a referenced kind/domain with 0 nodes in this vault census, or a generic loosen-the-filter nudge otherwise.
limitedbooleanyes
matchesarrayyes
parsedAsstringyes
totalintegeryes

No examples provided.

Common questions

What is the Ontology Atlas MCP server?

Ontology Atlas is an MCP server listed in the public MCP registry as io.github.wlsdks/ontology-atlas. Read and write one codebase ontology kept as Markdown in the repository. This page covers its MCPB bundle (https://github.com/wlsdks/ontology-atlas/releases/download/v1.2.0/ontology-atlas-mcp-0.13.0.mcpb).

Is the Ontology Atlas MCP server safe to use?

Ontology Atlas scores 46 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Ontology Atlas MCP server expose?

Ontology Atlas exposes 38 tools: connection_info, git_status, git_history, git_snapshot, list_concepts, and 33 more. Their descriptions and schemas cost roughly 15,600 tokens of context every time the server is loaded.

What licence is the Ontology Atlas MCP server under?

Ontology Atlas declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.