CanopiiCanopiiAll serversEnterprise →
io.github.dutifyai/dutify

io.github.dutifyai/dutify v0.1.1

Security Trust Score
Grade B · Moderate posture
Tier 1 · Public sourceHigh confidence · 90%
Declared MCP capabilities
ResourcesPrompts

Host io.github.dutifyai/dutify in a governed environment — SSO in front, every tool call attributed and audited.

Reputation0stars0forks0open issuestodaylast commit<1yage

Security controls

Deterministic, evidence-backed. Score earned from passing controls; a failed guard caps it.

Model–MCP Runtime Guardrails

  • Warn
    Strict JSON Schema Enforcementschemas not strict

    Tool inputs are constrained (additionalProperties:false), so unexpected arguments can't be smuggled in.

    Fix: Set additionalProperties:false and require explicit parameters on every tool.

  • Pass
    Indirect Prompt Injection (IPI) Defensesguardno injection markers

    Tool/prompt/resource text is free of hidden instructions that could hijack the agent.

  • Pass
    User-in-the-Loop / Approval Scopeguardno destructive tool scope

    No over-broad or destructive tools (arbitrary shell, bulk-delete) that warrant human approval.

  • N/A
    Tool Definition Integrityguardno prior version to diff

    Every consecutive version pair is diffed for new injection markers or destructive scope — a risky diff anywhere in history is a rug-pull (fail, durable); benign description drift warns.

Application Security Checks

  • Warn
    Credentials sourced from environmentno env-based config detected

    Reading secrets from env/secret stores avoids hardcoding them.

    Fix: Read credentials from environment variables or a secret manager.

  • Warn
    Dependencies pinned (lockfile)no lockfile found

    A lockfile makes installs reproducible and resistant to silent dependency swaps.

    Fix: Commit a lockfile (package-lock.json / pnpm-lock.yaml / poetry.lock).

  • Warn
    Declares a licenseno recognized license

    A clear license is required for legal enterprise use.

    Fix: Add a recognized SPDX license (MIT, Apache-2.0, …).

  • Warn
    Has a security policyno security policy

    A SECURITY.md gives a private path to report vulnerabilities.

    Fix: Add SECURITY.md with a disclosure contact and process.

  • Warn
    Adoption & popularitylimited adoption

    A small, capped nudge from stars/downloads — widely-used servers get more eyes on bugs. It can never offset a real security failure.

    Fix: Adoption grows naturally with real-world use; this never gates the score.

  • Pass
    No command-injection sinksguardno sinks found

    Untrusted tool input reaching a shell yields remote code execution.

  • Pass
    No dynamic code executionguardno sinks found

    eval()/exec()/Function() on tool-derived strings allows arbitrary code execution.

  • Pass
    No path traversalguardno sinks found

    Naive path checks let tools read/write outside intended directories (EscapeRoute-class).

  • Pass
    No SSRF sinksguardno sinks found

    Fetching tool-supplied URLs can pivot into internal networks and metadata services.

  • Pass
    No unsafe deserializationguardno sinks found

    pickle/yaml.load/etc. on untrusted data can execute code.

  • Pass
    No committed secretsguardno secrets found

    Hardcoded keys/tokens in published source are live credentials an attacker can use.

  • Pass
    Actively maintainedrecent commits

    Unmaintained servers don't receive security fixes.

  • Pass
    Repository not archivedguardactive

    Archived repositories will never be patched.

  • Not checked
    No known-vulnerable dependenciesno lockfile found

    Runtime dependencies (parsed from the lockfile) are scanned against OSV.dev for published CVEs. Advisory: flagged dependencies lower the score but don't hard-cap it, since transitive reachability is unproven.

  • Not checked
    Signed releasesnot evaluated

    Signed releases let consumers verify artifacts weren't tampered with.

  • N/A
    No install/post-install scriptsguardno published package

    install hooks run arbitrary code on every consumer at install time.

  • N/A
    Package name not typosquattingguardno published package

    Names mimicking popular packages are a common malware delivery vector.

  • N/A
    Published with provenanceno published package

    Build provenance attests the artifact was built from the claimed source by CI.

  • N/A
    Established maintainerno published package

    Brand-new / single anonymous maintainers raise takeover and malware risk.

Transport & Trust Model

  • Warn
    IAM / Authentication Scopingno authentication handling detected

    OAuth 2.1 / Protected Resource Metadata gates who can invoke tools.

    Fix: Implement OAuth 2.1 with a .well-known/oauth-protected-resource document.

  • Warn
    Execution Sandboxingruns natively (no container image)

    A container/sandbox image limits blast radius; a server that runs natively has full host access.

    Fix: Ship a Dockerfile/Containerfile (or document a sandboxed run) so the server runs isolated.

  • Pass
    Transport Encryption (TLS)guardall remotes use HTTPS

    Plaintext HTTP exposes traffic and bearer tokens to interception.

  • Pass
    Network Exposureno bind-all detected

    Binding 0.0.0.0 or exposing debug inspectors widens the attack surface.

  • N/A
    Live Endpoint Reachablenot dynamically scanned

    A dynamic scan connected to the declared remote endpoint and it responded — verified live, not a dead URL.

  • N/A
    Authentication Enforced (live)not dynamically scanned

    If the server declares auth is required, it must actually reject anonymous clients. Serving tools to unauthenticated callers is a real exposure.

Tools (189)

whoamifr_get_bugpm_get_taglist_boardslist_spacespm_get_taskpm_get_teampm_get_viewpm_log_timewiki_searchfr_list_bugshub_get_callfr_create_bugfr_delete_bughub_lens_chatlist_accountspm_clone_viewpm_create_tagpm_delete_tagpm_get_sprintpm_list_teamspm_list_viewspm_update_tagwiki_get_pagewiki_retrievefr_comment_bugfr_get_requesthub_list_callspm_create_listpm_create_taskpm_create_teampm_create_viewpm_delete_listpm_delete_taskpm_delete_teampm_delete_viewpm_get_webhookpm_save_filterpm_update_listpm_update_taskpm_update_teampm_update_viewwiki_get_spacewiki_move_pagefr_moderate_bugfr_vote_requestget_api_cataloghub_count_callshub_delete_calllist_workspacespm_create_spacepm_get_subtaskspm_search_taskspm_start_sprintpm_test_webhookwiki_list_pagesfr_list_requestshub_list_membershub_search_callspm_create_folderpm_create_sprintpm_delete_folderpm_delete_sprintpm_get_dashboardpm_list_webhookspm_update_folderpm_update_sprintwiki_create_pagewiki_delete_pagewiki_list_spaceswiki_update_pagefind_my_workspacefr_create_requestfr_delete_requestfr_set_bug_statushub_get_audio_urlhub_get_media_urlhub_get_workspacepm_create_webhookpm_delete_webhookpm_get_automationpm_get_import_jobpm_update_webhookwiki_create_spacewiki_delete_spacewiki_update_spacefr_comment_requestpm_add_team_memberpm_complete_sprintpm_leave_workspacepm_list_task_typespm_send_invitationfr_moderate_requestfr_set_bug_assigneehub_get_preview_urlpm_get_current_userpm_get_sprint_taskspm_get_task_sharingpm_list_import_jobspm_list_invitationswiki_get_page_sharepm_cancel_invitationpm_create_automationpm_delete_automationpm_delete_time_entrypm_get_webhook_usagepm_list_time_entriespm_read_activity_logpm_update_automationfr_set_bug_visibilityfr_set_request_statusget_endpoint_exampleshub_get_custom_prompthub_list_integrationshub_send_call_to_jirahub_set_custom_promptpm_change_member_rolepm_list_notificationspm_list_saved_filterspm_list_sprint_groupspm_list_task_commentspm_remove_team_memberwiki_list_attachmentsfr_toggle_bug_affectedhub_count_search_callshub_regenerate_summarypm_add_tasks_to_sprintpm_create_custom_fieldpm_create_sprint_grouppm_create_task_commentpm_delete_custom_fieldpm_delete_saved_filterpm_delete_task_commentpm_get_sprint_burndownpm_list_reference_datapm_update_current_userpm_update_custom_fieldpm_update_task_commentwiki_check_public_slugwiki_delete_attachmentwiki_enable_page_sharehub_reprocess_recordingpm_add_comment_reactionpm_get_automation_auditwiki_confirm_attachmentwiki_disable_page_sharehub_list_calendar_eventshub_send_call_to_clickuppm_bulk_change_task_typepm_get_workspace_contextwiki_get_public_settingswiki_set_public_settingshub_get_default_workspacehub_send_call_to_airtablehub_set_default_workspacepm_configure_task_sharingpm_list_comment_reactionspm_list_workspace_memberspm_mark_notification_readwiki_get_space_with_pageshub_get_recording_progresshub_set_call_custom_promptpm_confirm_import_mappingspm_list_task_relationshipspm_list_webhook_deliveriespm_remove_comment_reactionpm_remove_workspace_memberpm_replay_webhook_deliveryhub_set_event_custom_promptpm_create_task_relationshippm_delete_task_relationshippm_remove_tasks_from_sprinthub_clear_call_custom_prompthub_set_series_custom_promptpm_get_notification_settingspm_list_automations_for_listhub_clear_event_custom_prompthub_get_preferred_integrationhub_set_preferred_integrationpm_count_unread_notificationspm_list_automations_for_spacehub_clear_series_custom_promptpm_list_automations_for_folderpm_mark_all_notifications_readpm_update_notification_channelwiki_request_attachment_uploadpm_transfer_workspace_ownershippm_get_workspace_user_avatar_urlpm_describe_status_priority_level_endpoints