Connect Claude to your tasks
This API answers MCP as well as GraphQL. Give Claude the URL below, sign in, and approve what it asks for — nothing else has to be registered by hand.
The URL
https://tasks-api.hayes2.com/mcp
It has to be this URL exactly. Tokens issued for this API name it, and an address it is not reached by refuses them.
Claude on the web, desktop or mobile
- Open Settings → Connectors.
- Choose Add custom connector and paste the URL above.
- Press Connect, sign in, and approve the access it asks for.
Claude Code
claude mcp add --transport http mainframe-tasks https://tasks-api.hayes2.com/mcp
Then run /mcp inside Claude Code and pick this server to sign in. Add --scope user to the command to have it
available in every project rather than just this one.
What you are approving
Signing in shows a consent screen naming the client and everything it asked for:
| Access | What it means |
|---|---|
tasks:read | Read your projects and tasks |
tasks:write | Add, edit, complete and delete tasks |
offline_access | Stay connected without signing in again every hour |
Approving is what grants anything. Registering a client on its own grants nothing.
What Claude can do once connected
| Tool | Needs | What it does |
|---|---|---|
Projects - Listprojects_list | tasks:read | The projects tasks are filed under, and how many are active in each |
Sections - Listsections_list | tasks:read | The headings one project is divided into |
Labels - Listlabels_list | tasks:read | The labels, each with the @name quick add matches |
Templates - Listtemplates_list | tasks:read | The task templates, and the fields each one asks for |
Tasks - Listtasks_list | tasks:read | Tasks, narrowed by view, project, label, status or a search |
Task - Gettask_get | tasks:read | One task in full, with its subtasks, comments, repeat and reminder |
Tasks - Countstask_counts | tasks:read | Inbox, today, overdue and upcoming, in one call |
Tasks - Analyticstask_analytics | tasks:read | What was created and finished, day by day |
Task - Createtask_create | tasks:write | One line of quick-add text: Renew the registration p1 #Home @errand |
Task - Updatetask_update | tasks:write | Title, notes, project, section, labels, priority, due date, reminder, repeat |
Task - Completetask_complete | tasks:write | Marks it done; a repeating task moves to its next occurrence |
Task - Reopentask_reopen | tasks:write | Puts a completed task back on the list |
Task - Duplicatetask_duplicate | tasks:write | Copies a task and its subtasks |
Task - Deletetask_delete | tasks:write | Deletes it and its subtasks |
Tasks - Bulk edittasks_bulk | tasks:write | Complete, reopen, delete or refile a whole list in one call |
Task - Add commenttask_comment_add | tasks:write | Leaves a note on a task |
Task - Create from templatetask_create_from_template | tasks:write | Fills a template in and gets an ordinary task |
Project - Createproject_create | tasks:write | A new project to file tasks under |
Project - Updateproject_update | tasks:write | Renames it or changes how it looks |
Project - Archiveproject_archive | tasks:write | Puts a finished project away, or brings it back |
Project - Deleteproject_delete | tasks:write | Deletes it and everything filed in it |
Section - Createsection_create | tasks:write | Adds a heading to a project |
Section - Updatesection_update | tasks:write | Renames a heading or moves it |
Section - Reordersection_reorder | tasks:write | Rewrites the order of a project's headings |
Section - Deletesection_delete | tasks:write | Removes a heading; its tasks are kept |
Label - Createlabel_create | tasks:write | A new label to tag tasks with |
Label - Updatelabel_update | tasks:write | Renames a label or changes its color |
Label - Deletelabel_delete | tasks:write | Deletes it; the tasks carrying it lose the tag |
Template - Createtemplate_create | tasks:write | A kind of task, and the questions it asks |
Template - Updatetemplate_update | tasks:write | Changes a template and the fields it asks for |
Template - Deletetemplate_delete | tasks:write | Deletes it; the tasks made from it are untouched |
Claude is only offered the tools your approval covers, and the API enforces the same scopes on every operation — so an approval that covers reading cannot change anything by any route. Every tool that reads is marked read-only, and every one that deletes says so, which is what lets a client run the reads without asking each time.
Ready-made prompts
Beside the tools, this server offers three prompts. Each one is a routine somebody would otherwise have to describe every time, and all three propose what they would do before changing anything:
| Prompt | What it walks through |
|---|---|
Daily reviewdaily_review | What is overdue, due today, and sitting in the inbox |
Weekly planweekly_plan | The week just gone, and the one ahead |
Inbox triageinbox_triage | Files everything in the inbox into a project |
Managing or removing access
Every connection shows up under Connected apps on your account page. Disconnecting one there signs it out and forgets the approval, so it has to be approved again rather than quietly reconnecting.
If it will not connect
- Check the URL ends in
/mcp. The address without it is this page. - A connector added before you had access to this API will keep failing until you remove it and add it again.
- If Claude can see your tasks but cannot change them, the approval covered
tasks:readonly — disconnect it on your account page and connect again.