VeritasGraph MCP Server
mcp-name: io.github.bibinprathap/veritasgraph
The first zero-trust, air-gapped Enterprise GraphRAG server for the Model Context Protocol.
Connect your local IDE agent — Claude Desktop, Cursor, VS Code, Windsurf,
Cline, Continue — directly to the VeritasGraph knowledge-graph engine over a
standard JSON-RPC 2.0 stdio stream. Build graphs from your documents, run
multi-hop graph-grounded queries with verifiable [doc#chunk] citations, and
inspect entities — all 100% locally, with zero external data egress.
- Zero-trust / air-gapped — stdlib-only JSON-RPC server; no cloud calls, no telemetry. The only network hop is your local Ollama runtime.
- Verifiable attribution — every node and edge records the source chunk it came from, so answers cite their evidence.
- Drop-in — wraps the same
studio_api.graphrag_engineused by Studio.
Tools
Tools are tiered by VERITASGRAPH_MCP_MODE (read, write (default),
admin). Each tier includes the one below it.
| Tier | Tool | Purpose |
|---|---|---|
| read | veritasgraph_check_answerable |
Whether the graph (and, in governed mode, the certified glossary) can answer a question, before spending a model call. |
| read | veritasgraph_query |
Multi-hop, graph-grounded answer with citations, reasoning path and an answer_id receipt. mode: exploratory or governed. |
| read | veritasgraph_search_entities |
Fast subgraph retrieval for a query (no LLM call). |
| read | veritasgraph_get_entity |
One entity with its relations and source chunks. |
| read | veritasgraph_get_graph |
The full graph: nodes, edges, stats. |
| read | veritasgraph_get_ontology |
Entity types, predicates and glossary terms with their status. |
| read | veritasgraph_search_terms / veritasgraph_get_term |
Search or fetch business-glossary terms. |
| read | veritasgraph_get_answer_receipt |
Replay a past answer by answer_id. |
| read | veritasgraph_compile_status |
Latest ontology-compile run and pending suggestions. |
| read | veritasgraph_structured_search / _get_term / _list_measures / _ask |
Governed semantic layer over SQL sources (needs the structured extra). |
| write | veritasgraph_ingest_document |
Chunk a document, extract entities/relationships, merge into the graph. |
| write | veritasgraph_import_graph |
Import a graph.json (Graphify, Understand-Anything, AI-Atlas, generic). |
| write | veritasgraph_propose_term |
Propose a glossary term for admin certification. |
| admin | veritasgraph_clear_graph |
Clear the graph (a snapshot is taken first). |
Tools outside the active tier are hidden and return JSON-RPC -32601.
Resources
| URI | Description |
|---|---|
veritasgraph://graph |
Live snapshot of the knowledge graph. |
veritasgraph://stats |
Entity / relationship / source counts. |
veritasgraph://ontology |
The governed vocabulary (types, predicates, terms). |
Requirements
-
Python 3.10+
-
VeritasGraph repo dependencies:
pip install -r requirements.txt -
A local Ollama runtime with a chat model pulled (ingest/query need a model;
search_entities/get_graphdo not):ollama serve & ollama pull qwen3:latest
Run it
# From the repository root
python -m veritasgraph_mcp # stdio JSON-RPC server
python -m veritasgraph_mcp --debug # verbose logging on stderr
Environment variables
| Variable | Default | Meaning |
|---|---|---|
VERITASGRAPH_MODEL |
qwen3:latest |
Default Ollama model for ingest/query. |
OLLAMA_HOST |
127.0.0.1:11434 |
Local Ollama endpoint. |
VERITASGRAPH_MCP_MODE |
write |
Tool tier: read, write or admin. Use read for untrusted clients. |
STUDIO_DATA_DIR |
studio_api/data |
Data directory. |
VERITASGRAPH_DB |
$STUDIO_DATA_DIR/veritasgraph.db |
SQLite graph store shared with Studio and the CLI. |
VERITASGRAPH_PII_POLICY |
tag |
off, tag, redact_before_extract or reject. |
Use it through VeritasGraph Studio
The same tools and resources are exposed over HTTP by the Studio backend, so you can drive the MCP server without an IDE — and the Studio agent pipeline can call its tools directly.
Start the Studio API and the bridge mounts under /mcp:
uvicorn studio_api.main:app --port 8200
The bridge uses Studio auth (Authorization: Bearer <token> from
STUDIO_API_TOKENS). Tools are tiered read / write / admin: a viewer token
sees read tools, an editor also gets ingest/import/propose, and admin tools
(veritasgraph_clear_graph) appear only when VERITASGRAPH_MCP_MODE=admin.
The stdio server honours the same VERITASGRAPH_MCP_MODE (default write;
use read for untrusted clients). Hidden tools return JSON-RPC -32601.
| Method & path | Purpose |
|---|---|
GET /mcp/ |
Server identity, capabilities, tool/resource counts. |
GET /mcp/tools |
List tool definitions (same schema as tools/list). |
POST /mcp/tools/{name} |
Invoke one tool; body is the tool arguments. |
GET /mcp/resources |
List veritasgraph:// resources. |
GET /mcp/resources/read?uri=... |
Read a resource. |
POST /mcp/rpc |
Full JSON-RPC 2.0 bridge (any MCP method over HTTP). |
Two ready-to-use tools are pre-registered in the Studio Tools section
(VeritasGraph MCP · Query and VeritasGraph MCP · Search), pointing at loopback
/mcp/tools/... endpoints. Enable Tools on an agent to have the orchestrator
invoke them automatically during a run.
# Example: call a tool via the bridge
curl -s http://127.0.0.1:8200/mcp/tools/veritasgraph_search_entities \
-H 'Content-Type: application/json' -d '{"query": "acme corp"}'
Register in your IDE
Replace /abs/path/to/VeritasGraph with the absolute path to your clone, and
point command at the repo's Python (e.g. .venv/bin/python).
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"veritasgraph": {
"command": "/abs/path/to/VeritasGraph/.venv/bin/python",
"args": ["-m", "veritasgraph_mcp"],
"cwd": "/abs/path/to/VeritasGraph",
"env": { "VERITASGRAPH_MODEL": "qwen3:latest" }
}
}
}
Cursor — .cursor/mcp.json
{
"mcpServers": {
"veritasgraph": {
"command": "/abs/path/to/VeritasGraph/.venv/bin/python",
"args": ["-m", "veritasgraph_mcp"],
"cwd": "/abs/path/to/VeritasGraph"
}
}
}
VS Code — .vscode/mcp.json
{
"servers": {
"veritasgraph": {
"type": "stdio",
"command": "/abs/path/to/VeritasGraph/.venv/bin/python",
"args": ["-m", "veritasgraph_mcp"],
"cwd": "/abs/path/to/VeritasGraph"
}
}
}
Windsurf, Cline, and Continue use the same command / args / cwd shape.
Quick manual test (no IDE)
Pipe raw JSON-RPC frames over stdio:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
'{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"veritasgraph_get_graph","arguments":{}}}' \
| python -m veritasgraph_mcp
You should get three JSON-RPC responses: server info, the tool catalog, and the current graph snapshot.
How it fits VeritasGraph
The MCP server is a thin protocol adapter. All graph construction, multi-hop
retrieval, and citation logic live in
studio_api/graphrag_engine.py, the same
engine that powers Studio. That means the MCP surface, the Studio UI, and the
HTTP API all read and write the same local knowledge graph.
Metadata
Release files for veritasgraph-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| veritasgraph_mcp-0.2.0.tar.gz | 154.9 kB | Without provenance | Details for veritasgraph_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| veritasgraph_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for veritasgraph_mcp-0.2.0-py3-none-any.whl |
Total release size: 319.3 kB
Release files / veritasgraph_mcp-0.2.0.tar.gz
| Download URL | veritasgraph_mcp-0.2.0.tar.gz |
|---|---|
| Size | 154.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0430fd7d21c30fdcf023150364230707e1072730a5a4a513ff5e2463af184b44
|
|
BLAKE2b-256 checksum How to use checksums |
730174dba00d7cbc93d74c397a576e5d49bbc94d4d113bf738f5e64c9bcd24b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / veritasgraph_mcp-0.2.0-py3-none-any.whl
| Download URL | veritasgraph_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 164.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
89bf6266a1269ff7ce623d464f8a4748a80a3ccfdd2a373e3bef19f2a4d64580
|
|
BLAKE2b-256 checksum How to use checksums |
1737fc14eaa62587ffe403c913974805f88e3f6e6b22284f8f9d2629e2ac43b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for veritasgraph-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.