loading…
Search for a command to run...
loading…
Enables AI assistants to interact with Limitless AI Pendant recordings, search, retrieve, and analyze lifelogs via the Model Context Protocol.
Enables AI assistants to interact with Limitless AI Pendant recordings, search, retrieve, and analyze lifelogs via the Model Context Protocol.
Version Status License: MIT codecov
An advanced Model Context Protocol (MCP) server that enables AI assistants to interact with Limitless AI Pendant recordings. This server provides a seamless bridge between your AI tools and Limitless API, allowing you to extract insights, search through recordings, and analyze your Pendant data.
⚠️ Beta Release: This is an early release (v0.0.1). While core features are implemented and tested, we need community feedback to validate all functionality. Please report any issues!
git clone https://github.com/ericbuess/limitless-ai-mcp-server.git
cd limitless-ai-mcp-server
npm install
npm run build
claude mcp add limitless -s user -e LIMITLESS_API_KEY="your-key" -- node $(pwd)/dist/index.js
npm install -g limitless-ai-mcp-server
# Clone the repository
git clone https://github.com/ericbuess/limitless-ai-mcp-server.git
cd limitless-ai-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Optional: Link globally
npm link
# Add to your shell profile (.bashrc, .zshrc, etc.)
export LIMITLESS_API_KEY="your-api-key-here"
# Optional: Configure custom settings
export LIMITLESS_TIMEOUT=120000 # Timeout in milliseconds
export LIMITLESS_BASE_URL="https://api.limitless.ai/v1" # Custom API endpoint
export LOG_LEVEL="INFO" # Options: DEBUG, INFO, WARN, ERROR
# Optional: Configure caching
export CACHE_MAX_SIZE=100 # Maximum cached items
export CACHE_TTL=300000 # Cache lifetime in ms (5 minutes)
export SEARCH_CACHE_MAX_SIZE=50 # Search cache size
export SEARCH_CACHE_TTL=180000 # Search cache lifetime (3 minutes)
If you're using Claude Code (Anthropic's official CLI), run:
# Option 1: Using the command directly (recommended)
npm install -g limitless-ai-mcp-server
claude mcp add limitless -s user -e LIMITLESS_API_KEY="your-api-key-here" -- limitless-ai-mcp-server
# Option 2: Using node with the full path (most reliable with nvm)
npm install -g limitless-ai-mcp-server
# Find where npm installed it:
npm list -g limitless-ai-mcp-server
# Then use the direct path (adjust the node version as needed):
claude mcp add limitless -s user -e LIMITLESS_API_KEY="your-api-key-here" -- node ~/.nvm/versions/node/v22.0.0/lib/node_modules/limitless-ai-mcp-server/dist/index.js
# Option 3: Using local installation
cd /path/to/limitless-ai-mcp-server
npm install && npm run build
claude mcp add limitless -s user -e LIMITLESS_API_KEY="your-api-key-here" -- node /path/to/limitless-ai-mcp-server/dist/index.js
# Verify it's running
claude mcp list
# Remove if needed
claude mcp remove limitless -s user
Find your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonOpen the file (create it if it doesn't exist) and add:
{
"mcpServers": {
"limitless": {
"command": "node",
"args": ["/path/to/limitless-ai-mcp-server/dist/index.js"],
"env": {
"LIMITLESS_API_KEY": "your-api-key-here"
}
}
}
}
Replace the placeholders:
/path/to/limitless-ai-mcp-server → Your actual installation path (e.g., /Users/yourname/limitless-ai-mcp-server)your-api-key-here → Your Limitless API key from limitless.ai/developersRestart Claude Desktop for the changes to take effect
Verify it's working: Type "Show me my recent recordings" in Claude
Refer to your client's documentation for MCP server configuration.
limitless_get_lifelog_by_idRetrieves a single recording by its unique ID.
Parameters:
lifelog_id (required): The unique identifierincludeMarkdown: Include markdown content (default: true)includeHeadings: Include headings (default: true)limitless_list_lifelogs_by_dateLists all recordings for a specific date.
Parameters:
date (required): Date in YYYY-MM-DD formatlimit: Maximum results (max: 100)direction: Sort order ('asc' or 'desc')timezone: IANA timezoneincludeMarkdown: Include markdown contentincludeHeadings: Include headingslimitless_list_lifelogs_by_rangeLists recordings within a date/time range.
Parameters:
start (required): Start date/timeend (required): End date/timelimit: Maximum resultsdirection: Sort ordertimezone: IANA timezoneincludeMarkdown: Include markdown contentincludeHeadings: Include headingslimitless_list_recent_lifelogsLists the most recent recordings.
Parameters:
limit: Number of recordings (default: 10, max: 100)timezone: IANA timezoneincludeMarkdown: Include markdown contentincludeHeadings: Include headingslimitless_search_lifelogsSearches for keywords in recent recordings.
Parameters:
search_term (required): Text to search forfetch_limit: How many recent logs to search (default: 20, max: 100)limit: Maximum results to returnincludeMarkdown: Include markdown contentincludeHeadings: Include headingsThis server implements all five core MCP protocol features to provide multiple ways to access and analyze your Limitless data:
Browse and access your lifelogs as structured resources. Resources provide a file-system-like interface to your recordings.
Available URIs:
lifelog://recent - Browse recent recordingslifelog://2024-01-15 - Browse recordings from a specific datelifelog://2024-01-15/abc123 - Access a specific recordingUsage in Claude:
"Browse my recent recordings"
"Show me resources from January 15th"
"Open lifelog://recent"
Pre-built prompt templates for common analysis tasks. Each prompt can be customized with arguments.
Available Prompts:
date (required)date or dateRange (optional)date or searchTerm (optional)date (required)searchTerm (required)Usage in Claude:
"Use the daily-summary prompt for yesterday"
"Extract action items from this week"
"Show me key topics I discussed about the project"
Enable AI-powered content analysis of your recordings. The sampling feature allows the AI to process and analyze lifelog content directly.
Capabilities:
Usage in Claude:
"Analyze the tone of my meetings this week"
"Summarize the key decisions from yesterday's recordings"
"Find patterns in how I discuss project timelines"
Automatically exposes server capabilities to MCP clients. This allows Claude and other tools to understand what features are available.
Exposed Information:
The server includes an intelligent caching system to optimize performance:
Cache Features:
Configuration (via environment variables):
CACHE_MAX_SIZE - Maximum cached items (default: 100)CACHE_TTL - Cache lifetime in ms (default: 300000 / 5 minutes)SEARCH_CACHE_MAX_SIZE - Search cache size (default: 50)SEARCH_CACHE_TTL - Search cache lifetime (default: 180000 / 3 minutes)Once configured, you can interact with your Limitless data naturally:
"Show me all my recordings from yesterday"
"Search for conversations where I discussed 'project timeline'"
"Get the recording with ID abc123 and summarize the key points"
"List my recordings from last week and identify action items"
"What did I discuss in meetings between Monday and Wednesday?"
import { LimitlessClient } from 'limitless-ai-mcp-server';
const client = new LimitlessClient({
apiKey: process.env.LIMITLESS_API_KEY,
timeout: 120000,
});
// Get recent recordings
const recentLogs = await client.listRecentLifelogs({ limit: 5 });
// Search for specific content
const results = await client.searchLifelogs({
searchTerm: 'project update',
fetchLimit: 50,
});
// Get recordings by date
const todaysLogs = await client.listLifelogsByDate('2024-01-15', {
includeMarkdown: true,
});
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run tests
npm test
# Run linting
npm run lint
# Format code
npm run format
limitless-ai-mcp-server/
├── src/
│ ├── core/ # Core business logic
│ │ └── limitless-client.ts
│ ├── tools/ # MCP tool definitions and handlers
│ │ ├── definitions.ts
│ │ ├── handlers.ts
│ │ └── schemas.ts
│ ├── types/ # TypeScript type definitions
│ │ └── limitless.ts
│ ├── utils/ # Utility functions
│ │ ├── date.ts
│ │ ├── format.ts
│ │ ├── logger.ts
│ │ └── retry.ts
│ └── index.ts # Main server entry point
├── tests/ # Test files
├── examples/ # Usage examples
└── dist/ # Compiled output
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
Contributions are welcome! Please follow these steps:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Please ensure:
npm run lint)"No lifelogs found"
Timeout errors
export LIMITLESS_TIMEOUT=300000Authentication errors
Enable debug logging for more information:
export LOG_LEVEL=DEBUG
MCP server not showing up
dist/index.js is absolute, not relativenpm run build after cloning"Command failed" errors
node --versionLIMITLESS_API_KEY=your-key node dist/index.jsNo data returned
"MCP Server Status: failed" with npx
This is a known issue where npx doesn't reliably find globally installed packages when using nvm.
Solution: Use the direct command or full path instead:
# Instead of: -- npx limitless-ai-mcp-server
# Use: -- limitless-ai-mcp-server
# Or: -- node ~/.nvm/versions/node/vXX.X.X/lib/node_modules/limitless-ai-mcp-server/dist/index.js
Finding the correct path with nvm
# First, check which Node version you're using:
node --version
# Then find where the package is installed:
npm list -g limitless-ai-mcp-server
# The path will be something like:
# ~/.nvm/versions/node/v22.0.0/lib/node_modules/limitless-ai-mcp-server
This project is licensed under the MIT License - see the LICENSE file for details.
Note: This project is not officially affiliated with Limitless AI. It's an independent implementation of an MCP server for the Limitless API.
Run in your terminal:
claude mcp add limitless-ai-mcp-server -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.