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_project_management.json•15.6 kB
{
"server": {
"url": "https://app.asana.com/api/1.0"
},
"authentication": [
{
"schema_parameters": {
"scheme": "bearer"
},
"type": "http",
"value": "BEARER_TOKEN"
}
],
"operations": [
{
"description": "Returns compact goal records.",
"name": "get_goals"
},
{
"description": "Deletes a specific, existing project brief. Returns an empty data record.",
"name": "delete_project_brief"
},
{
"description": "Get the full record for a project brief.",
"name": "get_project_brief"
},
{
"description": "An existing project brief can be updated by making a PUT request on the URL for that project brief. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated project brief record.",
"name": "update_project_brief"
},
{
"description": "Returns the complete project record for a single project membership.",
"name": "get_project_membership"
},
{
"description": "*Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Deletes a specific, existing project status update. Returns an empty data record.",
"name": "delete_project_status"
},
{
"description": "*Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Returns the complete record for a single status update.",
"name": "get_project_status"
},
{
"description": "Returns the compact project template records for all project templates in the given team or workspace.",
"name": "get_project_templates"
},
{
"description": "Returns the complete project template record for a single project template.",
"name": "get_project_template"
},
{
"description": "Creates and returns a job that will asynchronously handle the project instantiation. To form this request, it is recommended to first make a request to [get a project template](/docs/get-a-project-template). Then, from the response, copy the `gid` from the object in the `requested_dates` array. This `gid` should be used in `requested_dates` to instantiate a project. _Note: The body of this request will differ if your workspace is an organization. To determine if your workspace is an organization, use the [is_organization](/docs/workspace) parameter._",
"name": "instantiate_project"
},
{
"description": "Returns the compact project records for some filtered set of projects. Use one or more of the parameters provided to filter the projects returned. *Note: This endpoint may timeout for large domains. Try filtering by team!*",
"name": "get_projects"
},
{
"description": "Create a new project in a workspace or team. Every project is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the `workspace` parameter regardless of whether or not it is an organization. If the workspace for your project is an organization, you must also supply a `team` to share the project with. Returns the full record of the newly created project.",
"name": "create_project"
},
{
"description": "A specific, existing project can be deleted by making a DELETE request on the URL for that project. Returns an empty data record.",
"name": "delete_project"
},
{
"description": "Returns the complete project record for a single project.",
"name": "get_project"
},
{
"description": "A specific, existing project can be updated by making a PUT request on the URL for that project. 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 project record.",
"name": "update_project"
},
{
"description": "Custom fields are associated with projects by way of custom field settings. This method creates a setting for the project.",
"name": "add_custom_field_setting_for_project"
},
{
"description": "Adds the specified list of users as followers to the project. Followers are a subset of members who have opted in to receive \"tasks added\" notifications for a project. Therefore, if the users are not already members of the project, they will also become members as a result of this operation. Returns the updated project record.",
"name": "add_followers_for_project"
},
{
"description": "Adds the specified list of users as members of the project. Note that a user being added as a member may also be added as a *follower* as a result of this operation. This is because the user\u0027s default notification settings (i.e., in the \"Notifcations\" tab of \"My Profile Settings\") will override this endpoint\u0027s default behavior of setting \"Tasks added\" notifications to `false`. Returns the updated project record.",
"name": "add_members_for_project"
},
{
"description": "Returns a list of all of the custom fields settings on a project, in compact form. Note that, as in all queries to collections which return compact representation, `opt_fields` can be used to include more data than is returned in the compact representation. See the [getting started guide on input/output options](https://developers.asana.com/docs/#input-output-options) for more information.",
"name": "get_custom_field_settings_for_project"
},
{
"description": "Creates and returns a job that will asynchronously handle the duplication.",
"name": "duplicate_project"
},
{
"description": "Creates a new project brief. Returns the full record of the newly created project brief.",
"name": "create_project_brief"
},
{
"description": "Returns the compact project membership records for the project.",
"name": "get_project_memberships_for_project"
},
{
"description": "*Deprecated: new integrations should prefer the `/status_updates` route.* Returns the compact project status update records for all updates on the project.",
"name": "get_project_statuses_for_project"
},
{
"description": "*Deprecated: new integrations should prefer the `/status_updates` route.* Creates a new status update on the project. Returns the full record of the newly created project status update.",
"name": "create_project_status_for_project"
},
{
"description": "Removes a custom field setting from a project.",
"name": "remove_custom_field_setting_for_project"
},
{
"description": "Removes the specified list of users from following the project, this will not affect project membership status. Returns the updated project record.",
"name": "remove_followers_for_project"
},
{
"description": "Removes the specified list of users from members of the project. Returns the updated project record.",
"name": "remove_members_for_project"
},
{
"description": "Creates and returns a job that will asynchronously handle the project template creation. Note that while the resulting project template can be accessed with the API, it won\u0027t be visible in the Asana UI until Project Templates 2.0 is launched in the app. See more in [this forum post](https://forum.asana.com/t/a-new-api-for-project-templates/156432).",
"name": "project_save_as_template"
},
{
"description": "Returns the compact records for all sections in the specified project.",
"name": "get_sections_for_project"
},
{
"description": "Creates a new section in a project. Returns the full record of the newly created section.",
"name": "create_section_for_project"
},
{
"description": "Move sections relative to each other. One of `before_section` or `after_section` is required. Sections cannot be moved between projects. Returns an empty data block.",
"name": "insert_section_for_project"
},
{
"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": "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": "Returns the complete task record for a single task.",
"name": "get_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": "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": "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": "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": "Returns the compact project template records for all project templates in the team.",
"name": "get_project_templates_for_team"
},
{
"description": "Returns the compact project records for all projects in the team.",
"name": "get_projects_for_team"
},
{
"description": "Creates a project shared with the given team. Returns the full record of the newly created project.",
"name": "create_project_for_team"
},
{
"description": "Returns the compact project records for all projects in the workspace. *Note: This endpoint may timeout for large domains. Prefer the `/teams/{team_gid}/projects` endpoint.*",
"name": "get_projects_for_workspace"
},
{
"description": "Returns the compact project records for all projects in the workspace. If the workspace for your project is an organization, you must also supply a team to share the project with. Returns the full record of the newly created project.",
"name": "create_project_for_workspace"
},
{
"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"
}
]
}