A Model Context Protocol (MCP) server that provides Claude with access to your Limitless AI lifelogs. Deploy to Cloudflare Workers with GitHub OAuth authentication for secure access.
Limitless is a personalized AI wearable device (the Pendant) that helps you capture and recall conversations, meetings, and thoughts throughout your day. The Pendant features:
- 🎙️ Conversation Recording - Captures meetings, personal reflections, and spontaneous thoughts with crystal clear audio
- 🔖 Moment Bookmarking - Tap the device to bookmark important moments
- 🧠 AI-Powered Insights - Ask questions about your recorded conversations and get personalized insights
- 🔒 Privacy-First - HIPAA-compliant with permission-based data protection
- 🔋 All-Day Battery - Lightweight wearable with durable aluminum body
This MCP server allows Claude to access your Limitless lifelogs, enabling you to search, retrieve, and analyze your recorded conversations directly within Claude.
Note: This project requires manual setup rather than one-click deployment because it needs secure API keys (Limitless AI, GitHub OAuth) and creates KV namespaces for OAuth token storage. The setup process ensures your credentials remain private and secure.
- 🔍 Search Lifelogs - Hybrid semantic and keyword search across all your recordings
- 📝 Retrieve Full Content - Get complete lifelog content including transcripts and summaries
- 📅 List Recent Recordings - Browse your latest lifelogs with date filtering
- 🔐 Secure Authentication - GitHub OAuth integration for secure access
- ⚡ Edge Deployment - Runs on Cloudflare Workers for low latency
- 🎯 Claude Integration - Seamlessly works with Claude.ai as a custom connector
- Cloudflare account (free tier works)
- Limitless AI account and API key
- GitHub account for OAuth
- Node.js 18+ installed locally
- Claude Pro/Max/Team/Enterprise subscription
This project runs perfectly on Cloudflare's free tier, which includes:
- 100,000 requests per day (more than enough for personal use)
- 10ms CPU time per invocation (sufficient for API calls)
- Up to 1MB KV storage (plenty for OAuth tokens)
- Unlimited Durable Objects (for MCP agent state)
- No credit card required
For typical usage with Claude, you'll likely use less than 1% of these limits.
git clone https://github.com/BurtTheCoder/mcp-limitless.git
cd mcp-limitless
npm installRun the automated setup script:
./setup.shThis will:
- Create your
wrangler.tomlconfiguration - Set up KV namespaces for OAuth storage
- Create a
.dev.varstemplate for local development
- Go to app.limitless.ai
- Navigate to Settings → API
- Generate or copy your API key
- Go to GitHub Settings → Developer settings → OAuth Apps
- Click "New OAuth App"
- Fill in:
- Application name:
Limitless MCP Server - Homepage URL:
https://your-worker.workers.dev(you'll get this after deploy) - Authorization callback URL:
https://your-worker.workers.dev/github/callback
- Application name:
- Save your Client ID and Client Secret
Edit .dev.vars:
LIMITLESS_API_KEY="your-limitless-api-key-here"
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"npm run devYour server will be available at http://localhost:8787
Test the OAuth flow by visiting: http://localhost:8787/authorize
Run the deployment script:
./deploy.shThis will prompt you to enter your secrets securely and deploy to Cloudflare Workers.
You'll get a URL like: https://limitless-mcp-server.your-account.workers.dev
After deployment, update your GitHub OAuth App's callback URL to:
https://limitless-mcp-server.your-account.workers.dev/github/callback
- Go to Claude.ai
- Navigate to Settings → Connectors
- Click "Add custom connector"
- Enter your Workers URL with
/sseendpoint:https://limitless-mcp-server.your-account.workers.dev/sse - Click "Add" and authorize with GitHub when prompted
- Enable the connector in your chat
Once connected, Claude will have access to these tools:
-
Limitless Ai:search_lifelogs- Search using natural language or boolean operators- Example: "meetings about the new project"
- Example: "dinner OR lunch with Bob"
-
Limitless Ai:get_lifelog- Retrieve a specific lifelog by ID- Returns full content including transcript and summaries
-
Limitless Ai:list_recent_lifelogs- List your recent recordings- Supports date filtering and pagination
- Can filter by starred status
mcp-limitless/
├── src/
│ ├── github-oauth-index.ts # Main entry point with OAuth
│ ├── mcp-agent.ts # MCP server implementation
│ ├── simple-index.ts # Alternative without GitHub OAuth
│ └── index.ts # Alternative implementation
├── wrangler.toml.example # Cloudflare config template
├── setup.sh # Automated setup script
├── deploy.sh # Deployment script
├── package.json # Dependencies
└── README.md # This file
| Variable | Required | Description |
|---|---|---|
LIMITLESS_API_KEY |
Yes | Your Limitless AI API key |
GITHUB_CLIENT_ID |
Yes | GitHub OAuth App Client ID |
GITHUB_CLIENT_SECRET |
Yes | GitHub OAuth App Client Secret |
ENABLE_IP_ALLOWLIST |
No | Set to "true" to only allow Anthropic IPs |
RATE_LIMIT_KV |
No | KV namespace binding for rate limiting |
To use without GitHub OAuth, change the main entry in wrangler.toml:
main = "src/simple-index.ts" # Simple approval page instead of GitHub-
"MCP error -32000: Connection closed"
- Ensure you're using the
/sseendpoint - Check that OAuth authentication completed successfully
- Ensure you're using the
-
"Tool not found" errors in Claude
- Tools are namespaced as
Limitless Ai:tool_name - Claude should automatically detect this
- Tools are namespaced as
-
404 errors from Limitless API
- Verify your API key is correct
- Check that your Limitless account has API access enabled
# Stream live logs from your worker
npx wrangler tail
# Or view in Cloudflare Dashboard
# Go to Workers & Pages → your-worker → Logs- Limitless API: 180 requests per minute
- Cloudflare Workers Free: 100,000 requests per day
- OAuth 2.0 with PKCE for secure authorization
- API keys stored as encrypted Cloudflare secrets
- OAuth tokens expire after 1 hour
- GitHub OAuth provides identity verification
- HTTPS enforced by Cloudflare Workers
- IP Allowlisting: Restrict access to Anthropic's official IPs only
- Rate Limiting: Prevent abuse with configurable request limits
- Security Headers: HSTS, CSP, X-Frame-Options automatically applied
To enable enhanced security features, see SECURITY.md for detailed configuration.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally and with deployment
- Submit a pull request
MIT License - See LICENSE file for details
- Limitless Support: help.limitless.ai
- Issues: GitHub Issues
- MCP Documentation: modelcontextprotocol.io
- Built with Model Context Protocol by Anthropic
- Powered by Cloudflare Workers
- Integrates with Limitless AI