HydraGraph MCP

HydraGraph MCP

Serves graph-native code questions from a TypeScript codebase as an MCP server. It extracts structural graphs via tree-sitter and HydraDB to answer callers, impact, and context queries.

Category
Visit Server

README

HydraGraph MCP

HydraGraph turns a TypeScript codebase into an explicit structural graph and serves graph-native code questions to any MCP client. It uses tree-sitter for AST extraction and self-hosted HydraDB for graph storage and OpenCypher traversal.

Status: early hackathon MVP. TypeScript/TSX is the deliberately narrow first-language scope.

Why the implementation differs from the hosted Hydra docs

The self-hosted hydra-db/hydradb repository does not expose the hosted knowledge SDK methods (upload.knowledge, full_recall, or graph_relations_by_source_id). Its documented public interfaces are Neo4j-compatible Bolt and:

POST /v1/graphs/{graph_id}/query

HydraGraph therefore inserts AST-derived vertices and edges with batched, parameterized OpenCypher UNWIND queries. CALLS, CALLS_API, IMPORTS, and CONTAINS edges are explicit and deterministic; no LLM relationship inference is involved. Static frontend fetch() paths are matched to Express route registrations to preserve cross-boundary dependencies.

MCP tools

  • find_callers: direct reverse traversal over CALLS edges.
  • impact_of_change: bounded transitive reverse traversal over CALLS and CALLS_API for a symbol or route's blast radius.
  • explain_context: accepts a natural-language question, matches it to a HydraDB symbol, and returns structured callers, callees, call-site evidence, and two-hop impact for the MCP client's own model to reason over.

Quickstart

Requirements: Node.js 20+, npm, Docker Desktop, and PowerShell for the bundled Windows HydraDB startup script.

npm install
Copy-Item .env.example .env
npm run hydradb:start
$env:HYDRADB_TOKEN = "local-development-token-32-bytes"

The development script binds Bolt, HTTP, and admin ports to 127.0.0.1 only. It must not be used as a public deployment configuration.

Clone the real validation target next to this repository:

git clone https://github.com/sayan365/docwise ../target-docwise
npm run index -- ../target-docwise --dry-run
npm run index -- ../target-docwise
npm run hydradb:validate
npm run mcp:smoke

mcp:smoke verifies the tool schemas and makes live graph-backed impact_of_change and natural-language explain_context calls. No external LLM API key is required; the calling MCP client performs the reasoning.

The index command replaces HydraGraph's generated CodeNode data and its four relationship types. The MVP intentionally stores one repository per configured HydraDB graph.

Build and run the stdio MCP server:

npm run build
node dist/src/server.js

Real validation scenario

The target is sayan365/docwise, Sayan's TypeScript/React document-analysis application. HydraGraph extracts 27 source files, 92 nodes, and 165 resolved relationships, including six Express route nodes and four CALLS_API edges. It verifies this real cross-boundary chain from the checked-out source:

ScanView event handlers
  -> scanSample / scanDocumentText / scanDocumentFile
  -> analyzeWithAI
       -> getLanguage
       -> POST /api/analyze-document

That makes the headline question concrete: changing the /api/analyze-document response format reaches analyzeWithAI, all three scan entry points, and their upstream UI handlers. External and ambiguous ordinary calls remain unresolved instead of being guessed; the current dry run reports 449 such calls and zero unresolved static fetch() paths.

What HydraDB contributes

Without HydraDB, this project is an AST dump plus in-process maps. HydraDB persists the structural model and answers traversal queries: callers are incoming CALLS edges, and impact is a bounded breadth-first traversal over HydraDB results. The database is load-bearing, not an optional storage swap.

Verification

npm run check
npm test
npm run hydradb:validate
npm run mcp:smoke

Attribution

License

MIT. See LICENSE. Project requirements and milestone evidence are tracked in docs/PRD.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured