loading…
Search for a command to run...
loading…
Enables AI assistants to access and manage Streamline tasks, notes, tags, and workspaces via a Supabase-powered backend. It supports full CRUD operations, allow
Enables AI assistants to access and manage Streamline tasks, notes, tags, and workspaces via a Supabase-powered backend. It supports full CRUD operations, allowing users to search, create, update, and organize their productivity data through natural language.
MCP server that gives AI assistants access to your Streamline tasks, notes, tags, and workspaces.
Create ~/.config/streamline-mcp/config.json:
{
"projectURL": "https://YOUR_PROJECT_ID.supabase.co",
"apiKey": "YOUR_SERVICE_ROLE_KEY",
"userID": "YOUR_USER_UUID"
}
Where to get these:
apiKey: Supabase Dashboard → Settings → API → service_role keyuserID: Supabase Dashboard → Authentication → Users → Your user IDEdit ~/.claude.json:
{
"mcpServers": {
"streamline": {
"command": "npx",
"args": ["github:YOUR_USERNAME/streamline-mcp"]
}
}
}
Or run locally:
{
"mcpServers": {
"streamline": {
"command": "node",
"args": ["/path/to/streamline-mcp/dist/index.js"]
}
}
}
The tools will now be available.
| Tool | Description |
|---|---|
search_tasks |
Search by name, tags, due date, status, or workspace |
read_task |
Get full details by UUID (includes recurrence info) |
create_task |
Create a new one-time task |
create_recurring_task |
Create a recurring task with a schedule |
update_task |
Update name, notes, due date, urgency |
complete_task |
Mark completed (auto-creates next occurrence for recurring) |
skip_recurring_task |
Skip an occurrence without completing |
pause_recurring_series |
Pause a recurring series |
resume_recurring_series |
Resume a paused series |
end_recurring_series |
Permanently end a series |
delete_task |
Move to trash or delete permanently |
| Tool | Description |
|---|---|
search_notes |
Search by title, content, tags, or workspace |
read_note |
Get full content by UUID |
create_note |
Create with markdown content |
update_note |
Replace content or append |
delete_note |
Move to trash or delete permanently |
| Tool | Description |
|---|---|
list_tags |
List all tags |
create_tag |
Create a new tag |
tag_item |
Add tag to a task or note |
untag_item |
Remove tag from a task or note |
| Tool | Description |
|---|---|
list_workspaces |
List all workspaces with filtering rules |
read_workspace |
Get workspace details (by UUID or name) |
# Create a task with tags and due date
create_task(name: "Review PR", due_date: "tomorrow", tags: ["work"], is_urgent: true)
# Search tasks due today
search_tasks(due_before: "today", include_completed: false)
# Complete a task
complete_task(uuid: "550e8400-e29b-41d4-a716-446655440000")
# Create a daily recurring task
create_recurring_task(
name: "Morning standup",
due_date: "tomorrow",
frequency: "daily",
tags: ["work"]
)
# Create a weekly task on specific days
create_recurring_task(
name: "Gym workout",
due_date: "2025-02-15",
frequency: "weekly",
interval: 1,
weekdays: [2, 4, 6], # Mon, Wed, Fri (1=Sun, 7=Sat)
tags: ["health"]
)
# Create a monthly task
create_recurring_task(
name: "Pay rent",
due_date: "2025-03-01",
frequency: "monthly",
day_of_month: 1,
tags: ["bills"]
)
# Complete a recurring task (auto-creates next occurrence)
complete_task(uuid: "recurring-occurrence-uuid")
# Skip without completing
skip_recurring_task(uuid: "recurring-occurrence-uuid")
# Pause the series (no new occurrences until resumed)
pause_recurring_series(uuid: "any-task-in-series")
# Resume a paused series
resume_recurring_series(uuid: "any-task-in-series")
# End the series permanently
end_recurring_series(uuid: "any-task-in-series")
# Search tasks in a specific workspace
search_tasks(workspace: "Work", due_before: "today")
# Search notes in a workspace
search_notes(workspace: "Projects", query: "meeting notes", limit: 10)
# List workspaces with their filtering rules
list_workspaces(include_rules: true)
# Get workspace details by name
read_workspace(name: "Work")
# Append to a note
update_note(uuid: "...", append: "\n\n## Follow-up\nNew content here")
Recurring tasks in Streamline use a template/occurrence model:
When you complete or skip a recurring task occurrence:
| Option | Description |
|---|---|
frequency |
daily, weekly, monthly, or yearly |
interval |
How many periods between occurrences (default: 1) |
weekdays |
For weekly: which days (1=Sun through 7=Sat) |
day_of_month |
For monthly: which day (1-31) |
anchor |
scheduledDueDate (fixed schedule) or completionDate (relative to when you finish) |
scheduledDueDate (default): Next task is scheduled relative to when it was supposed to be done. Good for fixed schedules like "every Monday".
completionDate: Next task is scheduled relative to when you actually completed it. Good for tasks like "2 weeks after I change the oil".
You can use environment variables instead of a config file:
SUPABASE_URL=https://YOUR_PROJECT_ID.supabase.co
SUPABASE_API_KEY=your_service_role_key
SUPABASE_USER_ID=your_user_uuid
npm install
npm run build
npm start
create_recurring_task - Create tasks with recurrence rulesskip_recurring_task - Skip occurrencespause_recurring_series / resume_recurring_series - Control seriesend_recurring_series - End series permanentlycomplete_task now auto-creates next occurrence for recurring tasksinclude_recurring_templates option to search_tasksread_task now shows recurrence detailsДобавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"streamline-mcp": {
"command": "npx",
"args": []
}
}
}