tobi-mcp-server
v1.1.0
Published
MCP server for Tobi AI - Brain Dump and Task Management integration for Claude Desktop, Cursor, and other MCP clients
Maintainers
Readme
Tobi MCP Server
An MCP (Model Context Protocol) server that exposes Tobi AI's productivity features to AI assistants like Claude Desktop, Cursor, and Windsurf.
Features
- Brain Dump - Convert unstructured thoughts into organized tasks
- Task Management - Create, read, and update tasks
- Project Organization - View projects for task organization
- Life Graph - Search your contacts and organizations
- Daily Brief - Get your personalized morning brief
Requirements
- Pro subscription at tobiai.app
- Node.js 18+
Setup
1. Get an API Key
- Go to tobiai.app/settings/integrations
- Click Generate New Key
- Copy the key (starts with
tk_live_)
Note: API keys are only shown once. Save it securely!
2. Configure Your MCP Client
Claude Desktop
Add to ~/.claude/mcp.json:
{
"mcpServers": {
"tobi": {
"command": "npx",
"args": ["tobi-mcp-server"],
"env": {
"TOBI_API_KEY": "tk_live_your_key_here"
}
}
}
}Then restart Claude Desktop.
Cursor
Add to your Cursor MCP configuration (Settings > MCP):
{
"tobi": {
"command": "npx",
"args": ["tobi-mcp-server"],
"env": {
"TOBI_API_KEY": "tk_live_your_key_here"
}
}
}3. Test It
Ask Claude or your AI assistant:
"Use Tobi to brain dump: I need to fix the login bug, prepare slides for Monday's meeting, and remember to buy groceries"
You should see tasks created in your Tobi account!
Available Tools
brain_dump
Send unstructured text to Tobi AI for processing into tasks.
Input:
text(string, required): Your unstructured thoughts, minimum 10 characters
Output:
- Summary of tasks created
- List of tasks with priorities and due dates
- Any insights or emotional flags detected
- Clarifying questions if the AI needs more context
Example:
"need to fix the auth bug before Friday, call mom sometime this week,
and we should probably add rate limiting at some point"get_tasks
Retrieve tasks from Tobi with optional filtering.
Input:
status(string, optional): "todo", "in_progress", "done", or "archived"priority(string, optional): "low", "medium", "high", or "urgent"projectId(string, optional): Filter to a specific projectlimit(number, optional): Max results (default: 50, max: 100)offset(number, optional): Pagination offset
Output:
- List of tasks with full details (title, priority, status, due dates, project)
- Pagination info
Example use cases:
- "Show me my urgent tasks"
- "What bugs do I need to fix?"
- "Get all tasks in the Backend project"
create_task
Create a new task in Tobi.
Input:
title(string, required): Task titledescription(string, optional): Additional detailspriority(string, optional): "low", "medium", "high", or "urgent" (default: medium)status(string, optional): "todo", "in_progress", or "done" (default: todo)dueDate(string, optional): Due date in YYYY-MM-DD formatdueTime(string, optional): Due time in HH:MM formatprojectId(string, optional): Assign to a projectestimatedMinutes(number, optional): Time estimateisHardDeadline(boolean, optional): Whether due date is firm
Output:
- Created task with all details
Example use cases:
- "Create a task to fix the authentication bug"
- "Add a high priority task due Friday: Review PR #123"
- "Log this bug: Users can't reset passwords"
update_task
Update an existing task.
Input:
id(string, required): Task ID to updatetitle(string, optional): New titledescription(string, optional): New descriptionpriority(string, optional): New prioritystatus(string, optional): New status (use "done" to complete)dueDate(string/null, optional): New due date or null to removedueTime(string/null, optional): New due time or null to removeprojectId(string/null, optional): Move to project or null to removeestimatedMinutes(number/null, optional): Update estimateisHardDeadline(boolean, optional): Update deadline type
Output:
- Updated task with all details
Example use cases:
- "Mark task abc123 as done"
- "Change the priority of task xyz789 to urgent"
- "Move task to the Backend project"
get_projects
Get all projects for task organization.
Input:
- None required
Output:
- List of projects with names, IDs, colors, and task counts
Example use cases:
- "What projects do I have?"
- "Get project IDs so I can assign tasks"
life_graph_search
Search contacts and organizations in Tobi's Life Graph.
Input:
query(string, optional): Search term (name, email, company)type(string, optional): "people", "organizations", or "all" (default: all)isVip(boolean, optional): Filter to VIP contacts onlylimit(number, optional): Max results (default: 20, max: 50)
Output:
- Matching people with contact info and relationship scores
- Matching organizations with interaction history
Example use cases:
- "Find John's contact info"
- "Who are my VIP contacts?"
- "Look up Acme Corp"
- "Find people I haven't talked to recently"
daily_brief
Get your personalized morning brief.
Input:
- None required
Output:
- Today's task summary
- Meeting schedule with prep tips
- Emails needing attention
- Relationship reminders
- Warnings about deadlines or overload
Example use cases:
- "What's on my plate today?"
- "Give me my morning brief"
- "What should I focus on?"
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| TOBI_API_KEY | Yes | Your Tobi API key (starts with tk_live_) |
| TOBI_API_BASE | No | Override API URL (default: https://api.tobiai.app/api) |
Workflows
Bug Tracking While Coding
When you find a bug while coding, use create_task:
"Create an urgent task: Login redirect failing on Safari -
users see blank page after OAuth callback.
File: src/auth/callback.ts"End of Day Review
Use get_tasks and update_task together:
- "Show me tasks I worked on today (status: in_progress)"
- "Mark task abc123 as done"
- "Move task xyz789 to tomorrow" (update dueDate)
Meeting Preparation
Use life_graph_search before meetings:
"Search Life Graph for John Smith at Acme Corp"Get context on who you're meeting with, last interactions, and relationship health.
Morning Planning
Use daily_brief to start your day:
"Get my daily brief from Tobi"See what's urgent, what meetings you have, and who needs follow-up.
Troubleshooting
"Invalid API key"
- Verify your key starts with
tk_live_ - Check that the key hasn't been revoked at tobiai.app/settings/integrations
"Pro subscription required"
- API access requires a Pro subscription
- Upgrade at tobiai.app/pricing
"TOBI_API_KEY environment variable is required"
- Make sure the
envblock is correctly configured in your MCP client
"Task limit reached"
- Free tier has a 50 task limit
- Upgrade to Pro for unlimited tasks
Development
# Install dependencies
pnpm install
# Build
pnpm build
# Run with inspector
pnpm inspectorLicense
MIT
