LeashIndex Get the report

Index / storage

Dutify

io-github-dutifyai-dutify declares 191 capabilities across 191 tools, with 2 critical issues. One of them, no-revocation, is recorded for every server in the index because MCP has no field in which to declare a way to switch a tool off; a missing declaration is not evidence that the control is missing.

100/100 exposureHigh exposure

Manifest recorded 2026-11-08 from tools/list on https://mcp.dutify.ai, published in the official MCP registry as io.github.dutifyai/dutify 0.1.1. 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 191 tools

191 of 191 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 · destructive-uncapped · 86 of 191 tools

86 tools are annotated by the server as destructive (destructiveHint) and declare no limit. In MCP that annotation marks a tool that may make destructive changes rather than only additive ones; it does not say the change cannot be undone.

high · no-expiry · All 191 tools

191 of 191 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 191 tools

191 of 191 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 · 20 of 191 tools

20 tools can modify data and declare no limit.

low · uncapped-read · 85 of 191 tools

85 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
whoamiread declared
list_accountsread declared
find_my_workspaceread declared
list_workspacesread declared
list_boardsread declared
list_spacesread declared
get_endpoint_examplesread declared
wiki_searchread declared
wiki_retrieveread declared
wiki_list_pagesread declared
wiki_get_pageread declared
wiki_create_pagewrite inferred
wiki_update_pagedestructive declared
wiki_move_pagedestructive declared
wiki_delete_pagedestructive declared
wiki_get_page_shareread declared
wiki_enable_page_sharedestructive declared
wiki_disable_page_sharedestructive declared
wiki_list_spacesread declared
wiki_get_spaceread declared
wiki_get_space_with_pagesread declared
wiki_create_spacewrite inferred
wiki_update_spacedestructive declared
wiki_delete_spacedestructive declared
wiki_get_public_settingsread declared
wiki_check_public_slugread declared
wiki_set_public_settingsdestructive declared
wiki_list_attachmentsread declared
wiki_request_attachment_uploadwrite inferred
wiki_confirm_attachmentdestructive declared
wiki_delete_attachmentdestructive declared
fr_list_requestsread declared
fr_get_requestread declared
fr_create_requestwrite inferred
fr_set_request_statusdestructive declared
fr_comment_requestwrite inferred
fr_vote_requestdestructive declared
fr_moderate_requestdestructive declared
fr_delete_requestdestructive declared
fr_list_bugsread declared
fr_get_bugread declared
fr_create_bugwrite inferred
fr_set_bug_statusdestructive declared
fr_set_bug_assigneedestructive declared
fr_set_bug_visibilitydestructive declared
fr_toggle_bug_affecteddestructive declared
fr_comment_bugwrite inferred
fr_moderate_bugdestructive declared
fr_delete_bugdestructive declared
pm_get_workspace_contextread declared
pm_get_dashboardread declared
pm_search_tasksread declared
pm_get_taskread declared
pm_get_subtasksread declared
pm_create_taskwrite inferred
pm_update_taskdestructive declared
pm_delete_taskdestructive declared
pm_list_task_typesread declared
pm_set_default_task_typedestructive declared
pm_bulk_change_task_typedestructive declared
pm_list_task_commentsread declared
pm_create_task_commentwrite inferred
pm_update_task_commentdestructive declared
pm_delete_task_commentdestructive declared
pm_list_task_relationshipsread declared
pm_create_task_relationshipwrite inferred
pm_delete_task_relationshipdestructive declared
pm_create_spacewrite inferred
pm_create_folderwrite inferred
pm_update_folderdestructive declared
pm_delete_folderdestructive declared
pm_create_listread inferred
pm_update_listdestructive declared
pm_delete_listdestructive declared
pm_create_custom_fieldwrite inferred
pm_update_custom_fielddestructive declared
pm_delete_custom_fielddestructive declared
pm_list_viewsread declared
pm_get_viewread declared
pm_create_viewread inferred
pm_update_viewdestructive declared
pm_delete_viewdestructive declared
pm_clone_viewread inferred
pm_list_sprint_groupsread declared
pm_create_sprint_groupwrite inferred
pm_create_sprintwrite inferred
pm_get_sprintread declared
pm_update_sprintdestructive declared
pm_delete_sprintdestructive declared
pm_start_sprintdestructive declared
pm_complete_sprintdestructive declared
pm_add_tasks_to_sprintdestructive declared
pm_remove_tasks_from_sprintdestructive declared
pm_get_sprint_tasksread declared
pm_get_sprint_burndownread declared
pm_create_webhookwrite inferred
pm_list_webhooksread declared
pm_list_webhook_event_typesread declared
pm_get_webhook_usageread declared
pm_get_webhookread declared
pm_update_webhookdestructive declared
pm_delete_webhookdestructive declared
pm_test_webhookdestructive declared
pm_list_webhook_deliveriesread declared
pm_replay_webhook_deliverydestructive declared
pm_read_activity_logread declared
pm_list_notificationsread declared
pm_count_unread_notificationsread declared
pm_mark_notification_readdestructive declared
pm_mark_all_notifications_readdestructive declared
pm_list_time_entriesread declared
pm_log_timewrite assumed
pm_delete_time_entrydestructive declared
pm_list_saved_filtersread declared
pm_save_filterdestructive declared
pm_delete_saved_filterdestructive declared
pm_add_comment_reactiondestructive declared
pm_list_comment_reactionsread declared
pm_remove_comment_reactiondestructive declared
pm_list_reference_dataread declared
pm_get_task_sharingread declared
pm_configure_task_sharingdestructive declared
pm_create_tagwrite inferred
pm_get_tagread declared
pm_update_tagdestructive declared
pm_delete_tagdestructive declared
pm_list_teamsread declared
pm_create_teamwrite inferred
pm_get_teamread declared
pm_update_teamdestructive declared
pm_delete_teamdestructive declared
pm_add_team_memberdestructive declared
pm_remove_team_memberdestructive declared
pm_get_current_userread declared
pm_update_current_userdestructive declared
pm_get_notification_settingsread declared
pm_update_notification_channeldestructive declared
pm_get_workspace_user_avatar_urlread declared
pm_list_automations_for_listread declared
pm_list_automations_for_folderread declared
pm_list_automations_for_spaceread declared
pm_get_automationread declared
pm_create_automationwrite inferred
pm_update_automationdestructive declared
pm_delete_automationdestructive declared
pm_get_automation_auditread declared
pm_list_workspace_membersread declared
pm_change_member_roledestructive declared
pm_remove_workspace_memberdestructive declared
pm_transfer_workspace_ownershipdestructive declared
pm_leave_workspacedestructive declared
pm_list_invitationsread declared
pm_send_invitationdestructive declared
pm_cancel_invitationdestructive declared
pm_list_import_jobsread declared
pm_get_import_jobread declared
pm_confirm_import_mappingsdestructive declared
pm_describe_status_priority_level_endpointsread declared
hub_get_workspaceread declared
hub_list_membersread declared
hub_get_custom_promptread declared
hub_set_custom_promptdestructive declared
hub_get_preferred_integrationread declared
hub_set_preferred_integrationdestructive declared
hub_get_default_workspaceread declared
hub_set_default_workspacedestructive declared
hub_list_integrationsread declared
hub_get_recording_progressread declared
hub_regenerate_summarydestructive declared
hub_reprocess_recordingdestructive declared
hub_get_audio_urlread declared
hub_get_media_urlread declared
hub_get_preview_urlread declared
hub_list_callsread declared
hub_count_callsread declared
hub_get_callread declared
hub_search_callsread declared
hub_count_search_callsread declared
hub_delete_calldestructive declared
hub_send_call_to_jiradestructive declared
hub_send_call_to_clickupdestructive declared
hub_send_call_to_airtabledestructive declared
hub_list_calendar_eventsread declared
hub_set_event_custom_promptdestructive declared
hub_clear_event_custom_promptdestructive declared
hub_set_series_custom_promptdestructive declared
hub_clear_series_custom_promptdestructive declared
hub_set_call_custom_promptdestructive declared
hub_clear_call_custom_promptdestructive declared
hub_lens_chatdestructive declared
get_api_catalogread declared

Record history

Earlier records for this server. A correction is added here, never written over the record it corrects.

RecordedExposureSource
2026-10-28100 tools/list on https://mcp.dutify.ai, published in the official MCP registry as io.github.dutifyai/dutify 0.1.1
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.