
KG-SSOT
io.github.marciocarPublished by GitHub account marciocarv4.45.0Updated Nov 7, 2026
Company-brain knowledge graphs: confirmed claims cite sources, and decisions get revisited
Overview
Local MCP server for a plain-text company knowledge graph where confirmed claims must cite sources and decisions are tracked for review.
- What you can do
- Validate graphs against the contract and write only what passes
- Read, list and show history of nodes in a graph store
- Query nodes and edges across a corpus, with the far-end label resolved
- Look up decisions, what they superseded, what supports them and which are due for revisit
- Serve the contract, a minimal passing example and fixes for common error codes
- Resolve domain vocabulary terms
- When to use it
- Use it when a team or agent group keeps conclusions, decisions and their provenance in versioned files and wants an assistant to write, check and query them without losing the source or the review date. It suits repositories that already hold knowledge in .kg.yaml graphs rather than document-chunk retrieval.
- Requirements
- Runs as a local stdio process, started with kg-mcp --root pointing at a graph directory; installable from PyPI (Python 3.12 or later, PyYAML and jsonschema) via uvx or pip, or as a one-click .mcpb extension for Claude Desktop. No authentication, environment variables or headers are declared. Optional similarity search needs the vector extra.
Installation
In SourceWeft
- Open KG-SSOT in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
KG-SSOT
The trust layer for a company brain: knowledge graphs in plain text where a confirmed claim must cite its source, a decision records what it replaced and what it rests on, and a decision comes back for review when a source it pinned changes.
English | Português (Brasil)
[License: Apache-2.0] [Contract: v4 · release 4.45.0] [Conformance: 512/512] [Python 3.12+] [PyPI] [npm] [GHCR] [MCP Registry]
Documentation · Adopt it · The contract · Conformance suite · Changelog · For AI agents
The contract in 40 seconds: a claim without a source is refused, then fixed, queried and gated.
Why
A company brain is usually built by piling documents into RAG or GraphRAG. That keeps the data, but not the decisions: who decided what, on which source, and whether that source still holds. Teams, of people or of agents, pile up conclusions such as "the retry is idempotent" or "we decided on three attempts", and on the way they lose three things: the source, the date it was last verified and what depends on it. When the person who decided leaves, the reasoning leaves too.
KG-SSOT treats this as a format problem, not a discipline problem. Knowledge lives in a .kg.yaml graph,
versioned next to the code, and a formal contract decides in CI what fails:
- a
confirmedor production node without provenance fails (a claim with no recoverable source is declaredunverifiableinstead); - a source that is only a placeholder (
unknown,n/a,tbd) fails; - an edge that points nowhere fails, and so does a node with no edges;
- a verification stamp with nothing to check against, a decision with no origin and a production claim backed only by testimony raise warnings.
What it does for a company brain
Business, technical, compliance and design knowledge can live in the same format, in your repository. It plugs in
as a Python package or an MCP server, with a JavaScript validator on npm, and the CI gate is one of its uses, not the
point. The pins are checked when kg_query or kg_trace.py runs with --root.
Get started in 60 seconds
Or straight from the repository, with hash-checked dependencies:
The tools print in English by default and in Brazilian Portuguese when your locale is pt_BR (or
KG_SSOT_LANG=pt-BR). Codes, exit codes and JSON keys never change with the language; only the human text does.
Install
A node, inside
The label is the claim, short. The provenance says where it came from and how: one of five method classes,
measurement, reading, judges, derived or testimony. The stamp says when it was verified and against what.
Since contract v4.16 these English names are the canonical form; the Portuguese medição, leitura, juízes,
derivado and testemunho are still accepted as aliases, with no warning.
Use it from an AI agent
The reference MCP server gives a model the contract and a store: it validates a graph, writes only what passes, reads, lists, queries with every edge resolved to the label on the other end, and shows history. Read-only tools are annotated as such, so a client can skip confirmation for them.
kg_schema_help returns the current contract, a minimal passing example and the fixes for the most common codes, so a
model can write a passing graph on the first try. llms.txt indexes the documentation for agents, and
llms-full.txt has all of it in one file.
The agent skill. skills/kg-ssot/ is an Agent Skills skill that teaches a coding agent
to write, fix, validate and query graphs with these tools, in .kg.yaml and .kg.json. In a pre-registered test, an
agent with the skill reached the same result with 45% of the output tokens and 54% of the tool calls.
In Claude Code, it also comes as a plugin: /plugin marketplace add marciocar/kg-ssot, then
/plugin install kg-ssot@kg-ssot.
How it works
- The contract is JSON Schema 2020-12 at two levels: MUST fails, SHOULD warns. The rules a schema cannot express (unique ids, existing edge ends, orphan nodes) are part of it.
- The suite is the compatibility proof: each case is a real YAML file with the expected verdict and codes, and a reader passes only if it emits exactly the same codes.
- The kit brings the contract to a repository by tag, with a stamp that fails local edits, and runs the per-graph ratchet in CI: what already failed becomes named debt, a new graph has to pass, and the debt only shrinks.
Features
What KG-SSOT is not
Status
- Current: contract v4, release
kg-ssot-v4.45.0. The reference reader passes 512 of 512 cases inlatest/. - In use: three adopters run the gate in CI, one of them in production.
- Next: v5 will fail a
methodoutside the<class>: <detail>form, which only warns today. - Open: the semantic layer (freshness, contradiction, domain completeness) lives in
optional/, and the reference reader does not implement it: it passes only the 10 valid cases there.
Documentation
Contributing
A contract change starts with a conformance case: the .kg.yaml that shows the behavior and the expected verdict.
Releases are tags kg-ssot-vX.Y.Z of the development repository, where every pull request that touches spec/ or
tools/ runs the suite and the kit tests in CI. The release mirror holds only what each tag ships, one commit per
tag, and does not take pull requests: a proposal or a bug goes in as an
issue, ideally with the case that shows it. A reader in another
language is welcome: chapter 7 of the manual explains how to measure it.
License
The product (what the release ships, listed in spec/release.json: the contract, the suite, the
.kg.yaml cases, the kit in tools/, ADOPTING.md, this README and the manual) is Apache-2.0:
LICENSE, with the scope in NOTICE.
KG-SSOT was born inside the Onion framework, which now adopts it by tag like any other adopter. The product does not depend on it.
Source: README.md at commit 86945e2
Tools
0Version history
28- v4.45.0LatestNov 7, 2026
- v4.44.0Nov 6, 2026
- v4.43.0Nov 5, 2026
- v4.42.0Nov 4, 2026
- v4.41.0Nov 4, 2026
- v4.40.2Nov 3, 2026
- v4.40.1Oct 30, 2026
- v4.40.0Oct 30, 2026
- v4.39.1Oct 29, 2026
- v4.30.0Oct 26, 2026
- v4.29.1Oct 26, 2026
- v4.26.0Oct 25, 2026
- v4.25.0Oct 24, 2026
- v4.22.0Oct 23, 2026
- v4.21.0Oct 23, 2026
- v4.20.0Oct 23, 2026
- v4.19.1Oct 22, 2026
- v4.18.0Oct 22, 2026
- v4.17.2Oct 22, 2026
- v4.17.0Oct 21, 2026
- v4.16.0Oct 21, 2026
- v4.15.0Oct 21, 2026
- v4.13.1Oct 21, 2026
- v4.12.0Oct 20, 2026
- v4.11.0Oct 20, 2026
- v4.10.0Oct 20, 2026
- v4.9.1Oct 18, 2026
- v4.9.0Oct 18, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts