Streamline MCP provides AI assistants with programmatic access to manage tasks, notes, tags, and workspaces in the Streamline productivity app via Supabase integration.
Task Management
Search tasks by name, tags, due date, status, or workspace
Read full task details by UUID
Create one-time tasks with name, notes, due date, urgency, and tags
Create recurring tasks (daily, weekly, monthly, yearly) with customizable intervals, weekdays, and anchor types
Update task name, notes, due date, and urgency
Complete/uncomplete tasks (recurring tasks auto-generate the next occurrence)
Skip a single occurrence of a recurring task
Pause, resume, or permanently end a recurring task series
Delete tasks (trash or permanent)
Note Management
Search notes by title, content, tags, or workspace
Read full note content by UUID
Create notes with markdown content and tags
Update notes by replacing or appending content, or changing flag/archive status
Delete notes (trash or permanent)
Tag Management
List all tags (including hidden ones)
Create new tags
Add or remove tags from tasks or notes
Workspace Management
List all workspaces (optionally with filtering rules)
Read workspace details by UUID or name
Allows AI assistants to access and manage Streamline data stored in a Supabase backend, enabling operations for searching, creating, and updating tasks, notes, tags, and workspaces.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Streamline MCPcreate a task to review the project proposal by Friday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Streamline MCP
MCP server that gives AI assistants access to your Streamline tasks, notes, tags, and workspaces.
Setup
1. Configure credentials
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_rolekeyuserID: Supabase Dashboard → Authentication → Users → Your user ID
2. Add to Claude Code
Edit ~/.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"]
}
}
}3. Restart Claude Code
The tools will now be available.
Tools
Tasks
Tool | Description |
| Search by name, tags, due date, status, or workspace |
| Get full details by UUID (includes recurrence info) |
| Create a new one-time task |
| Create a recurring task with a schedule |
| Update name, notes, due date, urgency |
| Mark completed (auto-creates next occurrence for recurring) |
| Skip an occurrence without completing |
| Pause a recurring series |
| Resume a paused series |
| Permanently end a series |
| Move to trash or delete permanently |
Notes
Tool | Description |
| Search by title, content, tags, or workspace |
| Get full content by UUID |
| Create with markdown content |
| Replace content or append |
| Move to trash or delete permanently |
Tags
Tool | Description |
| List all tags |
| Create a new tag |
| Add tag to a task or note |
| Remove tag from a task or note |
Workspaces
Tool | Description |
| List all workspaces with filtering rules |
| Get workspace details (by UUID or name) |
Examples
Basic Tasks
# 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")Recurring Tasks
# 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")Workspace Filtering
# 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")Notes
# Append to a note
update_note(uuid: "...", append: "\n\n## Follow-up\nNew content here")Recurring Tasks - How It Works
Recurring tasks in Streamline use a template/occurrence model:
Template: A hidden "master" task that stores the recurrence rule
Occurrences: The visible tasks you interact with
When you complete or skip a recurring task occurrence:
The occurrence is marked complete/skipped
The next occurrence is automatically created based on the rule
Recurrence Options
Option | Description |
|
|
| How many periods between occurrences (default: 1) |
| For weekly: which days (1=Sun through 7=Sat) |
| For monthly: which day (1-31) |
|
|
Anchor Types
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".
Environment Variables
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_uuidDevelopment
npm install
npm run build
npm startChangelog
v1.1.0
Added full recurring task support:
create_recurring_task- Create tasks with recurrence rulesskip_recurring_task- Skip occurrencespause_recurring_series/resume_recurring_series- Control seriesend_recurring_series- End series permanentlycomplete_tasknow auto-creates next occurrence for recurring tasks
Added
include_recurring_templatesoption tosearch_tasksread_tasknow shows recurrence details
v1.0.0
Initial release with tasks, notes, tags, and workspaces
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.