
Beeper MCP Server
Provides read-only access to local Beeper message history on macOS, enabling users to search conversations, read messages, and list recent chats through natural language queries. Supports both SQLite and IndexedDB storage formats with privacy-focused local-only operation.
README
Beeper MCP Server
A Model Context Protocol (MCP) server that provides read-only access to Beeper messages on macOS. This server allows Claude Desktop and other MCP clients to search and read your local Beeper message history.
Features
- Read-only access to local Beeper SQLite and IndexedDB (LevelDB) databases
- Auto-discovery of Beeper databases in common macOS locations
- Dual storage format support: SQLite and IndexedDB/LevelDB
- Cross-version compatibility with different Beeper/Element database schemas
- Three MCP tools:
list_conversations
: View recent conversations with metadataread_messages
: Read messages from specific conversationssearch_messages
: Search across all message content
- Privacy-focused: No network requests, no data persistence, local-only operation
- Security: SQL injection protection, read-only database connections
Quick Start
Prerequisites
- Python 3.8 or higher
- Beeper desktop app installed on macOS
- Claude Desktop (for integration)
- For IndexedDB support: LevelDB libraries (install with
brew install leveldb
)
Installation
- Clone this repository:
git clone https://github.com/yourusername/beeper-mcp-server.git
cd beeper-mcp-server
- Install dependencies:
pip install -r requirements.txt
- Test the server:
python main.py
The server should start and display: Starting Beeper MCP server...
Press Ctrl+C to stop.
Claude Desktop Integration
- Open Claude Desktop settings
- Navigate to Developer → Model Context Protocol
- Add a new MCP server with the following configuration:
{
"beeper": {
"command": "python",
"args": ["/path/to/beeper-mcp-server/main.py"]
}
}
Replace /path/to/beeper-mcp-server
with the actual path where you cloned this repository.
- Restart Claude Desktop
- Look for the 🔌 icon to confirm the server is connected
Usage Examples
Once integrated with Claude Desktop, you can use these commands:
List Recent Conversations
Ask Claude: "Use the beeper tool to list my recent conversations"
Read Messages from a Conversation
Ask Claude: "Read the last 20 messages from conversation [conversation_id]"
Search Messages
Ask Claude: "Search my Beeper messages for 'meeting tomorrow'"
Configuration
The server uses config.json
for configuration. Default settings:
{
"database_paths": [
"~/Library/Application Support/Beeper",
"~/Library/Application Support/Beeper/IndexedDB",
"~/.config/Beeper",
"~/Library/Application Support/Element",
"~/.config/Element"
],
"max_results": 50,
"log_level": "INFO"
}
Custom Database Paths
If Beeper is installed in a non-standard location, add the path to database_paths
in config.json
.
Environment Variables
You can also set database paths via environment variable:
export BEEPER_DB_PATH="/custom/path/to/beeper"
python main.py
Troubleshooting
Server won't start
- Ensure Python 3.8+ is installed:
python --version
- Check that all dependencies are installed:
pip install -r requirements.txt
- Verify the file has execute permissions:
chmod +x main.py
No conversations found
- Ensure Beeper desktop app has been used and has message history
- Check that Beeper is installed in one of the default locations
- Try adding your Beeper installation path to
config.json
- Check logs for database discovery details
- For IndexedDB: Look for
.indexeddb.leveldb
directories in Application Support
Permission errors
- The server only needs read access to Beeper databases
- On macOS, you may need to grant terminal/Python disk access in System Preferences → Security & Privacy
Database not found
Run the test script to check database discovery:
python test_server.py
Testing
Run the included test utilities:
# Test database discovery
python test_server.py --discover
# Test with sample data
python test_server.py --sample
# Full integration test
python test_server.py --full
Security Notes
- Read-only: All database connections are read-only
- Local only: No network requests or external communication
- No persistence: No data is cached or stored
- Input validation: All user inputs are validated and parameterized
- SQL injection protection: Uses parameterized queries throughout
Development
Project Structure
beeper-mcp-server/
├── main.py # MCP server entry point
├── beeper_reader.py # Database access logic
├── requirements.txt # Python dependencies
├── config.json # Configuration
├── README.md # This file
└── test_server.py # Testing utilities
Adding New Features
- Database queries: Add to
beeper_reader.py
- New MCP tools: Register in
main.py
- Configuration options: Update
config.json
and_load_config()
Debugging
Enable debug logging:
{
"log_level": "DEBUG"
}
Or via command line:
python main.py --debug
Known Limitations
- macOS only (uses macOS-specific paths)
- Read-only access (by design)
- Limited to local Beeper installations
- Message formatting may vary by Beeper version
- IndexedDB support requires plyvel library and system LevelDB installation
Contributing
Pull requests welcome! Please:
- Maintain read-only operation
- Add tests for new features
- Update documentation
- Follow existing code style
License
MIT License - see LICENSE file for details
Support
For issues or questions:
- Check troubleshooting section above
- Review debug logs
- Open an issue on GitHub
Recommended Servers
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.
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.
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.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.