The Heptabase MCP server enables AI assistants to interact with Heptabase backup data through multiple functions:
Backup Management: Configure paths, list available backups, and load specific backups
Search Operations: Find whiteboards and cards using queries, filters, tags, and date ranges
Data Retrieval: Access whiteboard and card data, including cards within specific areas
Export Functions: Export content to Markdown, JSON, and HTML formats
Analysis Tools: Analyze card relationships, compare backups, and evaluate graph metrics
Summaries: Generate whiteboard summaries
Debugging: Access server state information for troubleshooting
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Heptabase MCPsearch for whiteboards about project planning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@heptabase/mcp
A Model Context Protocol (MCP) service for interacting with Heptabase backup data. This service allows AI assistants like Claude to search, retrieve, analyze, and export Heptabase whiteboards and cards.
Features
π Search whiteboards and cards
π Automatic backup file management
π Export to multiple formats (Markdown, JSON, Mermaid)
π Analyze card relationships
π Generate whiteboard summaries
β‘ Smart caching for performance
Related MCP server: Supabase MCP Server
Quick Start
Installation and Setup
Clone and install:
git clone <repository-url> cd heptabase-mcp npm installConfigure using environment variables:
cp .env.example .env # Edit .env with your actual pathsBuild the project:
npm run buildTest locally (optional):
npm start
Using with Claude Desktop
Configure Claude Desktop to use your local build:
Edit your Claude Desktop config file:
macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"heptabase": {
"command": "/path/to/node",
"args": ["/path/to/your/heptabase-mcp/dist/index.js"],
"env": {
"HEPTABASE_BACKUP_PATH": "/path/to/your/heptabase/backups",
"HEPTABASE_AUTO_EXTRACT": "true",
"HEPTABASE_WATCH_DIRECTORY": "true"
}
}
}
}Important:
Replace
/path/to/nodewith your Node.js path (find withwhich node)Replace
/path/to/your/heptabase-mcpwith your actual project pathSet
HEPTABASE_BACKUP_PATHto your Heptabase backup directory
See QUICK_START.md for detailed setup instructions.
Configuration
This project uses a privacy-safe configuration system:
Example files (safe for git):
claude-config-example.json,.env.examplePersonal files (gitignored):
claude-config-*personal*.json,.env
See CONFIG.md for detailed configuration instructions.
Basic Usage
// Configure backup path
await mcpClient.callTool({
name: "configureBackupPath",
parameters: {
path: "/path/to/your/heptabase/backups"
}
});
// List available backups
const backups = await mcpClient.callTool({
name: "listBackups"
});
// Search for whiteboards
const whiteboards = await mcpClient.callTool({
name: "searchWhiteboards",
parameters: {
query: "Project Planning"
}
});
// Get full whiteboard content
const whiteboard = await mcpClient.callTool({
name: "getWhiteboard",
parameters: {
whiteboardId: "your-whiteboard-id",
includeCards: true,
includeConnections: true
}
});
// Export to markdown
const markdown = await mcpClient.callTool({
name: "exportWhiteboard",
parameters: {
whiteboardId: "your-whiteboard-id",
format: "markdown"
}
});Available Tools
Backup Management
configureBackupPath- Set backup directorylistBackups- List available backupsloadBackup- Load a specific backup
Search Operations
searchWhiteboards- Search whiteboards by name or contentsearchCards- Search cards across all whiteboards
Data Retrieval
getWhiteboard- Get complete whiteboard datagetCard- Get card content in multiple formatsgetCardContent- Get card content as resource (bypasses size limits)getCardsByArea- Find cards by position on whiteboard
Export Functions
exportWhiteboard- Export to Markdown, JSON, HTML formatssummarizeWhiteboard- Generate AI-powered summaries
Analysis Tools
analyzeGraph- Analyze card relationships and connectionscompareBackups- Compare different backup versions
Debug Tools
debugInfo- Get system status and diagnostics
Development
Project Structure
heptabase-mcp/
βββ src/
β βββ index.ts # Main entry point
β βββ server.ts # MCP server implementation
β βββ services/ # Core business logic
β β βββ BackupManager.ts # Backup file management
β β βββ HeptabaseDataService.ts # Data querying
β βββ tools/ # MCP tool implementations
β βββ types/ # TypeScript definitions
β βββ utils/ # Helper functions
βββ tests/ # Test suites
βββ docs/ # Documentation
βββ config files # Configuration templatesTesting
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run with coverage
npm run test:coverage
# Run integration tests
npm run test:integrationBuilding
# Build for production
npm run build
# Development mode with auto-reload
npm run dev
# Type checking only
npm run type-checkDocumentation
π Complete Specification - Detailed API and architecture
π Quick Start Guide - Get up and running fast
βοΈ Configuration Guide - Safe configuration practices
π Claude Desktop Setup - Local development setup
Privacy & Security
This project follows privacy-by-design principles:
β Personal paths are never committed to git
β Backup data stays local on your machine
β Configuration templates use safe placeholders
β Gitignore protects sensitive files
Requirements
Node.js 18+
Heptabase with backup exports enabled
Claude Desktop (for MCP integration)
Troubleshooting
Common Issues
"No backups found" - Check your
HEPTABASE_BACKUP_PATHpoints to the correct directory"Command not found" - Ensure Node.js is installed and paths are correct
Claude doesn't see tools - Restart Claude Desktop completely after config changes
Build errors - Run
npm installandnpm run buildbefore using
Debug Mode
Use the debugInfo tool to check system status:
await mcpClient.callTool({ name: "debugInfo" });Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Ensure all tests pass
Submit a pull request
See SPECIFICATION.md for architecture details.
License
MIT License - see LICENSE file for details.
Support
π Bug reports: GitHub Issues
π¬ Questions: GitHub Discussions
π§ Security issues: Please report privately
Made with β€οΈ for the Heptabase community