We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sonichi/asana'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
mcp_config_task_management.json•11.9 kB
{
"server": {
"url": "https://app.asana.com/api/1.0"
},
"authentication": [
{
"schema_parameters": {
"scheme": "bearer"
},
"type": "http",
"value": "BEARER_TOKEN"
}
],
"operations": [
{
"description": "Returns the full record for a job.",
"name": "get_job"
},
{
"description": "Get an object that holds task count fields. **All fields are excluded by default**. You must [opt in](/docs/input-output-options) using `opt_fields` to get any information from this endpoint. This endpoint has an additional [rate limit](/docs/standard-rate-limits) and each field counts especially high against our [cost limits](/docs/cost-limits). Milestones are just tasks, so they are included in the `num_tasks`, `num_incomplete_tasks`, and `num_completed_tasks` counts.",
"name": "get_task_counts_for_project"
},
{
"description": "Returns the compact task records for all tasks within the given project, ordered by their priority within the project. Tasks can exist in more than one project at a time.",
"name": "get_tasks_for_project"
},
{
"description": "Add a task to a specific, existing section. This will remove the task from other sections of the project. The task will be inserted at the top of a section unless an insert_before or insert_after parameter is declared. This does not work for separators (tasks with the resource_subtype of section).",
"name": "add_task_for_section"
},
{
"description": "*Board view only*: Returns the compact section records for all tasks within the given section.",
"name": "get_tasks_for_section"
},
{
"description": "Returns the compact task records for all tasks with the given tag. Tasks can have more than one tag at a time.",
"name": "get_tasks_for_tag"
},
{
"description": "Returns the compact task records for some filtered set of tasks. Use one or more of the parameters provided to filter the tasks returned. You must specify a `project` or `tag` if you do not specify `assignee` and `workspace`. For more complex task retrieval, use [workspaces/{workspace_gid}/tasks/search](/docs/search-tasks-in-a-workspace).",
"name": "get_tasks"
},
{
"description": "Creating a new task is as easy as POSTing to the `/tasks` endpoint with a data block containing the fields you\u2019d like to set on the task. Any unspecified fields will take on default values. Every task is required to be created in a specific workspace, and this workspace cannot be changed once set. The workspace need not be set explicitly if you specify `projects` or a `parent` task instead.",
"name": "create_task"
},
{
"description": "A specific, existing task can be deleted by making a DELETE request on the URL for that task. Deleted tasks go into the \u201ctrash\u201d of the user making the delete request. Tasks can be recovered from the trash within a period of 30 days; afterward they are completely removed from the system. Returns an empty data record.",
"name": "delete_task"
},
{
"description": "Returns the complete task record for a single task.",
"name": "get_task"
},
{
"description": "A specific, existing task can be updated by making a PUT request on the URL for that task. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated task record.",
"name": "update_task"
},
{
"description": "Marks a set of tasks as dependencies of this task, if they are not already dependencies. *A task can have at most 30 dependents and dependencies combined*.",
"name": "add_dependencies_for_task"
},
{
"description": "Marks a set of tasks as dependents of this task, if they are not already dependents. *A task can have at most 30 dependents and dependencies combined*.",
"name": "add_dependents_for_task"
},
{
"description": "Adds followers to a task. Returns an empty data block. Each task can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated task record, described above.",
"name": "add_followers_for_task"
},
{
"description": "Adds the task to the specified project, in the optional location specified. If no location arguments are given, the task will be added to the end of the project. `addProject` can also be used to reorder a task within a project or section that already contains it. At most one of `insert_before`, `insert_after`, or `section` should be specified. Inserting into a section in an non-order-dependent way can be done by specifying section, otherwise, to insert within a section in a particular place, specify `insert_before` or `insert_after` and a task within the section to anchor the position of this task. Returns an empty data block.",
"name": "add_project_for_task"
},
{
"description": "Adds a tag to a task. Returns an empty data block.",
"name": "add_tag_for_task"
},
{
"description": "Returns the compact representations of all of the dependencies of a task.",
"name": "get_dependencies_for_task"
},
{
"description": "Returns the compact representations of all of the dependents of a task.",
"name": "get_dependents_for_task"
},
{
"description": "Creates and returns a job that will asynchronously handle the duplication.",
"name": "duplicate_task"
},
{
"description": "Returns a compact representation of all of the projects the task is in.",
"name": "get_projects_for_task"
},
{
"description": "Unlinks a set of dependencies from this task.",
"name": "remove_dependencies_for_task"
},
{
"description": "Unlinks a set of dependents from this task.",
"name": "remove_dependents_for_task"
},
{
"description": "Removes each of the specified followers from the task if they are following. Returns the complete, updated record for the affected task.",
"name": "remove_follower_for_task"
},
{
"description": "Removes the task from the specified project. The task will still exist in the system, but it will not be in the project anymore. Returns an empty data block.",
"name": "remove_project_for_task"
},
{
"description": "Removes a tag from a task. Returns an empty data block.",
"name": "remove_tag_for_task"
},
{
"description": "parent, or no parent task at all. Returns an empty data block. When using `insert_before` and `insert_after`, at most one of those two options can be specified, and they must already be subtasks of the parent.",
"name": "set_parent_for_task"
},
{
"description": "Returns the compact records for all stories on the task.",
"name": "get_stories_for_task"
},
{
"description": "Adds a story to a task. This endpoint currently only allows for comment stories to be created. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request. Returns the full record for the new story added to the task.",
"name": "create_story_for_task"
},
{
"description": "Returns a compact representation of all of the subtasks of a task.",
"name": "get_subtasks_for_task"
},
{
"description": "Creates a new subtask and adds it to the parent task. Returns the full record for the newly created subtask.",
"name": "create_subtask_for_task"
},
{
"description": "Get a compact representation of all of the tags the task has.",
"name": "get_tags_for_task"
},
{
"description": "Returns the full record for a user task list.",
"name": "get_user_task_list"
},
{
"description": "Returns the compact list of tasks in a user\u2019s My Tasks list. *Note: Access control is enforced for this endpoint as with all Asana API endpoints, meaning a user\u2019s private tasks will be filtered out if the API-authenticated user does not have access to them.* *Note: Both complete and incomplete tasks are returned by default unless they are filtered out (for example, setting `completed_since=now` will return only incomplete tasks, which is the default view for \u201cMy Tasks\u201d in Asana.)*",
"name": "get_tasks_for_user_task_list"
},
{
"description": "Returns the full record for a user\u0027s task list.",
"name": "get_user_task_list_for_user"
},
{
"description": "To mirror the functionality of the Asana web app\u0027s advanced search feature, the Asana API has a task search endpoint that allows you to build complex filters to find and retrieve the exact data you need. #### Premium access Like the Asana web product\u0027s advance search feature, this search endpoint will only be available to premium Asana users. A user is premium if any of the following is true: - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace Even if a user is only a member of a premium team inside a non-premium workspace, search will allow them to find data anywhere in the workspace, not just inside the premium team. Making a search request using credentials of a non-premium user will result in a `402 Payment Required` error. #### Pagination Search results are not stable; repeating the same query multiple times may return the data in a different order, even if the data do not change. Because of this, the traditional [pagination](https://developers.asana.com/docs/#pagination) available elsewhere in the Asana API is not available here. However, you can paginate manually by sorting the search results by their creation time and then modifying each subsequent query to exclude data you have already seen. Page sizes are limited to a maximum of 100 items, and can be specified by the `limit` query parameter. #### Eventual consistency Changes in Asana (regardless of whether they\u2019re made though the web product or the API) are forwarded to our search infrastructure to be indexed. This process can take between 10 and 60 seconds to complete under normal operation, and longer during some production incidents. Making a change to a task that would alter its presence in a particular search query will not be reflected immediately. This is also true of the advanced search feature in the web product. #### Rate limits You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](https://developers.asana.com/docs/#rate-limits). #### Custom field parameters | Parameter name | Custom field type | Accepted type | |---|---|---| | custom_fields.{gid}.is_set | All | Boolean | | custom_fields.{gid}.value | Text | String | | custom_fields.{gid}.value | Number | Number | | custom_fields.{gid}.value | Enum | Enum option ID | | custom_fields.{gid}.starts_with | Text only | String | | custom_fields.{gid}.ends_with | Text only | String | | custom_fields.{gid}.contains | Text only | String | | custom_fields.{gid}.less_than | Number only | Number | | custom_fields.{gid}.greater_than | Number only | Number | For example, if the gid of the custom field is 12345, these query parameter to find tasks where it is set would be `custom_fields.12345.is_set=true`. To match an exact value for an enum custom field, use the gid of the desired enum option and not the name of the enum option: `custom_fields.12345.value=67890`. **Not Supported**: searching for multiple exact matches of a custom field, searching for multi-enum custom field *Note: If you specify `projects.any` and `sections.any`, you will receive tasks for the project **and** tasks for the section. If you\u0027re looking for only tasks in a section, omit the `projects.any` from the request.*",
"name": "search_tasks_for_workspace"
}
]
}