Mursa MCP
Allows reading, searching, and sending emails through Gmail, including listing emails, getting details, retrieving attachments, searching, sending replies, and composing new messages.
Click on "Deploy 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., "@Mursa MCP List my tasks for today"
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.
Mursa MCP
Connect Claude Code, Claude Desktop, Cursor, or any MCP-compatible client to your Mursa tasks, calendar, goals, notes, habits, projects, and Gmail.
📖 Full guide with screenshots: https://mursa.me/mcp
60-second install
1. Get an API key
Open dashboard.mursa.me and sign in.
Go to Settings → API keys.
Click New key → pick a label, expiry, and scopes → Create.
Copy the key (starts with
mursa_mcp_…). You'll only see it once.
2. Add to your client
Claude Code (~/.claude.json)
{
"mcpServers": {
"mursa": {
"command": "npx",
"args": ["-y", "mursa-mcp"],
"env": { "MURSA_API_KEY": "mursa_mcp_…" }
}
}
}Restart Claude Code, run /mcp to confirm, call whoami to verify.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%/Claude/claude_desktop_config.json (Windows) with the same block,
then restart the app.
Cursor
Settings → MCP → Add new MCP server, same JSON block.
3. That's it
Your agent now has access to whatever scopes your key has.
Related MCP server: Forja MCP Server
Tools (28)
Group | Tools | Scope |
Meta |
| (any) |
Tasks (read) |
|
|
Tasks (write) |
|
|
Calendar |
|
|
Goals |
|
|
Notes |
|
|
Habits |
|
|
Projects |
|
|
|
| |
|
|
* as a scope grants everything.
Security
API keys are sha256-hashed at rest — the raw value is never stored.
Per-key scopes + expiry. Revoke any key instantly from the dashboard.
Per-action rate limits (60/min reads, 30/min writes, 5/min email send).
Every call audit-logged for 90 days (action, status, latency, IP — no payload).
Email attachments capped at 3 MB each / 10 MB total per email.
All traffic goes through
mursa.me/api/mcp; the Supabase function is gated by a shared proxy secret so direct hits return 403.
Run from source (advanced)
git clone https://github.com/Murali1889/Prod-Mursa.git
cd Prod-Mursa/mcp-servers/mursa
npm install
echo 'MURSA_API_KEY=mursa_mcp_…' > .envThen point your client at the absolute path:
{
"mcpServers": {
"mursa": {
"command": "node",
"args": ["/absolute/path/to/mcp-servers/mursa/server.js"]
}
}
}Override the endpoint for preview deployments or local dev:
MURSA_API_URL=https://mursa-preview.vercel.app/api/mcp(Default is https://mursa.me/api/mcp.)
Troubleshooting
Symptom | Fix |
| Mint a fresh key in the dashboard, swap |
| Your key wasn't granted that scope at mint time. Revoke and mint a new one with the scope checked. |
| Connect Gmail from the Mursa app first. |
| Slow down — strict throttle on outbound mail. |
For server-side deployment (running your own Mursa instance), see DEPLOY.md.
Available Tools
28 toolscomplete_taskC
Mark a task as completed.
Inputs: task_id (required).
create_calendar_eventA
Create a calendar event (a task with scheduled_date + start_time/end_time, task_type='meeting' by default).
Inputs: title (required), scheduled_date (required), start_time, end_time, +5 more.
create_goalD
Create a goal.
Inputs: title (required), description, color, target_date, +7 more.
create_noteD
Create a note.
Inputs: title, content, tags, color.
create_taskA
Create a task. With scheduled_date -> MyDay; without -> Inbox.
Inputs: title (required), description, priority, due_date, +11 more.
defer_taskB
Set a task's due_date to a new date (does not change scheduled_date).
Inputs: task_id (required), new_date (required).
delete_goalA
Delete a goal. Tasks that reference it are unlinked first (goal_id set to null).
Inputs: goal_id (required).
get_attachmentA
Download a single attachment from an email. Returns { size, contentBase64 } — decode the base64 to get the bytes.
Inputs: messageId (required), attachmentId (required).
get_emailA
Get the full content of a thread or single message. Returns body text + HTML + attachment metadata (use get_attachment to download).
Inputs: threadId, messageId.
list_calendarB
List calendar events (scheduled tasks with start_time) between two dates. Dates: YYYY-MM-DD.
Inputs: startDate (required), endDate (required).
list_emailsC
List Gmail threads in a label (default INBOX). Returns thread previews (subject/from/snippet/labels/unread).
Inputs: maxResults, pageToken, q, label.
list_goalsB
List your goals, optionally filtered by status ('active', 'completed', ...).
Inputs: status.
list_habitsA
List your active (non-archived) habits.
Inputs: no named parameters.
list_inboxA
List Inbox tasks (unscheduled, personal, not completed by default).
Inputs: status, limit, includeScheduled.
list_mydayB
List tasks scheduled for a specific day (default today). Date: YYYY-MM-DD.
Inputs: date.
list_notesC
List notes, pinned first, then most recently updated.
Inputs: limit.
list_projectsA
List your projects, most recently updated first.
Inputs: no named parameters.
list_scheduleB
List all scheduled tasks between startDate and endDate inclusive. Dates: YYYY-MM-DD.
Inputs: startDate (required), endDate (required).
reply_emailA
Reply to an existing thread. Subject and recipient default to the last message's. Rate-limited to 5/min.
Inputs: threadId (required), to, cc, bcc, +4 more.
schedule_taskB
Move a task onto a specific date (MyDay). Optionally set start/end time and duration.
Inputs: task_id (required), scheduled_date (required), start_time, end_time, +2 more.
search_emailsA
Search Gmail using Gmail's query syntax (e.g. 'from:alice has:attachment newer_than:7d'). Returns message ids; use get_email to fetch.
Inputs: query (required), maxResults.
search_notesC
Search note titles and content by ILIKE.
Inputs: query (required), limit.
search_tasksB
Search task titles by ILIKE match. Returns most recently updated first.
Inputs: query (required), limit.
send_emailB
Send a new email. Attachments are base64-encoded; ≤3MB each, ≤10MB total. Rate-limited to 5/min.
Inputs: to (required), subject (required), cc, bcc, +3 more.
update_goalD
Patch a goal.
Inputs: goal_id (required), title, description, color, +10 more.
update_noteC
Patch a note.
Inputs: note_id (required), title, content, tags, +2 more.
update_taskC
Patch any subset of editable fields on a task.
Inputs: task_id (required), title, description, status, +14 more.
whoamiA
Show which Mursa user this API key belongs to.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 28 tools
Tools are mostly distinct per domain, but slight overlap between create_calendar_event and create_task (both create scheduled tasks), and between list_calendar and list_schedule (both list tasks with dates). Minor confusion possible.
All tool names follow a consistent verb_noun pattern in snake_case (create_, list_, update_, delete_, search_, get_, send_, reply_, complete_, defer_, schedule_). Very predictable.
28 tools is on the higher end but still appropriate for a comprehensive personal productivity server covering tasks, emails, goals, notes, habits, projects, and calendar. No bloated extras.
Significant gaps: missing delete operations for tasks and notes, no update for habits, no CRUD for projects (only list), and no email archive/delete. Agent workflows may hit dead ends.
Related MCP Connectors
Your Aurentia workspace — projects, CRM, tasks, deliverables — in Claude, Cursor or any MCP client.
Your planner in every AI chat: tasks, calendar, docs, habits, goals and memory, over MCP.
Lets Claude, ChatGPT, and Muse read and update your beckett tasks, notes, calendar, and lists.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables Claude Code and Claude Desktop to manage ClickUp tasks, sprints, reports, workspace navigation, and docs through 25+ MCP tools.28MIT
- AlicenseNot gradedqualityBmaintenanceExposes specialized agents as MCP tools so users can manage and triage Jira tasks, analyze repositories for health and conventions, generate commit/PR/DevOps patterns, assemble reports, produce slides and infographics, and run semantic search over a knowledge base. Everything is invokable directly from inside a coding session in Claude Code, Cursor, or Claude Desktop.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants like Claude, Cursor, VS Code, and Windsurf to manage workspaces, projects, tasks, and AI agents through natural language, with a hosted OAuth server or a local stdio package. Also supports generating MCP tools from any OpenAPI spec.2,530 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude, Cursor, VS Code, Windsurf, and other MCP clients to manage workspaces, projects, tasks, and AI agents through natural language, using a hosted OAuth server or local stdio package.2,530 npmMIT