Knowledge Graph RDBMS
A label property graph on SQLite/Postgres with multi-ontology routing and a gated MCP server.
Connector by cunicopia-dev · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/cunicopia-dev-knowledge-graph-rdbms
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 6 read · 7 write · 5 delete · 10 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 28
Read from the source code; the running server may list different tools.
Read 6 · Look things up without changing anything.
kg_events_tailkg_findkg_node_getkg_ontologies_listkg_prefix_resolvekg_virtual_edges_list
Write 7 · Create, change, send or run things.
kg_edge_addkg_importkg_node_upsertkg_ontology_createkg_prefix_addkg_rdf_importkg_virtual_edge_add
Delete 5 · Delete, drop, revoke or wipe things.
kg_edge_removekg_event_revertkg_node_deletekg_ontology_deletekg_virtual_edge_remove
Not yet classified 10 · We could not tell from the name and description.
kg_descendantskg_edgeskg_identitykg_linkkg_links_ofkg_neighborhoodkg_rdf_exportkg_replaykg_schemakg_shortest_path
Secrets and settings it asks for
Other settings (environment variables or headers).
KGRDBMS_DEFAULT_ONTOLOGYKGRDBMS_HOME
Files it touches
- Any path the agent passes to its tools
Tools (28)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
kg_descendantsAll nodes reachable from `id` by following only `edge_type` edges.
kg_edge_addAdd an edge. Triples (from, type, to) are unique; repeats update properties.
kg_edge_removeRemove a specific edge by (from, type, to). Idempotent. Logged + reversible.
kg_edgesEdges of a node, optionally filtered by `edge_type`. `direction` is "out" (default), "in", or "both". Each result is the edge plus the node on the other end: {direction, id, from, to, type, properties, node}. Stored edges and *virtual* edges (resolved live from an external SQL source — see kg_virtual_edge_add) are unioned transparently; a virtual edge carries `"_virtual": true` in its properties.
kg_event_revertReverse an event by emitting a compensating event. The original is never deleted.
kg_events_tailThe most recent events from the append-only log.
kg_findFind nodes by `kind` and/or `label`, each tagged with its source ontology ([{ontology, node}]). Give a kind, a label, or both (both = nodes of that kind that also carry that label). Scope: omit `ontologies` for a single graph; pass `ontologies=[...]` to search across many at once (multithreaded fan-out). Replaces the old by-kind/by-label and federated variants.
kg_identityThe materialized SAME_AS cluster of a node — every leaf node explicitly asserted (transitively) to be the same real-world entity, fetched live and tagged by ontology ([{ontology, node}]). Pairs with kg_link(type=SAME_AS).
kg_importBulk-create many nodes and edges in ONE call (one gated + logged transaction). Use this instead of dozens of kg_node_upsert / kg_edge_add calls when composing an ontology from a document — pass the whole graph at once: nodes = [{"id": "person:ada", "kind": "Person", "name": "Ada Lovelace", "labels": ["Person"], "properties": {"born": 1815}}, ...] edges = [{"from": "person:ada", "to": "field:cs", "type": "FOUNDED", "properties": {"year": 1843}}, ...] # from_node/to_node also accepted Every node and edge is still individually gated (invariants then policy…
kg_linkAssert a typed relationship between nodes in two DIFFERENT ontologies (impossible as a normal edge — those can't cross files). For "same real-world entity", use type="SAME_AS" with symmetric=True (read the cluster back with kg_identity). symmetric=True also writes the reverse. Gated + logged.
kg_links_ofEvery cross-ontology link touching a node (both directions).
kg_neighborhoodUndirected BFS from a node within `depth` hops (inclusive of self).
kg_node_deleteDelete a node (cascade removes its edges/properties). Captures the full node + its incident edges in the event so the delete can be compensated (restored) later.
kg_node_getFetch a node by id. One graph: returns the node, or null if absent. Pass `ontologies=[...]` to look the id up across the federation, identity-aware: returns {id, occurrences:[{ontology, node}], shared, merged} where copies in shared-identity ontologies are merged into one `merged` entity.
kg_node_upsertCreate or update a node — also the way to add labels or set properties (pass `labels=[...]` / `properties={...}`; both merge into the existing node). Properties are JSON-serializable. Gated by invariants then policy. Logged as a reversible NODE_UPSERT event (the node's prior state is captured so the upsert can be compensated).
Show 13 more tools
kg_ontologies_listList registered ontologies: name, backend engine, extraction stance, path. The registry is itself a knowledge graph; this is a query over it. Use the returned `name` as the `ontology` argument on any other tool.
kg_ontology_createRegister a new ontology (or update an existing one's metadata). `backend` routes the engine ("sqlite" and "postgres" are live; "neo4j" is a registered stub). `location` is the backend location — a DSN (postgresql://…) for postgres; omit for a managed sqlite file. `stance` is the ontology's own extraction opinion ("literal" vs "inferential") that a composing agent should honor. The ontology is immediately addressable via the `ontology` argument on any tool.
kg_ontology_deleteRemove an ontology from the registry (inverse of kg_ontology_create). By default only deregisters — the data file is left on disk and the ontology can be recreated intact. purge=True also deletes the on-disk SQLite file (destructive, irreversible). External (postgres) databases are never dropped from here. Returns {name, deregistered, purged}.
kg_prefix_addBind a CURIE prefix to an IRI base (e.g. person -> https://kg.local/person/).
kg_prefix_resolveResolve the prefix/IRI registry. With `curie`, expand it to its full IRI ({curie, iri}); without, return every prefix -> IRI-base binding.
kg_rdf_exportSerialize an ontology to RDF text (dependency-free). Hand the result to any RDF store (Stardog, rdflib, Jena) to run SPARQL — the LPG stays the store of record; RDF is just the boundary format. format — "turtle" (human-readable, default) or "ntriples" (lossless) edge_strategy — how edge properties cross: "rdf-star" (quoted triples, default), "reification" (rdf:Statement), or "lossy" (bare triples; dropped count returned, never silent) Node ids round-trip as CURIEs (person:ada <-> <https://kg.local/person/ada>). Returns {ontology, format, triple…
kg_rdf_importLoad RDF text into an ontology through the gated + logged path (replayable). N-Triples import is dependency-free; Turtle import needs the [rdf] extra (rdflib). `edge_strategy` must match how the RDF encoded its edges, so the edge properties decode back onto the right edges. Returns {ontology, nodes_imported, edges_imported}.
kg_replayRebuild the graph projection from the event log. With upto_ts (ISO 8601) the graph is projected to that point in time. The event log is never cleared.
kg_schemaThe observed schema — CALL THIS FIRST when you don't know what an ontology contains, before kg_find / kg_node_get. Returns the exact vocabulary so you never guess: kinds, edge types, labels, property keys per kind (+counts), and node/edge totals. Scope: omit `ontologies` (optionally set a single `ontology`) for one graph. Pass `ontologies=[...]` to fan out across many at once (multithreaded) — you get a unioned `merged` schema plus each member's own under `by_ontology`. samples=True adds example ids + enum-like property values per kind.
kg_shortest_pathShortest undirected path between two node ids, or None if no path.
kg_virtual_edge_addBind an edge TYPE to a query that resolves its instances live from an external source — no rows are copied into the graph (Ontology-Based Data Access). At traversal time kg_edges runs `query`, parameterized by the node you're standing on, and synthesizes the edges; results carry `_virtual: true`. `query` must hold exactly one placeholder bound to the source value — the driver's native marker ('?' for sqlite *and* iceberg/duckdb, '%s' for postgres). The value is always *bound*, never string-formatted, so the query is injection-safe. Source of the bound value (`source`): "id" (default), "id_sl…
kg_virtual_edge_removeRemove a virtual-edge binding by type. The external source is untouched.
kg_virtual_edges_listList the ontology's virtual-edge bindings (edge type, source, directions, target shape, and the query). The connection string is shown by reference (`dsn_env`) or literal (`dsn`) exactly as stored.
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 27
- Last commit
- Jun 27, 2026 (4 months ago)
- Last release
- Jun 25, 2026 (4 months ago)
- Last package publish
- Jun 27, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.cunicopia-dev/knowledge-graph-rdbms- Version
- 0.1.9
- Auth
- No auth
- Packages
- pypi knowledge-graph-rdbms
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from cunicopia-dev
- 0.583score
Multi-Account Gmail
cunicopia-dev
Multi-account Gmail MCP server — read, search, draft, and label across every inbox.
ConnectorBFreshness: BLocal★ 5↓ 49/wkClaude Code +5 - 0.538score
WHOOP MCP
cunicopia-dev
Sync WHOOP recovery, sleep, strain, and workouts into Postgres and query them from any MCP client.
ConnectorBFreshness: BLocal↓ 28/wkClaude Code +5 - 0.508score
eBay Browse
cunicopia-dev
eBay Browse API MCP server — buy-side listing search and price intelligence.
ConnectorCFreshness: CLocalRead-only★ 1↓ 34/wkClaude Code +5
Cite this page
Knowledge Graph RDBMS MCP server. Agent Mart. https://agentmart.dev/connectors/cunicopia-dev-knowledge-graph-rdbms (last updated 2026-10-24)