Heptabase MCP
A Model Context Protocol service that allows AI assistants to search, retrieve, analyze, and export data from Heptabase backups.
README Documentation
@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
Quick Start
Installation and Setup
-
Clone and install:
git clone <repository-url> cd heptabase-mcp npm install -
Configure using environment variables:
cp .env.example .env # Edit .env with your actual paths -
Build the project:
npm run build -
Test 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.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.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 path - Set
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.example - Personal 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 templates
Testing
# 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:integration
Building
# Build for production
npm run build
# Development mode with auto-reload
npm run dev
# Type checking only
npm run type-check
Documentation
- š 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