zrald
v1.0.6
Published
Advanced Graph RAG MCP Server with sophisticated graph structures, operators, and agentic capabilities for AI agents
Maintainers
Readme
Graph RAG MCP Server
A comprehensive Model Context Protocol (MCP) server implementing advanced Graph RAG (Retrieval-Augmented Generation) architecture with sophisticated graph structures, operators, and agentic capabilities for AI agents.
🚀 Features
Core Graph Structures
- Directed Acyclic Graph (DAG): Workflow planning with dependency management
- Passage Graph: Document chunk relationships with semantic connections
- Trees Graph: Hierarchical knowledge representation with multi-resolution
- Knowledge Graph: Semantic relationships following subject-predicate-object patterns
- Textual Knowledge Graph: Enhanced knowledge graphs with contextual descriptions
Operator Ecosystem
Node Operators
- VDB Operator: Vector similarity search for semantic relevance
- PPR Operator: Personalized PageRank for authority analysis
Relationship Operators
- OneHop Operator: Direct neighborhood exploration
- Aggregator Operator: Multi-relationship synthesis
Chunk Operators
- FromRel Operator: Trace relationships back to source chunks
- Occurrence Operator: Entity co-occurrence analysis
Subgraph Operators
- KHopPath Operator: Multi-step path finding between entities
- Steiner Operator: Minimal connecting networks construction
Execution Patterns
- Sequential Chaining: Step-by-step operator execution
- Parallel Execution: Concurrent operator processing with result fusion
- Adaptive Execution: Intelligent operator selection and optimization
Advanced Capabilities
- Intelligent Query Planning: Automatic operator chain creation
- Multi-Modal Fusion: Combine results from different graph types
- Adaptive Reasoning: Complex reasoning with iterative refinement
- Performance Analytics: Comprehensive metrics and optimization
📦 Installation
# Install via npm
npm install zrald
# Or install globally
npm install -g zraldDevelopment Installation
# Clone the repository for development
git clone https://github.com/augment-code/graph-rag-mcp-server.git
cd graph-rag-mcp-server
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your configuration
# Build the project
npm run build
# Start the server
npm start⚡ Quick Start
import { GraphRAGMCPServer } from 'zrald';
// Initialize the server
const server = new GraphRAGMCPServer();
// Start the MCP server
await server.initialize();
await server.start();
console.log('Graph RAG MCP Server is running!');Using as a CLI
# Start the server directly
graph-rag-mcp-server
# Or with custom configuration
NEO4J_URI=bolt://localhost:7687 graph-rag-mcp-server🔧 Configuration
Prerequisites
- Neo4j Database: For graph storage and querying
- Node.js 18+: Runtime environment
- Memory: Minimum 4GB RAM recommended
Environment Variables
See .env.example for all configuration options.
Key configurations:
NEO4J_URI: Neo4j database connection stringNEO4J_USERNAME/PASSWORD: Database credentialsVECTOR_DIMENSION: Embedding dimension (default: 384)MAX_VECTOR_ELEMENTS: Vector store capacity
🛠️ Usage
Basic Query Planning
// Create an intelligent query plan
const plan = await server.createQueryPlan(
"Find relationships between artificial intelligence and machine learning",
{ reasoning_type: "analytical" }
);
// Execute the plan
const result = await server.executeQueryPlan(plan.id);Individual Operators
// Vector similarity search
const vdbResult = await server.vdbSearch({
query_embedding: [0.1, 0.2, ...], // 384-dimensional vector
top_k: 10,
similarity_threshold: 0.7,
node_types: ["entity", "concept"]
});
// Personalized PageRank analysis
const pprResult = await server.pageRankAnalysis({
seed_nodes: ["ai_node_1", "ml_node_2"],
damping_factor: 0.85,
max_iterations: 100
});
// Multi-hop path finding
const pathResult = await server.pathFinding({
source_nodes: ["source_entity"],
target_nodes: ["target_entity"],
max_hops: 3,
path_limit: 10
});Graph Management
// Add nodes to the knowledge graph
await server.addNodes({
nodes: [
{
id: "ai_concept",
type: "concept",
label: "Artificial Intelligence",
properties: { domain: "technology" },
embedding: [0.1, 0.2, ...] // Optional
}
]
});
// Add relationships
await server.addRelationships({
relationships: [
{
id: "rel_1",
source_id: "ai_concept",
target_id: "ml_concept",
type: "INCLUDES",
weight: 0.9,
confidence: 0.95
}
]
});Advanced Features
// Adaptive reasoning
const reasoningResult = await server.adaptiveReasoning({
reasoning_query: "How does machine learning enable artificial intelligence?",
reasoning_type: "causal",
max_iterations: 5,
confidence_threshold: 0.8
});
// Multi-modal fusion
const fusionResult = await server.multiModalFusion({
fusion_query: "Compare AI approaches across different domains",
graph_types: ["knowledge", "passage", "trees"],
fusion_strategy: "weighted_average"
});🏗️ Architecture
Core Components
src/
├── core/ # Core infrastructure
│ ├── graph-database.ts # Neo4j integration
│ └── vector-store.ts # Vector embeddings store
├── operators/ # Graph RAG operators
│ ├── base-operator.ts # Base operator class
│ ├── node-operators.ts # VDB, PPR operators
│ ├── relationship-operators.ts # OneHop, Aggregator
│ ├── chunk-operators.ts # FromRel, Occurrence
│ └── subgraph-operators.ts # KHopPath, Steiner
├── execution/ # Execution engine
│ └── operator-executor.ts # Orchestration logic
├── planning/ # Query planning
│ └── query-planner.ts # Intelligent planning
├── utils/ # Utilities
│ ├── embedding-generator.ts # Text embeddings
│ └── graph-builders.ts # Graph construction
├── types/ # Type definitions
│ └── graph.ts # Core types
├── mcp-server.ts # MCP server implementation
└── index.ts # Entry pointData Flow
- Query Input → Query Planner analyzes intent and complexity
- Plan Creation → Intelligent operator chain generation
- Execution → Operator orchestration with chosen pattern
- Result Fusion → Combine results using fusion strategy
- Response → Structured output with metadata
🔍 MCP Tools Reference
Query Planning & Execution
create_query_plan: Generate intelligent execution plansexecute_query_plan: Execute pre-created plansexecute_operator_chain: Run custom operator chains
Individual Operators
vdb_search: Vector similarity searchpagerank_analysis: Authority analysisneighborhood_exploration: Direct relationship explorationrelationship_aggregation: Multi-relationship synthesischunk_tracing: Source chunk identificationco_occurrence_analysis: Entity co-occurrence patternspath_finding: Multi-hop path discoverysteiner_tree: Minimal connecting networks
Graph Management
create_knowledge_graph: Build new graph structuresadd_nodes: Insert nodes into graphsadd_relationships: Create relationshipsadd_chunks: Add text chunks to vector store
Analytics & Insights
graph_analytics: Comprehensive graph statisticsoperator_performance: Performance metricsadaptive_reasoning: Complex reasoning capabilitiesmulti_modal_fusion: Cross-graph analysis
🔗 MCP Resources
graph://knowledge-graph: Access to graph structuregraph://vector-store: Vector embeddings informationgraph://operator-registry: Available operatorsgraph://execution-history: Performance history
🧪 Testing
# Run tests
npm test
# Run with coverage
npm run test:coverage
# Lint code
npm run lint
# Format code
npm run format📊 Performance
Benchmarks
- Vector Search: Sub-100ms for 10K embeddings
- PageRank: Converges in <50 iterations for most graphs
- Path Finding: Handles graphs with 100K+ nodes
- Parallel Execution: 3-5x speedup over sequential
Optimization Features
- Intelligent Caching: Query plan and result caching
- Batch Processing: Efficient bulk operations
- Adaptive Thresholds: Dynamic parameter adjustment
- Resource Management: Memory and CPU optimization
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
📄 License
MIT License - see LICENSE file for details.
🆘 Support
- Documentation: See
/docsdirectory - Issues: GitHub Issues
- Discussions: GitHub Discussions
🔮 Roadmap
- [ ] Real-time graph updates
- [ ] Distributed execution
- [ ] Advanced ML integration
- [ ] Custom operator development SDK
- [ ] Graph visualization tools
- [ ] Performance dashboard
Built with ❤️ for the AI agent ecosystem. Empowering intelligent systems with sophisticated graph-based reasoning capabilities.
