Complete backend for AI-built apps: data, auth, workflows, SLAs, HITL & RAG in 176 MCP tools.
Connect Remote server
claude mcp add --transport http purple8-hyper-graph https://purple8-graph-sandbox.fly.dev/mcp?profile=starter --header "X-API-Key: <X_API_KEY>"
{
"mcpServers": {
"purple8-hyper-graph": {
"url": "https://purple8-graph-sandbox.fly.dev/mcp?profile=starter",
"headers": {
"X-API-Key": "<X_API_KEY>"
}
}
}
}
{
"servers": {
"purple8-hyper-graph": {
"type": "http",
"url": "https://purple8-graph-sandbox.fly.dev/mcp?profile=starter",
"headers": {
"X-API-Key": "<X_API_KEY>"
}
}
}
}
Settings > Connectors > Add custom connector
URL: https://purple8-graph-sandbox.fly.dev/mcp?profile=starter
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools 28 found in our last check
rag.queryFlat Vector RAG — retrieves the most relevant graph nodes by pure vector similarity (HNSW + RRF fusion + keyword fallback), then calls the configured LLM to generate a grounded answer. Fastest of the three RAG modes (p50 ~45 ms, MRR 0.64); best for single-hop factual questions.…
rag.hybrid_queryHybrid Graph-Vector RAG — fuses vector similarity AND graph structural signals at every stage: dual-seed fusion (Weighted RRF over vector rank + degree centrality), vector-guided BFS, and semantic path scoring. Highest accuracy: MRR 0.85, multi-hop 0.91. ~5x slower (p50 ~240 ms)…
rag.profile_collectionAnalyse the graph topology and return recommended RAG retrieval settings. Profiles node count, edge density, degree distribution, edge-type distribution, and embedding coverage, then derives concrete values for fusion_alpha, max_hops, seed_k, vector_weight, k, and mode. Call thi…
graph.queryExecute a Cypher query against the Purple8 knowledge graph and return matching records. Use for nodes, edges, paths, or aggregated data.
graph.vector_searchFind the k nearest nodes to a natural-language query using the HNSW vector index.
graph.hybrid_searchCombine vector similarity with graph traversal for highest-recall retrieval. Best when graph structure matters.
graph.traverseWalk the graph from a starting node following edges up to a given depth.
graph.add_nodeInsert a new node into the graph (accepts `type`, `label`, or `node_type`). Requires editor role.
graph.add_edgeCreate a directed edge (relationship) between two existing nodes. This is the primary agentic handoff mechanism — agents write their output as edges (e.g. DERIVED_FROM, RISK_ASSESSMENT, EXTRACTED_FROM) so downstream agents can discover work by querying graph state rather than pa…
graph.update_nodeUpdate properties or labels on an existing node. Properties are merged with existing values (patch semantics — only the keys you supply are changed). Labels replace the full label set when provided. Use this to advance agent relay state, e.g. setting {"status": "enriched", "hand…
graph.get_nodeRetrieve a node and all its stored properties by ID.
data.ingest_textExtract entities and relationships from raw text and write them into the graph. Calls preview first, then commits the complete extraction on success. auto_commit=false returns a review-only preview. Pending jobs return job_id for resumption. Original bytes are not stored automat…
data.commitCommit a reviewed extraction or your own extractor's output without invoking DocIntel. Uses the complete POST /ingest/commit contract: entities, relationships, Markdown, spans, tables/pages, context, file_ref or inline file_bytes_b64 and ingestion options. Existing entities are…
journey.startCreate a new Journey Engine instance for an entity and move it to the first stage. All transitions are recorded as immutable graph edges. Requires editor role.
journey.advanceAdvance a journey instance to the next stage. Actor and notes are written to the audit trail as an ADVANCED_TO edge. Requires editor role.
journey.statusReturn the full state and audit trail for a journey instance — every stage transition, AI recommendation, and HITL decision.
journey.defineDefine a new journey type (workflow template) with ordered stages, owner systems, and per-stage SLA policies. Once defined, instances can be started with journey.start. Call this first when building any new workflow — the agent can define the entire process in one call. Use over…
journey.listList journey instances with optional filters. Use this to discover what is in flight, find instances for a specific entity, or check all instances of a given type. Also returns all defined journey types when called with no arguments. Essential for any agent monitoring or orchest…
journey.list_hitlList pending Human-In-The-Loop (HITL) tasks — decisions that require a human (or agent acting as human proxy) to approve, reject, or escalate before the journey can continue. Returns task ID, title, assigned role, description, and the stage the journey is waiting on. An agent ca…
journey.resolve_hitlResolve a Human-In-The-Loop (HITL) task — approve, reject, or escalate it. On approval the journey automatically advances to the next stage if advance_to_stage is set. The decision is written to the immutable graph audit trail with the actor and timestamp. An AI agent acting as…
data.ingest_fileSend a document file (PDF, DOCX, PPTX, XLSX, HTML, IFC, CSV, …) to Purple8 DocIntel for parsing, entity extraction, and graph ingestion. The document is fetched by DocIntel from a public URL, not a local path. The complete extraction is committed only when finished successfully.…
graph.assert_statementIdempotently assert one native RDF quad with exact lexical terms, explicit blank-node scope and optional graph name. Uses existing node/edge create and read permissions, record policies and API-key label restrictions. No bulk import or caller-supplied metadata.
graph.semantic_queryRead-only indexed RDF/LPG pattern query with policy-filtered evidence. Use tagged rdf, lpg and lpg_edge patterns. Returns unified bindings and evidence or, with output_format=nquads, a JSON envelope containing selected asserted N-Quads and selection metadata. Raw work stats are…
graph.countsReturn the total number of nodes in the graph, optionally filtered by label. A cheap situational-awareness call an agent can make before deciding how to query or ingest.
graph.labelsList every node type (label) in the graph with how many nodes carry it, largest first. Cheap — O(types), not O(nodes). Call this first to learn what the graph contains (e.g. Person, Account, Invoice) before querying or filtering by label.
schema.validateValidate the tenant's live graph data against the defined schema. Reports missing required properties, type/enum violations, edge source/target-type violations, and orphan labels (labels present in the graph but undefined in the schema). Returns valid=true with empty violation l…
schema.define_node_typeDefine a new node type — the primitive that lets an agent build the data model itself. The type_name becomes the canonical label for nodes of this type. Set app_id to make the type a per-app IAM boundary (only matching API keys may touch its nodes). Declare properties with per-f…
schema.define_edge_typeDefine a new edge (relationship) type. Constrain which node types may be the source/target, declare edge properties, and set cardinality (one_to_one | one_to_many | many_to_one | many_to_many). Fails 409 if the type already exists.
Headers
| Name | Description |
|---|---|
X-API-KeyRequired, secret | Purple8 API key or free 30-day Cloud Sandbox key from https://www.purple8.ai/try/graph/ |
Details
| Endpoint | https://purple8-graph-sandbox.fly.dev/mcp?profile=starter (Streamable HTTP) |
| Endpoint | https://purple8-graph-sandbox.fly.dev/mcp/sse?profile=starter (SSE) |
| First published | 6 Nov 2026 |
| Last updated | 6 Nov 2026 |
| Registry name | ai.purple8.www/purple8-hyper-graph |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
