Skip to content

MCP Tools Reference

This is the complete reference for all 16 Hypertask MCP tools. Each tool maps to an HTTP API endpoint on https://mcp.hypertask.ai. All requests require a Bearer token in the Authorization header.


Returns information about the currently authenticated user.

Endpoint: GET /api/mcp/user/context

Parameters: None

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
https://mcp.hypertask.ai/api/mcp/user/context

Example response:

{
"id": 6,
"email": "valentin@example.com",
"displayName": "Valentin"
}

List all projects accessible to the current user.

Endpoint: GET /api/mcp/projects

Parameters:

ParameterTypeRequiredDefaultDescription
statusstringNoNormalFilter by status: Normal, Archive, Deleted
searchstringNoSearch projects by name
limitnumberNo50Max results to return
offsetnumberNo0Pagination offset
sort_bystringNotitleSort field: title, createdAt, updatedAt
sort_orderstringNoascSort direction: asc, desc

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
"https://mcp.hypertask.ai/api/mcp/projects?status=Normal&limit=10"

Example response:

{
"projects": [
{
"id": 15,
"title": "Hypertask Product",
"status": "Normal",
"createdAt": "2024-11-01T10:00:00Z"
}
],
"total": 1
}

Create a new board, including its sections, labels, and an initial set of tasks, in a single call.

Endpoint: POST /api/mcp/boards

Body parameters:

ParameterTypeRequiredDescription
team_idnumberYesThe team that owns the new board. Find yours via hypertask_get_user_context.
titlestringYesBoard title
sectionsobject[]YesSections (columns) to create. Each: { "title": string }
labelsobject[]NoLabels to pre-create on the board. Each: { "name": string }
tasksobject[]NoStarter tasks. Each: { "title", "section", "description"?, "priority"?, "labels"?, "assignee_ids"? }

Example request:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"team_id": 3,
"title": "Website Redesign",
"sections": [
{ "title": "Backlog" },
{ "title": "Doing" },
{ "title": "Done" }
],
"labels": [
{ "name": "Design" },
{ "name": "Frontend" }
],
"tasks": [
{
"title": "Wireframe the homepage",
"section": "Backlog",
"labels": ["Design"],
"priority": "high"
}
]
}' \
https://mcp.hypertask.ai/api/mcp/boards

Example response:

{
"board": {
"id": 42,
"title": "Website Redesign",
"sections": [
{ "id": 201, "title": "Backlog" },
{ "id": 202, "title": "Doing" },
{ "id": 203, "title": "Done" }
],
"labels": [
{ "id": 7001, "name": "Design" },
{ "id": 7002, "name": "Frontend" }
],
"tasks": [
{ "id": 9001, "ticketNumber": "WEB-1", "title": "Wireframe the homepage" }
]
}
}

List sections on a project board.

Endpoint: GET /api/mcp/projects/{projectId}/sections

Path parameters:

ParameterTypeRequiredDescription
projectIdnumberYesThe project ID

Query parameters:

ParameterTypeRequiredDefaultDescription
include_hiddenbooleanNofalseInclude hidden sections

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
https://mcp.hypertask.ai/api/mcp/projects/15/sections

Example response:

{
"sections": [
{ "id": 101, "title": "Backlog" },
{ "id": 102, "title": "Todo" },
{ "id": 103, "title": "Doing" },
{ "id": 104, "title": "Review" },
{ "id": 105, "title": "Done" }
]
}

Create a new section on a project board.

Endpoint: POST /api/mcp/projects/{projectId}/sections

Path parameters:

ParameterTypeRequiredDescription
projectIdnumberYesThe project ID

Body parameters:

ParameterTypeRequiredDescription
titlestringYesSection name (1-200 characters)
after_section_idnumberNoInsert after this section. Omit to append at the end

Example request:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/projects/15/sections \
-d '{"title": "QA", "after_section_id": 104}'

Example response:

{
"id": 106,
"title": "QA"
}

hypertask_list_tasks / hypertask_get_tasks

Section titled “hypertask_list_tasks / hypertask_get_tasks”

List tasks with filtering, or retrieve specific tasks by ID.

Endpoint: GET /api/mcp/tasks

Parameters:

ParameterTypeRequiredDescription
task_idnumberNoGet a specific task by internal ID
ticket_numberstringNoGet a task by ticket number (e.g. HYP-42)
project_idnumberNoFilter by project
board_idnumberNoFilter by board
sectionstringNoFilter by section name
assigned_tostringNome, unassigned, or a user ID
prioritystringNourgent, high, medium, low
statusstringNoNormal, Archive, Deleted
labelsstringNoComma-separated label names
has_due_datebooleanNoFilter tasks with/without due dates
due_date_beforestringNoISO 8601 date
due_date_afterstringNoISO 8601 date
created_bynumberNoFilter by creator user ID
created_sincestringNoISO 8601 datetime
updated_sincestringNoISO 8601 datetime
has_commentsbooleanNoFilter tasks with/without comments
has_attachmentsbooleanNoFilter tasks with/without attachments
searchstringNoSimple text search on title
limitnumberNoMax results (default varies)
offsetnumberNoPagination offset

Example request — list tasks in “Todo” assigned to me:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
"https://mcp.hypertask.ai/api/mcp/tasks?board_id=15&section=Todo&assigned_to=me"

Example request — get a single task by ticket number:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
"https://mcp.hypertask.ai/api/mcp/tasks?ticket_number=HYP-42"

Example response:

{
"tasks": [
{
"id": 1234,
"ticket_number": "HYP-42",
"title": "Add file upload validation",
"description": "<p>Validate file types before upload.</p>",
"priority": "high",
"section": "Todo",
"assignees": [
{ "id": 6, "displayName": "Valentin" }
],
"createdAt": "2025-01-15T09:00:00Z",
"updatedAt": "2025-01-16T14:30:00Z"
}
],
"total": 1
}

Full-text search across all accessible tasks. Powered by Typesense for fast, typo-tolerant results.

Endpoint: GET /api/mcp/tasks/search

Parameters:

ParameterTypeRequiredDefaultDescription
querystringYesSearch query (max 200 characters)
board_idnumberNoLimit search to a specific board
project_idnumberNoLimit search to a specific project
sectionstringNoFilter by section name
assigned_tostringNome, unassigned, or a user ID
prioritystringNoFilter by priority level
has_due_datebooleanNoFilter by due date presence
statusstringNoNormal, Archive, Deleted
limitnumberNo10Max results (max 50)

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
"https://mcp.hypertask.ai/api/mcp/tasks/search?query=upload%20validation&board_id=15&limit=5"

Example response:

{
"tasks": [
{
"id": 1234,
"ticket_number": "HYP-42",
"title": "Add file upload validation",
"section": "Todo",
"priority": "high",
"score": 0.95
}
],
"total": 1
}

Create a new task in a project.

Endpoint: POST /api/mcp/tasks/create

Body parameters:

ParameterTypeRequiredDescription
project_idnumberYesProject to create the task in
titlestringYesTask title
descriptionstringNoHTML description
section_idnumberNoPlace in a specific section
prioritystringNourgent, high, medium, low
estimatenumberNoTime estimate (in minutes)
imagesstring[]NoArray of image URLs to attach
attachmentsstring[]NoArray of file URLs to attach
due_datestringNoDue date in ISO 8601 format (e.g. 2025-03-01T00:00:00Z)

Example request:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/tasks/create \
-d '{
"project_id": 15,
"title": "Add error handling to upload endpoint",
"description": "<p>Return 400 with descriptive error for invalid file types.</p>",
"priority": "high"
}'

Example response:

{
"id": 1235,
"ticket_number": "HYP-43",
"title": "Add error handling to upload endpoint",
"priority": "high",
"section": "Backlog",
"createdAt": "2025-01-17T10:00:00Z"
}

Update fields on an existing task. The task can be identified by task_id, ticket_number, or the combination of project_id + unique_index.

Endpoint: POST /api/mcp/tasks/update

Task identification (provide one):

ParameterTypeDescription
task_idnumberInternal task ID
ticket_numberstringTicket number (e.g. HYP-42)
project_id + unique_indexnumber + numberProject-scoped index

Updatable fields:

ParameterTypeDescription
titlestringNew title
descriptionstringNew HTML description
estimatenumberTime estimate in minutes
prioritystringurgent, high, medium, low
sectionIdnumberMove to a different section
statusstringNormal, Archive, Deleted
due_datestringDue date in ISO 8601 format (e.g. 2025-03-01T00:00:00Z)

Example request — move task to “Doing”:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/tasks/update \
-d '{
"ticket_number": "HYP-42",
"sectionId": 103
}'

Example response:

{
"id": 1234,
"ticket_number": "HYP-42",
"title": "Add file upload validation",
"section": "Doing",
"updatedAt": "2025-01-17T11:00:00Z"
}

Move a task from its current project to a different project.

Endpoint: POST /api/mcp/tasks/move

Body parameters (identify task with one):

ParameterTypeDescription
task_idnumberInternal task ID
ticket_numberstringTicket number
unique_indexnumberProject-scoped index (requires context)

Target (required):

ParameterTypeRequiredDescription
target_project_idnumberYesDestination project ID
target_section_idnumberNoSection in the destination project

Example request:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/tasks/move \
-d '{
"ticket_number": "HYP-42",
"target_project_id": 20,
"target_section_id": 201
}'

Example response:

{
"id": 1234,
"ticket_number": "HYP-42",
"project_id": 20,
"section": "Backlog"
}

Retrieve comments on a task.

Endpoint: GET /api/mcp/comments

Task identification (provide one):

ParameterTypeDescription
task_idnumberInternal task ID
ticket_numberstringTicket number
project_id + unique_indexnumber + numberProject-scoped index

Query parameters:

ParameterTypeRequiredDefaultDescription
limitnumberNo50Max comments to return (max 100)
offsetnumberNo0Pagination offset
sort_orderstringNoascasc (oldest first) or desc (newest first)

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
"https://mcp.hypertask.ai/api/mcp/comments?ticket_number=HYP-42&sort_order=desc&limit=5"

Example response:

{
"comments": [
{
"id": 501,
"text": "<p>Implemented validation. Returns 400 for unsupported file types.</p>",
"author": {
"id": 6,
"displayName": "Valentin"
},
"createdAt": "2025-01-17T12:00:00Z"
}
],
"total": 1
}

Add a comment to a task. Comments use HTML formatting.

Endpoint: POST /api/mcp/comments

Body parameters:

Task identification (provide one):

ParameterTypeDescription
task_idnumberInternal task ID
ticket_numberstringTicket number
unique_indexnumberProject-scoped index

Comment content:

ParameterTypeRequiredDescription
textstringYesComment body in HTML
imagesstring[]NoArray of image URLs to attach
mentionsobject[]NoUsers to mention. Each object: { "user_id": number, "display_name": string }

Example request:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/comments \
-d '{
"ticket_number": "HYP-42",
"text": "<p>Done. Validated against a whitelist of MIME types.</p><ul><li>Added <code>validateFileType()</code> helper</li><li>Returns 400 with error details</li></ul>",
"mentions": [{ "user_id": 6, "display_name": "Valentin" }]
}'

Example response:

{
"id": 502,
"text": "<p>Done. Validated against a whitelist of MIME types.</p>...",
"createdAt": "2025-01-17T14:00:00Z"
}

Assign or unassign users on a task. Calling this with an already-assigned user will toggle them off (unassign).

Endpoint: POST /api/mcp/assignees/assign

Body parameters:

Task identification (provide one):

ParameterTypeDescription
task_idnumberInternal task ID
ticket_numberstringTicket number
unique_indexnumberProject-scoped index

Assignment:

ParameterTypeDescription
user_idnumberSingle user to assign/unassign
user_idsnumber[]Multiple users (requires mode)
modestringSet to multiple when using user_ids

Example request — assign a single user:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/assignees/assign \
-d '{
"ticket_number": "HYP-42",
"user_id": 6
}'

Example request — assign multiple users:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/assignees/assign \
-d '{
"task_id": 1234,
"user_ids": [6, 836],
"mode": "multiple"
}'

Example response:

{
"assignees": [
{ "id": 6, "displayName": "Valentin" },
{ "id": 836, "displayName": "Claude" }
]
}

List all members of a project with their user IDs.

Endpoint: GET /api/mcp/projects/{projectId}/members

Path parameters:

ParameterTypeRequiredDescription
projectIdnumberYesThe project ID

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
https://mcp.hypertask.ai/api/mcp/projects/15/members

Example response:

{
"members": [
{
"id": 6,
"email": "valentin@example.com",
"displayName": "Valentin",
"photoURL": "https://example.com/avatar.jpg"
},
{
"id": 836,
"email": "claude@example.com",
"displayName": "Claude",
"photoURL": null
}
]
}

Get inbox notifications for the current user. Notifications are generated when you are assigned to a task, mentioned in a comment, or a task you are watching is updated.

Endpoint: GET /api/mcp/inbox/list

Parameters: None

Example request:

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" \
https://mcp.hypertask.ai/api/mcp/inbox/list

Example response:

{
"notifications": [
{
"id": 301,
"type": "assignment",
"task_id": 1234,
"ticket_number": "HYP-42",
"message": "You were assigned to 'Add file upload validation'",
"createdAt": "2025-01-17T08:00:00Z",
"read": false
}
],
"total": 1
}

Archive (dismiss) inbox notifications.

Endpoint: POST /api/mcp/inbox/archive

Body parameters:

ParameterTypeRequiredDescription
notification_idsnumber[]YesArray of notification IDs to archive

Example request:

Terminal window
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://mcp.hypertask.ai/api/mcp/inbox/archive \
-d '{"notification_ids": [301, 302]}'

Example response:

{
"archived": 2
}