Version: v9.2.0+ Last Updated: January 18, 2026
- Overview
- Features
- Relationship Types
- Memory Types
- Accessing the Dashboard
- Using the Graph Visualization
- API Endpoints
- Troubleshooting
- Performance
- Future Roadmap
The Knowledge Graph Dashboard provides an interactive visualization of your memory relationships using D3.js v7.9.0. It allows you to explore the connections between memories, understand causal chains, and discover hidden patterns in your knowledge base.
Key Capabilities:
- Visual Exploration: Interactive force-directed graph with zoom, pan, and drag
- Typed Relationships: 6 semantic relationship types for rich knowledge graphs
- Analytics: Bar chart showing distribution of relationship types
- Multi-Language: Full UI localization in 7 languages
- Dark Mode: Seamless integration with dashboard theme
- Performance: Tested with 2,730 relationships
The graph visualization uses D3.js force simulation to automatically layout memories and their relationships.
Node Representation:
- Color: Memory type (observation, decision, learning, error, pattern)
- Size: Fixed size for consistent visualization
- Label: Memory content (truncated, hover for full text)
Edge Representation:
- Color: Relationship type (causes, fixes, contradicts, supports, follows, related)
- Direction: Arrows indicate asymmetric relationships
- Style: Solid lines for all relationship types
Interactive Controls:
- Zoom: Mouse wheel or pinch gesture (mobile)
- Pan: Click and drag background
- Drag Nodes: Click and drag any node to explore connections
- Hover Tooltips: Shows memory details (content, type, created date)
A Chart.js bar chart displays the breakdown of relationship types in your knowledge graph.
Chart Features:
- Real-time Data: Updates with graph data
- Color-Coded Bars: Matches relationship type colors
- Dark Mode Support: Adapts to dashboard theme
- Counts: Shows exact count for each relationship type
The dashboard UI is fully localized in 7 languages:
| Language | Code | Translation Keys |
|---|---|---|
| English | en | 22 keys |
| Chinese | zh | 22 keys |
| German | de | 22 keys |
| Spanish | es | 22 keys |
| French | fr | 22 keys |
| Japanese | ja | 22 keys |
| Korean | ko | 22 keys |
Total: 154 translation keys added in v9.2.0
The Knowledge Graph supports 6 semantic relationship types:
Direction matters: A→B ≠ B→A
| Type | Description | Example | Direction |
|---|---|---|---|
| causes | A causes or leads to B | "Bug in auth" causes "Login failure" | One-way |
| fixes | A fixes or resolves B | "Mutex lock" fixes "Race condition" | One-way |
| supports | A provides evidence for B | "Benchmark" supports "Performance claim" | One-way |
| follows | A follows B in sequence | "Step 2" follows "Step 1" | One-way |
No direction: A↔B = B↔A
| Type | Description | Example | Direction |
|---|---|---|---|
| contradicts | A contradicts or conflicts with B | "Use React" contradicts "Use Vue" | Two-way |
| related | A is related to B (general connection) | "OAuth guide" related to "Auth setup" | Two-way |
In the graph:
- Asymmetric relationships: Displayed with arrow indicating direction
- Symmetric relationships: Displayed without arrows (bidirectional)
- Color: Each relationship type has a unique color for easy identification
Memories are color-coded by type in the graph:
| Type | Description | Color | Use Case |
|---|---|---|---|
| observation | General observations, facts, discoveries | Blue | Project facts, code observations |
| decision | Decisions, planning, architecture choices | Green | Design decisions, roadmap items |
| learning | Learnings, insights, patterns discovered | Yellow | Lessons learned, best practices |
| error | Errors, failures, debugging information | Red | Bug reports, error logs |
| pattern | Patterns, trends, recurring behaviors | Purple | Code patterns, user behaviors |
Other Types:
discovery,context,task,code_edit, etc. are displayed with default styling
The Knowledge Graph Dashboard is part of the HTTP dashboard server:
# Start both MCP and HTTP servers
./start_all_servers.sh
# Or start HTTP server only
python scripts/server/run_http_server.pyDefault URL: http://localhost:8000
- Open http://localhost:8000 in your browser
- Click Analytics in the top navigation bar
- Select Knowledge Graph from the dropdown or sidebar
Direct URL: http://localhost:8000/analytics/knowledge-graph
Zoom:
- Mouse Wheel: Scroll up to zoom in, scroll down to zoom out
- Touch: Pinch gesture on mobile/tablet
- Limits: 0.1x to 10x zoom range
Pan:
- Mouse: Click and drag on the background (not on nodes)
- Touch: Single finger drag on background
Drag Nodes:
- Mouse: Click and drag any node to reposition
- Release: Node continues moving with simulation forces
- Pin: Node stays in place while you explore
Hover:
- Mouse: Hover over any node to see tooltip with:
- Full memory content
- Memory type
- Created date
- Content hash
Finding Related Memories:
- Drag a node to the center of the view
- Observe connected nodes via edges
- Hover on connected nodes to read details
- Drag connected nodes to explore further
Following Causal Chains:
- Identify a starting node (e.g., an error)
- Follow causes edges (red arrows) to find root causes
- Follow fixes edges (green arrows) to find solutions
- Zoom in on specific areas of interest
Detecting Contradictions:
- Look for contradicts edges (orange lines)
- Examine both nodes to understand the conflict
- Use this to identify inconsistencies in your knowledge base
Interpreting the Chart:
- X-axis: Relationship type names
- Y-axis: Count of relationships
- Bars: Color-matched to relationship types in graph
- Hover: Shows exact count
Use Cases:
- Identify which relationship types you use most
- Detect imbalanced knowledge graphs (too many "related", not enough "causes")
- Track knowledge graph growth over time
The Knowledge Graph Dashboard uses two new API endpoints:
Get the distribution of relationship types in the graph.
Request:
curl http://localhost:8000/api/analytics/relationship-typesResponse:
{
"causes": 245,
"fixes": 180,
"contradicts": 32,
"supports": 156,
"follows": 89,
"related": 2028
}Use Case: Populate the relationship type distribution chart
Get graph data optimized for D3.js force-directed layout.
Request:
curl http://localhost:8000/api/analytics/graph-visualizationResponse:
{
"nodes": [
{
"id": "abc123...",
"content": "Implemented JWT authentication",
"type": "decision",
"created_at": "2026-01-15T10:30:00Z"
},
{
"id": "def456...",
"content": "Fixed token expiration bug",
"type": "error",
"created_at": "2026-01-16T14:20:00Z"
}
],
"links": [
{
"source": "def456...",
"target": "abc123...",
"relationship_type": "fixes"
}
]
}Fields:
- nodes: Array of memory objects with id, content, type, created_at
- links: Array of relationship objects with source, target, relationship_type
Use Case: Render the force-directed graph in D3.js
If API key authentication is enabled:
curl -H "X-API-Key: your-api-key" \
http://localhost:8000/api/analytics/graph-visualizationProblem: Graph shows "No relationships found" or empty screen
Solutions:
- Check for relationships: Use MCP tool
get_memory_subgraphto verify relationships exist# Via Claude Code/Desktop "Show me the subgraph for memory abc123..."
- Verify backend: Graph is SQLite-only in v9.2.0, ensure you're using
sqlite_vecorhybridbackend - Check migrations: Run
python scripts/migration/add_relationship_type_column.pyto addrelationship_typecolumn - Restart server:
./scripts/update_and_restart.sh
Problem: Graph is laggy or unresponsive with many nodes
Solutions:
- Reduce node count: Filter by memory type or date range (planned for v9.3.0)
- Check browser: Use modern browser (Chrome 90+, Firefox 88+, Safari 14+)
- Close other tabs: D3.js is CPU-intensive, reduce browser load
- Lower quality: Reduce zoom level to render fewer labels
Performance Benchmarks:
- 100 nodes: Smooth, <50ms frame time
- 500 nodes: Smooth, ~100ms frame time
- 2,730 nodes: Tested, works but may have occasional lag on older hardware
Problem: All relationships show as "related" type
Cause: Migration did not run or existing relationships created before v9.0.0
Solution:
- Run migration:
python scripts/migration/add_relationship_type_column.py - Update existing relationships via MCP tools:
# Via Python API from mcp_memory_service.storage.factory import create_storage storage = create_storage("sqlite_vec") storage.update_relationship_type( source_hash="abc123...", target_hash="def456...", relationship_type="causes" )
Problem: Chart or graph not adapting to dark mode
Solutions:
- Refresh page: Force CSS reload with Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows)
- Clear cache: Browser cache may have old styles
- Check theme setting: Ensure dashboard theme is set correctly in settings
Problem: UI shows English instead of selected language
Cause: Language not fully implemented or browser language detection issue
Solution:
- Check language support: Only 7 languages supported (en, zh, de, es, fr, ja, ko)
- Manual selection: Select language in dashboard settings
- Fallback: Falls back to English if translation missing
Hardware:
- 2,730 relationships on MacBook Pro (M1, 16GB RAM)
- Graph render time: ~2 seconds initial load
- Interaction latency: <50ms for zoom/pan/drag
- Chart render time: <100ms
Browser Compatibility:
- ✅ Chrome 90+ (recommended)
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Edge 90+
For large graphs (1000+ relationships):
- Limit node rendering: Use D3.js
scaleExtentto prevent over-zooming - Reduce labels: Only show labels when zoomed in
- Cluster nodes: Group related memories (planned for v9.3.0)
- Pagination: Load graph in chunks (planned for v9.3.0)
Current implementation:
- All relationships loaded at once
- No server-side filtering (coming in v9.3.0)
- Client-side rendering only
Hybrid Backend Graph Sync:
- Sync graph relationships to Cloudflare D1
- Enable multi-device graph visualization
- Background sync for hybrid backend
Server-Side Filtering:
- Filter by memory type
- Filter by relationship type
- Filter by date range
- Filter by tag
Enhanced Visualization:
- Node clustering for large graphs
- Hierarchical layout option
- Timeline view for temporal relationships
- 3D graph visualization (experimental)
Advanced Analytics:
- Centrality analysis (identify key memories)
- Community detection (find memory clusters)
- Path analysis (shortest paths, all paths)
- Influence tracking (memory impact over time)
Export and Integration:
- Export graph as PNG/SVG
- Export data as GraphML/GEXF
- Integration with external graph tools (Gephi, Neo4j)
- Embedding in external dashboards
AI-Powered Insights:
- Automatic relationship suggestion
- Anomaly detection (missing connections)
- Knowledge gap identification
- Semantic similarity visualization
- Knowledge Graph Guide - Core knowledge graph concepts
- Memory Type Ontology Guide - Memory type taxonomy
- API Reference - Complete API documentation
- Troubleshooting Guide - General troubleshooting
For issues, questions, or feature requests:
- GitHub Issues: https://github.com/doobidoo/mcp-memory-service/issues
- Discussions: https://github.com/doobidoo/mcp-memory-service/discussions
- Wiki: https://github.com/doobidoo/mcp-memory-service/wiki
Version History:
- v9.2.0 (2026-01-18) - Initial Knowledge Graph Dashboard release