LeashIndex Get the report

Index / calendar

com.mcparmory/asana

com-mcparmory-asana declares 220 capabilities across 220 tools, with 2 critical issues.

100/100 exposureHigh exposure

Manifest recorded 2026-10-11 from tools/list answered by the PyPI package mcparmory-asana==1.0.5 (published to PyPI as mcparmory-asana, listed in the official MCP registry as com.mcparmory/asana 1.0.5), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 220 tools

220 of 220 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 37 of 220 tools

37 tools are classified as irreversible and declare no limit.

high · no-expiry · All 220 tools

220 of 220 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 220 tools

220 of 220 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 73 of 220 tools

73 tools can modify data and declare no limit.

low · uncapped-read · 110 of 220 tools

110 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
list_access_requestsread declared
request_accesswrite inferred
approve_access_requestwrite inferred
reject_access_requestdestructive declared
get_allocationread declared
update_allocationwrite inferred
delete_allocationdestructive declared
list_allocationsread declared
create_allocationwrite inferred
get_attachmentread declared
delete_attachmentdestructive declared
list_attachmentsread declared
upload_attachmentwrite inferred
list_audit_log_eventsread declared
list_budgetsread declared
create_budgetwrite inferred
get_budgetread declared
update_budgetwrite inferred
delete_budgetdestructive declared
list_project_custom_field_settingsread declared
list_portfolio_custom_field_settingsread declared
list_goal_custom_field_settingsread declared
list_team_custom_field_settingsread declared
create_custom_fieldwrite inferred
get_custom_fieldread declared
update_custom_fieldwrite inferred
delete_custom_fielddestructive declared
list_workspace_custom_fieldsread declared
create_enum_optionwrite inferred
reorder_enum_optionread inferred
update_enum_optionwrite inferred
list_custom_typesread declared
get_custom_typeread declared
list_resource_eventsread declared
export_graphwrite assumed
create_resource_exportwrite inferred
get_goal_relationshipread declared
update_goal_relationshipwrite inferred
list_goal_relationshipsread declared
add_goal_supporting_relationshipwrite inferred
remove_goal_supporting_relationshipdestructive declared
get_goalread declared
update_goalwrite inferred
delete_goaldestructive declared
list_goalsread declared
create_goalwrite inferred
set_goal_metricwrite inferred
update_goal_metric_valuewrite inferred
add_goal_followerswrite inferred
remove_goal_followersdestructive declared
list_parent_goalsread declared
add_custom_field_to_goalwrite inferred
remove_custom_field_from_goaldestructive declared
get_jobread declared
list_membershipsread declared
create_membershipwrite inferred
get_membershipread declared
update_membershipwrite inferred
delete_membershipdestructive declared
create_organization_exportwrite inferred
get_organization_exportread declared
list_portfolio_membershipsread declared
get_portfolio_membershipread declared
list_portfolio_memberships_for_portfolioread declared
list_portfoliosread declared
create_portfoliowrite inferred
get_portfolioread declared
update_portfoliowrite inferred
delete_portfoliodestructive declared
list_portfolio_itemsread declared
add_portfolio_itemwrite inferred
remove_portfolio_itemdestructive declared
add_custom_field_to_portfoliowrite inferred
remove_portfolio_custom_fielddestructive declared
add_portfolio_memberswrite inferred
remove_portfolio_membersdestructive declared
duplicate_portfoliowrite inferred
get_project_briefread declared
update_project_briefwrite inferred
delete_project_briefdestructive declared
create_project_briefwrite inferred
get_project_membershipread declared
list_project_membershipsread declared
get_project_portfolio_settingread declared
update_project_portfolio_settingwrite inferred
list_project_portfolio_settingsread declared
get_project_statusread declared
delete_project_statusdestructive declared
list_project_statusesread declared
create_project_statusread inferred
get_project_templateread declared
delete_project_templatedestructive declared
list_project_templatesread declared
list_team_project_templatesread declared
create_project_from_templatewrite inferred
list_projectsread declared
create_projectwrite inferred
get_projectread declared
update_projectwrite inferred
delete_projectdestructive declared
duplicate_projectwrite inferred
list_task_projectsread declared
create_team_projectwrite inferred
list_workspace_projectsread declared
create_project_in_workspacewrite inferred
search_projectsread declared
add_custom_field_to_projectwrite inferred
remove_custom_field_from_projectdestructive declared
get_project_task_countsread declared
add_project_memberswrite inferred
remove_project_membersdestructive declared
add_project_followerswrite inferred
remove_project_followersdestructive declared
save_project_as_templatewrite assumed
list_ratesread declared
create_rateread inferred
get_rateread declared
update_rateread inferred
delete_ratedestructive declared
list_reactionsread declared
get_sectionread declared
update_sectionwrite inferred
delete_sectiondestructive declared
list_project_sectionsread declared
create_sectionwrite inferred
add_task_to_sectionwrite inferred
reorder_sectionwrite inferred
get_status_updateread declared
delete_status_updatedestructive declared
list_status_updatesread declared
create_status_updatewrite inferred
get_storyread declared
update_storywrite inferred
delete_storydestructive declared
list_task_storiesread declared
add_task_commentwrite inferred
list_tagsread declared
create_tagwrite inferred
get_tagread declared
update_tagwrite inferred
delete_tagdestructive declared
list_task_tagsread declared
list_workspace_tagsread declared
create_tag_in_workspacewrite inferred
list_task_templatesread declared
get_task_templateread declared
delete_task_templatedestructive declared
instantiate_task_from_templatewrite inferred
list_tasksread declared
create_taskwrite inferred
get_taskread declared
update_taskwrite inferred
delete_taskdestructive declared
duplicate_taskwrite assumed
list_project_tasksread declared
list_section_tasksread declared
list_tasks_by_tagread declared
list_user_task_list_tasksread declared
list_subtasksread declared
create_subtaskwrite inferred
set_task_parentwrite inferred
list_task_dependenciesread declared
add_task_dependencieswrite inferred
remove_task_dependenciesdestructive declared
list_task_dependentsread declared
add_task_dependentswrite inferred
remove_task_dependentsdestructive declared
add_task_to_projectwrite inferred
remove_task_from_projectdestructive declared
add_task_tagwrite inferred
remove_task_tagdestructive declared
add_task_followerswrite inferred
remove_task_followersdestructive declared
get_task_by_custom_idread declared
search_tasksread declared
get_team_membershipread declared
list_team_membershipsread declared
list_team_memberships_for_teamread declared
list_user_team_membershipsread declared
create_teamwrite inferred
get_teamread declared
update_teamwrite inferred
list_workspace_teamsread declared
list_user_teamsread declared
add_team_memberwrite inferred
remove_team_memberdestructive declared
get_time_periodread declared
list_time_periodsread declared
list_task_time_tracking_entriesread declared
create_time_entrywrite inferred
get_time_tracking_entryread declared
update_time_tracking_entrywrite inferred
delete_time_tracking_entrydestructive declared
list_time_tracking_entriesread declared
get_timesheet_approval_statusread declared
update_timesheet_approval_statusread inferred
list_timesheet_approval_statusesread declared
create_timesheet_approval_statusread inferred
search_workspace_typeaheadread declared
get_user_task_listread declared
get_user_task_list_by_userread declared
list_usersread declared
get_userread declared
update_userwrite inferred
list_user_favoritesread declared
list_team_membersread declared
list_workspace_usersread declared
get_workspace_userread declared
update_workspace_userwrite inferred
get_webhookread declared
delete_webhookdestructive declared
get_workspace_membershipread declared
list_user_workspace_membershipsread declared
list_workspace_membershipsread declared
list_workspacesread declared
get_workspaceread declared
update_workspacewrite inferred
add_workspace_userwrite inferred
remove_workspace_userdestructive declared
list_workspace_eventsread declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.