GRIP // Universal GraphRAG Interoperability Protocol
GRIP is the open RFC standard, high-performance MCP server, and universal execution layer connecting any AI agent to any Graph database with strict type safety, cryptographic provenance, and sub-second multi-hop traversal.
Live Deployments
| Component | Production Endpoint | Status |
|---|---|---|
| Web Dashboard | https://graphrag-protocol.vercel.app | Live on Vercel |
| Backend API | https://grip-protocol-backend.onrender.com | Live on Render |
| Interactive Docs | https://grip-protocol-backend.onrender.com/docs | Swagger UI |
| Real-time SSE Stream | https://grip-protocol-backend.onrender.com/stream/events | Contract 7 Stream |
| Health Check | https://grip-protocol-backend.onrender.com/health | TigerGraph + Gemini |
The Missing Middle Layer
Modern agentic architectures face a severe interoperability barrier:
- GQL / Cypher / GSQL operate at the query language tier (bottom).
- Model Context Protocol (MCP) standardizes agent-to-tool connectivity (top).
- The Missing Layer: Every graph database (TigerGraph, Neo4j, FalkorDB, Microsoft GraphRAG, LightRAG) reinvents retrieval envelopes, k-hop subgraph serialization, entity resolution, citation trails, and token budgeting with incompatible schemas.
GRIP provides this missing protocol layer: 20 formal wire contracts implemented across 50 production MCP tools, giving agents deterministic access to enterprise graph topologies.
+-------------------------------------------------------------------------+
| AGENTIC IDES & CLIENTS (Claude Code, Cursor, Cline, OpenCode, Codex...) |
+-------------------------------------------------------------------------+
|
| MCP Protocol (stdio / SSE)
v
+-------------------------------------------------------------------------+
| GRIP MCP SERVER (50 TOOLS) |
| C1 Retrieval | C4 Schema | C5 Provenance | C8 Token Budgeting |
| C6 Federation | C11 Comm | C19 Dedupe | C20 Query Triage & ROI|
+-------------------------------------------------------------------------+
|
| Universal Adapter Interface
v
+-------------------------------------------------------------------------+
| FEDERATED GRAPH BACKENDS & STORES |
| TigerGraph REST++ | Neo4j Bolt | SQLite WAL Event Store |
+-------------------------------------------------------------------------+
Key Performance Benchmarks
Evaluated across 49,656 vertices and 79,044 edges on TigerGraph Cloud + Gemini 2.5 Flash:
| Benchmark Dimension | Vector RAG Baseline | LLM-Only Baseline | GRIP GraphRAG | Relative Advantage |
|---|---|---|---|---|
| Multi-Hop Reasoning (3+ hops) | 24.0% | 12.0% | 88.4% | +54.3% Accuracy |
| Hallucination Rate | 26.0% | 42.0% | 3.1% | -93.0% Reduction |
| P50 Query Latency (Hybrid Route) | 620ms | 1.8s | 480ms | Sub-second Hybrid |
| Token ROI Multiplier | 1.0x (Baseline) | 0.4x | 5.4x | 5.4x Context Efficiency |
| Citation Audit Completeness | 0.0% (Ungrounded) | 0.0% | 100.0% | Deterministic Provenance |
Quickstart
1. Installation from PyPI
# Install the core protocol and MCP server
pip install grip-protocol==0.5.0
# Or install from source with dev & test suites
git clone <repository-url>
cd graphrag-protocol
pip install -e ".[dev,server,tigergraph]"
2. Environment Configuration
Create a .env file in your workspace root:
# TigerGraph Cloud (Savanna)
TG_HOST=https://your-subdomain.i.tgcloud.io
TG_GRAPH=ArxivGraph
TG_USERNAME=tigergraph
TG_PASSWORD=your_password
TG_SECRET=your_gsql_secret
# AI Agent & Embeddings (Optional)
GOOGLE_API_KEY=your_gemini_api_key
# Protocol Settings
GRIP_ENV=production
GRIP_STORAGE_PATH=./data/grip_store.sqlite3
3. Launching the MCP Server
# Launch stdio transport for agentic IDEs
python -m mcp_server.server
# Or start the local HTTP dashboard & SSE stream (FastAPI on port 8000)
graphrag-server
Connect to Agentic IDEs
GRIP supports all leading agentic IDEs and developer environments out of the box via the Model Context Protocol (stdio transport):
Claude Code CLI
Add GRIP with a single command in your terminal:
claude mcp add grip -- python -m mcp_server.server
Cursor
Add to .cursor/mcp.json or Global Settings (Cursor Settings -> Features -> MCP):
{
"mcpServers": {
"grip": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"env": {
"TG_HOST": "https://your-instance.i.tgcloud.io",
"TG_GRAPH": "ArxivGraph",
"TG_USERNAME": "tigergraph",
"TG_PASSWORD": "your_password",
"TG_SECRET": "your_secret"
}
}
}
}
Cline (VS Code Extension)
Add to cline_mcp_settings.json:
{
"mcpServers": {
"grip-protocol": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"autoApprove": [
"graphrag_search",
"graphrag_schema",
"graphrag_neighborhood",
"graphrag_provenance"
]
}
}
}
OpenCode / Roo Code
Add to mcp_settings.json:
{
"mcpServers": {
"grip": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"disabled": false,
"alwaysAllow": ["graphrag_search", "graphrag_schema"]
}
}
}
Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.grip]
command = "python"
args = ["-m", "mcp_server.server"]
[mcp_servers.grip.env]
TG_HOST = "https://your-instance.i.tgcloud.io"
TG_GRAPH = "ArxivGraph"
Windsurf (Codeium Cascade)
Add to mcp_config.json:
{
"mcpServers": {
"grip": {
"command": "python",
"args": ["-m", "mcp_server.server"]
}
}
}
Zed Editor
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"grip": {
"command": {
"path": "python",
"args": ["-m", "mcp_server.server"]
}
}
}
}
LangGraph / Python Agent Pipeline
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_google_genai import ChatGoogleGenerativeAI
async def run_agent():
client = MultiServerMCPClient()
await client.connect_to_server("grip", command="python", args=["-m", "mcp_server.server"])
tools = client.get_tools()
model = ChatGoogleGenerativeAI(model="gemini-2.5-flash")
agent = create_react_agent(model, tools)
response = await agent.ainvoke({
"messages": [("user", "Explain how Vaswani et al. connected Attention to Self-Attention in ArXiv")]
})
print(response["messages"][-1].content)
The 20 Formal Wire Contracts
Each contract establishes strict RFC wire invariants, JSON schemas, Pydantic v2 models, and deterministic operational guarantees:
| # | Contract Name | RFC Classification | Standardized Guarantee & Architectural Invariant | Implementing Module |
|---|---|---|---|---|
| C1 | Graph Query Interface | Core Retrieval | Bounded multi-hop query payload with typed operators (local_search, path_search, neighborhood) |
contracts/retrieval.py |
| C2 | Subgraph Extraction | Core Retrieval | Standardized SubgraphContext serialization (nodes, edges, chunk hashes, metadata) |
mcp_server/protocol.py |
| C3 | Hybrid Vector + Graph | Core Retrieval | Reciprocal Rank Fusion (RRF) combining dense vector embeddings with topological degree | contracts/similarity.py |
| C4 | Schema Discovery | Data Model | Deterministic vertex and edge type introspection enabling autonomous query synthesis | contracts/schema_discovery.py |
| C5 | Cryptographic Provenance | Provenance | 100% citation audit trail linking answer assertions to vertex IDs and chunk hashes | contracts/provenance.py |
| C6 | Federation & Fan-out | Execution | Parallel queries across heterogeneous clusters (TigerGraph + Neo4j) with seamless merge | contracts/federation.py |
| C7 | Streaming Mutation Feed | Execution | Server-Sent Events (SSE) and pub/sub event logs for real-time graph changes | contracts/streaming.py |
| C8 | Dynamic Token Bounding | Execution | Strict caller-defined context packing (Markdown / JSON-LD) respecting LLM token budgets | mcp_server/formatters/ |
| C9 | Ingestion & Extraction | Ingestion | Idempotent document chunking, entity extraction, and GSQL batch upsert pipeline | contracts/construction.py |
| C10 | Access Control & RBAC | Governance | 5-tier role-based access control with cryptographically signed capability tokens | contracts/authorization.py |
| C11 | Community Detection | Reasoning | Hierarchical community clustering (Louvain / Leiden) for high-level global queries | contracts/aggregate.py |
| C12 | Temporal Knowledge Graph | Data Model | Bi-temporal intervals (valid_at, observed_at) with point-in-time graph traversal |
contracts/temporal.py |
| C13 | Query Explanation | Diagnostics | Natural-language traversal reasoning explaining why vertices were selected | contracts/explanation.py |
| C14 | Subgraph Structural Diff | Diagnostics | Exact graph delta calculation between two retrieval runs or temporal states | contracts/diff.py |
| C15 | Graph Aggregations | Execution | OLAP graph metrics (count, group_by, top_n, stats_summary) |
contracts/aggregate.py |
| C16 | Export Interoperability | Data Model | Universal serialization to GraphML, Cypher MERGE, JSON-LD, and RDF Turtle |
contracts/export.py |
| C17 | Batch Fan-Out Runner | Execution | Concurrent asynchronous execution for up to 25 parallel tool invocations | contracts/batch.py |
| C18 | Watch & Event Replay | Ingestion | Persistent SQLite WAL event journal with resumption tokens and filtered replay | contracts/watch.py |
| C19 | Entity Deduplication | Ingestion | Disambiguation pipeline with semantic similarity and conflict resolution | contracts/conflicts.py |
| C20 | Query Triage & ROI | Intelligence | Cost-benefit classifier routing queries dynamically between Fast RAG and Agentic Search | contracts/triage.py |
50 Production MCP Tools
GRIP delivers 50 standardized tools organized into 4 operational suites:
1. Retrieval & Graph Exploration (18 Tools)
graphrag_search: Semantic auto-routed search across vector + graph indices.graphrag_local_search: Keyword-focused neighborhood extraction around target entities.graphrag_global_search: Community-summary synthesis for global queries.graphrag_hybrid_search: Reciprocal rank fusion (RRF) across embeddings and topological proximity.graphrag_entity: Direct entity inspection and attribute retrieval.graphrag_path: Shortest path and constrained hop traversal between two entities.graphrag_neighborhood: Multi-hop neighborhood expansion with depth filters.graphrag_community: Community membership and synthesis summaries.graphrag_schema: Full schema topology, vertex attributes, and edge constraints.graphrag_entity_types: List of all registered vertex types in the active graph.graphrag_relationship_types: List of all registered edge types in the active graph.graphrag_sample: Sample vertices of a specific type for prompt few-shotting.graphrag_temporal_search: Subgraph retrieval bounded by time ranges.graphrag_similarity: Cosine and Jaccard similarity between two texts.graphrag_entity_similarity: Semantic similarity between two graph entities.graphrag_batch_similarity: Similarity ranking for multiple candidate entities.graphrag_next_page: Cursor-based pagination for large neighborhood results.graphrag_format: Formats aSubgraphContextinto token-bounded Markdown or JSON.
2. Provenance, Audit & Governance (10 Tools)
graphrag_provenance: Cryptographic citation trace linking claims to source vertices.graphrag_trajectory: Full agent traversal audit log for debugging graph hops.graphrag_sources: Source document chunks and arXiv IDs for an entity.graphrag_audit: Verifies citation completeness and highlights visited-not-cited entities.graphrag_authorize: Validates caller permissions against active role-based access policies.graphrag_capability_token: Issues signed, short-lived HMAC capability tokens for writes.graphrag_audit_log: Immutable SQLite mutation audit trail.graphrag_status: Backend connectivity, active database status, and uptime metrics.graphrag_config: Runtime protocol configuration and cache policy inspector.graphrag_evaluate: Precision, recall, and multi-hop accuracy evaluation harness.
3. Ingestion, Mutation & Federation (12 Tools)
graphrag_ingest: Ingests raw document text, chunks, and writes vertices/edges (Authorized).graphrag_delete_document: Deletes a document vertex and cascades unreferenced edges (Authorized).graphrag_job_status: Tracks background asynchronous ingestion jobs.graphrag_federated_search: Fans out queries across multiple registered graph backends.graphrag_list_backends: Lists all registered backend connectors (TigerGraph, Neo4j, etc.).graphrag_register_backend: Registers a new federated database backend at runtime.graphrag_entity_link: Resolves and links identical entities across disparate graphs.graphrag_events: Queries recent graph mutation events from the streaming feed.graphrag_watch: Subscribes to filtered real-time graph events with replay tokens.graphrag_export_subgraph: Exports subgraphs to GraphML, Cypher, JSON-LD, or RDF Turtle.graphrag_diff: Computes structural deltas between twoSubgraphContextpayloads.graphrag_diff_queries: Runs two queries concurrently and computes the graph difference.
4. Advanced Intelligence & Agentic Optimization (10 Tools)
graphrag_agent_investigate: Autonomous multi-hop investigator emitting structuredAgenticTrace.graphrag_resolve_conflicts: Detects and resolves contradictory facts using recency and authority.graphrag_triage_query: Predicts optimal query pipeline and estimates Token-ROI.graphrag_count: High-speed entity count by type with optional attribute filtering.graphrag_group_by: Aggregates and groups entities by attribute values.graphrag_top_n: Ranks top-N entities by graph degree or custom attributes.graphrag_stats_summary: Full graph summary statistics (densities, diameters, type counts).graphrag_explain: Generates natural language explanations of why an entity was retrieved.graphrag_explain_path: Generates reasoning narratives along multi-hop traversal paths.graphrag_batch: Concurrent fan-out runner executing up to 25 parallel tool operations.
Supported Database Backends
- TigerGraph Cloud (Savanna): Native
pyTigerGraphREST++ adapter (mcp_server/adapters/tigergraph_adapter.py) with automatic GSQL query installation and high-speed multi-hop traversals. - Neo4j (Cypher & AuraDB): Official Bolt Cypher connector (
mcp_server/adapters/neo4j_adapter.py) supporting APOC procedures, Louvain communities, and vectorized k-NN search. - SQLite Persistent Store: Embedded WAL-mode storage (
mcp_server/storage.py) providing query caching, mutation journals, and streaming event persistence. - Hermetic Memory Adapter: In-memory labeled graph adapter with BFS/Dijkstra shortest paths for local unit testing without credentials.
Testing & Verification
The test suite enforces zero schema drift and verifies all 20 contracts:
# Run the hermetic unit suite (fast, offline, no database required)
pytest tests/test_contracts.py tests/test_mcp_server.py tests/test_schemas.py -v
# Run full integration tests against live TigerGraph backend
pytest -m integration
# Run linter and formatting checks
ruff check mcp_server/ tests/
License
MIT License. Designed for open standards in enterprise Agentic AI.
Metadata
Release files for grip-protocol 0.5.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 |
|---|---|---|---|---|
| grip_protocol-0.5.0.tar.gz | 141.3 kB | Without provenance | Details for grip_protocol-0.5.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| grip_protocol-0.5.0-py3-none-any.whl | Python 3 | none | any | Details for grip_protocol-0.5.0-py3-none-any.whl |
Total release size: 273.1 kB
Release files / grip_protocol-0.5.0.tar.gz
| Download URL | grip_protocol-0.5.0.tar.gz |
|---|---|
| Size | 141.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
62ac2ee166aa3e76e47b9926f745286bd322953642d710f69e2480f656962c1e
|
|
BLAKE2b-256 checksum How to use checksums |
e8b39653071652acf4165f722eddce859d123c2dd7a7b94023f5de8ce1df78d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / grip_protocol-0.5.0-py3-none-any.whl
| Download URL | grip_protocol-0.5.0-py3-none-any.whl |
|---|---|
| Size | 131.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8e37e539a3f75c7413aa1f89cf20ab600bf00c6a4ae839b1428b235c2b92a1e
|
|
BLAKE2b-256 checksum How to use checksums |
aedf310c8e32f5f926f8df2af44029ff757cb38c405f2868fbac6b2718743723
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for grip-protocol 0.5.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.