hubmesh MCP server
io.github.DemigodDSK/hubmesh·v0.4.2·2 starsDeterministic multi-hop graph retrieval for RAG. Zero LLM calls in the query path.
2 stars130 downloads/wk
Reviews
Write oneNobody has reviewed hubmesh yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
hubmesh tools (8)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
entity_neighborsExplore around an entity: which documents mention it and which entities it connects to (with co-occurrence weight / predicates). Useful for choosing the next hop when retrieve() alone is ambiguous.
get_documentFull text of one document (retrieve() returns snippets only).
graph_statsCorpus overview: sizes plus the highest-degree entities — the hubs PPR diffusion flows through.
index_corpusIndex documents into a named corpus: embeds them, builds the entity knowledge graph (spaCy NER), and persists everything to disk. `documents` is a list of {"id": str, "text": str}. Re-using an existing name replaces that corpus. Indexing cost is paid once — queries afterwards are ~milliseconds.
list_corporaList indexed corpora with their stats (doc / node / edge counts). Start here to see what is queryable.
path_betweenConnection paths between two entities through the entity-document graph — up to `k_paths` paths, shortest first. INTERPRETATION CAUTION: the shortest path can ride an incidental co-mention (two names in the same sentence); longer paths with more `via_documents` often reflect the more meaningful chain. Report the nature of the connection, not just its existence.
resolve_entitiesResolve free-text entity names to knowledge-graph nodes (alias index + fuzzy fallback). Use before seeding retrieve() to confirm an entity exists and see its canonical label.
retrieveGraph-aware retrieval: entity seeds + Personalized PageRank over the corpus knowledge graph, fused with cosine similarity.
Public scan report
scanner v0.1.10 · 2026-10-03 · same rubric, same numbers if you re-run it
- Code scan20 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 14 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How hubmesh compares
Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 90% of 4,460 AI and agents servers
- Tools
- 8
- the typical AI and agents server has 6
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2
- more than 65% of 2,711 AI and agents servers
- Downloads a week
- 130
- more than 68% of 1,538 AI and agents servers with a package
What its tools let an agent do: 8 read
Install hubmesh in Claude Code, Cursor or VS Code
claude mcp add hubmesh -- uvx hubmesh
What the publisher says
From the hubmesh repository's README, as published. We do not edit it. Read it on GitHub
hubmesh
<!-- mcp-name: io.github.DemigodDSK/hubmesh -->
Centrality-aware GraphRAG retrieval planner. Drop-in layer over any vector DB.
hubmesh is a Python library that improves multi-hop RAG quality on top of an existing vector database. You don't replace your infrastructure — you add a smart planner between your vector DB and your LLM.
What problem this solves
Naive vector retrieval ("embed query, get top-k by cosine similarity") fails on multi-hop questions like "Where was the founder of the company that acquired Slack born?" The correct answer requires retrieving entities along a reasoning path, not the single most similar item.
GraphRAG and HippoRAG showed that running a small Personalized PageRank over a knowledge graph at query time can substantially improve multi-hop retrieval. hubmesh extends that line with two contributions:
seeds are the question's own entities resolved against the corpus graph (alias index; falls back to the entities of the top cosine matches when the question names none); in kNN mode they are the ANN top-k. The multi-component score — cosine relevance, pooled PPR mass, and multi-anchor convergence, min-max normalized and fused 3:1:1 — is applied to the document ranking, not to seed choice.
- Entity-anchored seeding, multi-component ranking. In KG mode the PPR
the LLM's context window with explicit coverage and redundancy control rather than just truncating top-k.
- Budget-aware context packing. Once relevant entities are scored, pack them into
The multi-component scoring pattern is adapted from the NNSI framework (Naidu et al., CCIS 2934, Springer, 2026) for SDN topology optimization, repurposed here for retrieval planning.
Quickstart
In-memory (testing, small corpora)
from hubmesh import Planner
from hubmesh.adapters import InMemoryStore
embed = ... # callable: text -> np.ndarray
docs = [...] # list of Document or strings or dicts
store = InMemoryStore.from_documents(docs, embed=embed)
planner = Planner(store=store, embed=embed)
result = planner.retrieve(query="...", top_k=10, budget_tokens=4000)Qdrant adapter (production)
from hubmesh import Planner
from hubmesh.adapters import QdrantStore
store = QdrantStore.from_documents(docs) # in-memory
store = QdrantStore.from_documents(docs, path="./qdrant_data") # on-disk
store = QdrantStore.from_documents(docs, url="http://localhost:6333") # remote
planner = Planner(store=store, embed=embed)
result = planner.retrieve(query="...", top_k=10)Chroma adapter
from hubmesh.adapters import ChromaStore
store = ChromaStore.from_documents(docs) # ephemeral
store = ChromaStore.from_documents(docs, persist_directory="./chroma_data")
store = ChromaStore.from_documents(docs, host="localhost", port=8000)Multi-hop / KG mode
from hubmesh.kg import build_entity_kg
import spacy
nlp = spacy.load("en_core_web_sm")
kg = build_entity_kg(docs, nlp=nlp)
planner = Planner(store=store, kg=kg, nlp=nlp, embed=embed) # embed= needed for text queries
result = planner.retrieve(query="Where was the founder of the company that bought Slack born?",
top_k=10, budget_tokens=4000)Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
hubmesh: common questions
- Is hubmesh MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the hubmesh safety report
- How do I install hubmesh?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does hubmesh need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is hubmesh maintained?
- The last commit was 46 days ago (2026-09-19). The latest release is v0.4.2.
- What can I use instead of hubmesh?
- Servers from other publishers that do the same job: Tw Legal Rag MCP server, Serena MCP: the IDE for your agent MCP server and PaperBanana MCP server.
- How does hubmesh compare with other AI and agents MCP servers?
- safety score 92/100 (higher than 90% of 4,460 AI and agents servers); tools 8 (the typical AI and agents server has 6); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to hubmesh
Same job from other publishers: the closest match first, then the best rated.
Tw Legal RagCitation-guarded retrieval over 22M Taiwan court judgments and administrative interpretationsnot reviewedEstablishedA- Serena MCP: the IDE for your agentA powerful toolkit for coding, providing semantic retrieval and editing capabilities.not reviewedWidely usedC
- PaperBananaGenerate academic diagrams and statistical plots from text using multi-agent AI.not reviewedEstablishedA
- Local RagEasy-to-setup local RAG server with minimal configurationnot reviewedEstablishedA
- Butterbase AIButterbase MCP server — manage your backend: schemas, auth, functions, storage, RAG, deploys.not reviewedEstablishedA