List your agent

Dutify

MCP server · hosted · v0.1.1 · io.github.dutifyai/dutify
Online · tested 35m agoNEW · 1h agoSeen in the registry 41m ago

Whole Dutify suite in one server: Hub call recordings, projects, Codexum wiki, Roadmarq requests.

What it does

Dutify is an MCP server, a connector that lets an AI assistant use it as a tool. It is hosted: an assistant connects to it over the internet, nothing to install.

No capability identified yet from its description.

Facts come from the Official MCP Registry, as declared by the publisher. Capabilities are matched automatically (low confidence). None of this is a test of the tool.

At a glance

Hosted (remote)YES
Local installNO
Version0.1.1
PriceNot in the registry
First seen24 Oct 2026
Last checked41m ago

How to connect

As declared in the Official MCP Registry · hosted endpoint tested by Electra Index 35m ago (live check)

Hosted endpoint

  • https://mcp.dutify.ai streamable-http

Required: X-API-Key (get it from the publisher)

MCP settings (Claude Desktop, Cursor and other MCP clients)

{
  "mcpServers": {
    "dutify": {
      "url": "https://mcp.dutify.ai",
      "headers": {
        "X-API-Key": "<your X-API-Key>"
      }
    }
  }
}

Replace the values in <angle brackets>.

Live check

Electra Index connected to the hosted endpoint 35m ago

ONLINE Dutify answered an MCP connection on 24 Oct 2026 and introduced itself as dutify 0.1.0 (MCP protocol 2025-06-18).

189 tools offered to AI assistants

  • whoami · Unified Dutify whoami: fresh credential/workspace discovery. Does not require a selected workspace or reserve quota.
  • list_accounts · List the accounts configured for this MCP session. Returns one entry per account with `name` (the label the caller passes as the `account` tool argument) and `workspace` (the workspace identifier or name declared for that account). API keys
  • find_my_workspace · Unified Dutify find_my_workspace: fresh credential/workspace discovery. Does not require a selected workspace or reserve quota.
  • list_workspaces · Unified Dutify list_workspaces: fresh credential/workspace discovery. Does not require a selected workspace or reserve quota.
  • list_boards · List feature-request boards the caller can view in the current workspace. Each entry includes the board slug and the short-ID prefixes (featureRequestKey, bugReportKey) needed to address requests/bugs in follow-up tool calls.
  • list_spaces · List wiki spaces the caller can view in the current workspace, each with a page count. Use the `key` field as the space identifier in follow-up wiki tool calls.
  • get_endpoint_examples · Fetch the request/response example payloads (full JSON values) for a Dutify API resource tag. Use this when you're about to write rich content via a tool that accepts a TipTap `content` parameter (e.g. wiki_create_page) and need a concrete
  • wiki_search · Find wiki PAGES by title/keyword in the current workspace. Returns a list of matching pages (slug, title, spaceKey, spaceName, excerpt, status, updatedAt) — no UUIDs, no full body. Use this to LOCATE or LIST pages (then call wiki_get_page t
  • wiki_retrieve · Search the wiki by MEANING and get back the most relevant PASSAGES (chunks) with citations and relevance scores. Use this to GROUND or ANSWER a question from wiki content: it returns quotable chunkText plus the source page/section so you ca
  • wiki_list_pages · List wiki pages in a space. Without `parent` returns root-level pages; pass a parent slug to list that page's children. Response items have slug, title, status, type (page|folder), parentSlug, updatedAt — no bodies. Page results include web
  • wiki_get_page · Get a wiki page by slug within a space. Default format is Markdown (the body is returned under the `markdown` field); pass format="tiptap" for raw ProseMirror JSON. Page results include webUrl: a browser link requiring normal workspace acce
  • wiki_create_page · Create a wiki page under a space. Pass EITHER `markdown` (simpler, server converts to TipTap) OR `content` (TipTap/ProseMirror JSON, mutually exclusive with markdown). Use `content` when you need rich features that markdown can't express —
Show 88 more
  • wiki_update_page · Update an existing wiki page by slug. Any field left unset preserves the current value. Pass EITHER `markdown` OR `content` (TipTap/ProseMirror JSON) for the body — they're mutually exclusive. Use `content` for rich features (banners, colla
  • wiki_move_page · Move a wiki page to a new parent and/or a new space. All body fields are optional and use slugs (resolved server-side in the target space) instead of UUIDs: `targetSpaceKey` for cross-space moves (omit to stay in the current space); `newPar
  • wiki_delete_page · Archive (soft-delete) or permanently delete a wiki page by slug. Falls through to the non-lite Wiki Pages API since there is no lite delete endpoint — path is `DELETE /v1/workspaces/{workspaceIdentifier}/wiki/spaces/{spaceKey}/pages/{slug}`
  • wiki_get_page_share · Get the public SHARE-LINK status for a single page (PublicShareInfoDTO): `isEnabled`, `publicToken`, `publicUrl` (the shareable link), `showAuthor`, `sharedAt`, `sharedBy`, `workspaceAllowsSharing`. A per-page share link lets anyone with th
  • wiki_enable_page_share · Enable a public SHARE LINK for a single page, returning a PublicShareInfoDTO with the `publicUrl` to hand out. Optional `token` sets a custom URL slug (3-100 chars, lowercase letters/digits/hyphens; 409 if already taken — omit to auto-gener
  • wiki_disable_page_share · Disable the public share link for a single page, revoking access via its URL (returns 204). Requires edit access. API-key scope: `wiki:pages:write`.
  • wiki_list_spaces · List every wiki space the caller can see in the current workspace. Each entry has the space's `key` (use this in subsequent calls), `name`, `description`, `effectivePermission` (view/edit/admin), and `canView`/`canEdit`/`canAdmin` booleans
  • wiki_get_space · Fetch a single wiki space by key. Returns the WikiSpaceDTO (id, key, name, description, icon, color, cover image, visibility flags, permissions, timestamps). For the page tree inside the space, use wiki_get_space_with_pages instead. API-key
  • wiki_get_space_with_pages · Fetch a wiki space AND its complete page tree in one call. Returns WikiSpaceWithPagesDTO — space metadata plus `pages` (a recursive tree of WikiPageTreeNodeDTO with slug, title, type=page|folder, hasChildren, children[], view count, top rea
  • wiki_create_space · Create a new wiki space in the current workspace. `key` is the unique short identifier used in URLs and subsequent API calls — uppercase letters + digits only, 2-20 chars, must start with a letter (e.g. "DOCS", "ENG2"). `name` is the human
  • wiki_update_space · Update a wiki space's metadata. All fields are optional — pass only what you want to change. The space key cannot be changed. Requires edit access to the space. API-key scope: `wiki:spaces:write`.
  • wiki_delete_space · PERMANENTLY delete a wiki space AND every page inside it. Requires admin access to the space. This is destructive — surface a clear confirmation to the user before calling. Returns 204. API-key scope: `wiki:spaces:write`.
  • wiki_get_public_settings · Get a space's PUBLIC-WEB publishing settings (PublicSpaceSettingsDTO): `isEnabled` (is the space published to the public internet), `customSlug` (public URL slug), `allowedEmojis`, `showReactions`, `showPageViews`, `showLastUpdated`, `showA
  • wiki_check_public_slug · Check whether a public URL slug is available and validly formatted for a space, before publishing. Returns a SlugAvailabilityDTO. Call this when choosing a `customSlug` for wiki_set_public_settings. Requires space admin. API-key scope: `wik
  • wiki_set_public_settings · Publish / unpublish a space to the PUBLIC INTERNET, or update its public-site config. This is the REAL publish switch — NOT the space `isPublic` flag (which is internal visibility). Pass only the fields you want to change: `isEnabled` (true
  • wiki_list_attachments · List every attachment on a wiki page (WikiAttachmentDTO[]): id, pageId, filename, contentType, sizeBytes, status (pending|confirmed|failed), uploadedBy/At, confirmedAt. `pageId` is the page UUID (from wiki_get_space_with_pages tree node `id
  • wiki_request_attachment_upload · Step 1 of uploading an image/file to a wiki page. Returns { attachmentId, uploadUrl, storageKey }. AFTER calling this you MUST: (2) PUT the raw file bytes to `uploadUrl` with your OWN HTTP client — the MCP server cannot do this binary uploa
  • wiki_confirm_attachment · Step 3 of uploading: confirm that the bytes were successfully PUT to the presigned `uploadUrl`, activating the attachment. Returns the WikiAttachmentDTO (status becomes "confirmed"). Call only after the byte PUT succeeded. API-key scope: `w
  • wiki_delete_attachment · Permanently delete an attachment and its stored file (returns 204). Useful for cleaning up unused or leftover uploads. This does not remove image nodes that still reference it in a page body — update the page content separately if needed. A
  • fr_list_requests · List feature requests on a feedback board (by board slug). Filter by status / category / milestone name (lenient — trimmed + case-insensitive). Pass `q` to search request titles instead. Paginated via page/size. API-key scope: `feedback:req
  • fr_get_request · Get a feature request by short ID (e.g. "FR-42"). Returns full detail: title, description, status, category, milestone, voteCount, commentCount, reactions. Internal notes and linkedTaskIds are populated only when the caller has `View Intern
  • fr_create_request · Create a new feature request on a board. Category is resolved by name (lenient match). No turnstile token required — API-key authentication is sufficient. Returns the new request with assigned shortId. API-key scope: `feedback:requests:writ
  • fr_set_request_status · Change a feature request's status by name. The name is resolved leniently against the request's board's status set (trim + case-insensitive). Returns the updated request detail. API-key scope: `feedback:requests:write`.
  • fr_comment_request · Add a comment to a feature request. Pass isInternal=true to make the comment visible only to users with `View Internal Data` permission. API-key scope: `feedback:comments:write`.
  • fr_vote_request · Toggle a vote or emoji reaction on a feature request. Passing emoji=null or omitting the field registers a plain upvote. Calling the tool again with the same emoji removes the vote (idempotent toggle). API-key scope: `feedback:votes:write`.
  • fr_moderate_request · Approve, reject, or mark a feature request as spam. Action is case-insensitive. Requires `Manage Queue` permission. API-key scope: `feedback:moderation:write`.
  • fr_delete_request · Permanently delete a feature request. Requires `Manage Queue` permission. Returns 204 on success. This operation is irreversible — confirm with the user before calling unless the intent is unambiguous. API-key scope: `feedback:requests:writ
  • fr_list_bugs · List bug reports on a feedback board (by board slug). Filter by severity and/or status name (lenient match). API-key scope: `feedback:bugs:read`.
  • fr_get_bug · Get a bug report by short ID (e.g. "BG-99"). Returns full detail: title, reproduction steps, expected/actual result, severity, status, product area, assignee, affectedCount, environment, comments count. Internal notes and linkedIssueUrl pop
  • fr_create_bug · Create a new bug report on a board. Severity and productArea are resolved by name (lenient match). Environment is a free-form map (browser, OS, url, etc.). API-key scope: `feedback:bugs:write`.
  • fr_set_bug_status · Change a bug status by name (lenient match against the board's bug-status set). API-key scope: `feedback:bugs:write`.
  • fr_set_bug_assignee · Assign or unassign a bug. Provide `assigneeEmail` (resolved case-insensitive against workspace members) OR `assigneeId` (UUID). Exactly one; both = 400. Passing neither unassigns. API-key scope: `feedback:bugs:write`.
  • fr_set_bug_visibility · Toggle a bug's public visibility. Security bugs stay private regardless. API-key scope: `feedback:bugs:write`.
  • fr_toggle_bug_affected · Toggle the caller's "I'm affected" marker on a bug. Returns the updated bug detail with new affectedCount. API-key scope: `feedback:bugs:write`.
  • fr_comment_bug · Add a comment to a bug report. Pass isInternal=true for internal-only. API-key scope: `feedback:comments:write`.
  • fr_moderate_bug · Approve, reject, or mark a bug as spam. Action is case-insensitive. Requires `Manage Queue` permission. API-key scope: `feedback:moderation:write`.
  • fr_delete_bug · Permanently delete a bug report. Requires `Manage Queue` permission. Irreversible. API-key scope: `feedback:bugs:write`.
  • pm_get_workspace_context · Single-call workspace orientation: members, spaces (with folders, lists, per-list statuses/priorities/taskTypes/customFields), workspace-level taskTypes, relationshipTypes, tags. The biggest agent-onboarding tool — call it first when starti
  • pm_get_dashboard · Get aggregated counts and breakdowns (status / priority / assignee distributions, custom-field summaries) for any scope. Useful for "how is project X doing?" questions without paginating through tasks. API-key scope: `dashboards:read`.
  • pm_search_tasks · Search tasks across the workspace with name-based filters. status / priority / tag / taskType are repeatable (pass an array). assignee is an email or UUID. q is a free-text search over title + description. Returns a cursor-paginated page of
  • pm_get_task · Fetch a task by ref. Ref accepts a system identifier (tsk_…) OR a task key (e.g. 'PROJ-42'). Returns LiteTaskResponse with names instead of UUIDs and emails instead of user UUIDs. Internal note: when ref is a task key the workspace query pa
  • pm_get_subtasks · List the direct subtasks (one level deep) of a parent task by ref. API-key scope: `tasks:read`.
  • pm_create_task · Create a task. In the result, title/webUrl are for presentation; displayKey is the optional visible key. Keep key/identifier for API calls and do not expose a hidden raw key in the summary. References are name-based: status/priority/level/t
  • pm_update_task · Partial-update a task by ref. Only fields present in the call are changed. Pass an explicit null to clear nullable fields (dueDate, parent, taskType, etc.). Names resolve leniently against the current effective set. To change just the type
  • pm_delete_task · Delete a task by ref. Cascade-deletes subtasks. Requires FULL access (not just EDIT). Returns 204 on success. API-key scope: `tasks:write`.
  • pm_list_task_types · Return the workspace task-type catalogue (identifier, name, singularName, pluralName, iconKind, iconValue, color, sortOrder, origin SYSTEM/CUSTOM). Use this to discover what types are available before creating/updating tasks, or to translat
  • pm_bulk_change_task_type · Change the task type for many tasks at once (≤5000 per call). `taskIdentifiers` are stable wire identifiers (e.g. tsk_…) — task keys (PROJ-42) are NOT accepted here; use pm_search_tasks first if you only have keys. `taskType` is a name (e.g
  • pm_list_task_comments · List comments on a task by ref. Cursor-paginated. API-key scope: `tasks:read`.
  • pm_create_task_comment · Add a comment to a task. `mentions` is an array of emails — the server resolves them to user UUIDs and substitutes `@<email>` literals in `text` with mention spans. Pass `replyTo` (a comment identifier) to thread. API-key scope: `tasks:writ
  • pm_update_task_comment · Update an existing comment. Only the original author may edit. API-key scope: `tasks:write`.
  • pm_delete_task_comment · Delete a comment. Only the original author may delete. Returns 204. API-key scope: `tasks:write`.
  • pm_list_task_relationships · List all relationships where the task is owner OR child. Cursor-paginated. API-key scope: `tasks:read`.
  • pm_create_task_relationship · Create a relationship from one task to another. `type` is the relationship-type name in the workspace (e.g. "Blocking"). `target` is a task key or identifier. The current task (ref) is the owner. API-key scope: `tasks:write`.
  • pm_delete_task_relationship · Delete a relationship by identifier. Returns 204. API-key scope: `tasks:write`.
  • pm_create_space · Create a new space in the current workspace. Description / icon / color / isPrivate are optional metadata. Returns LiteSpaceResponse. API-key scope: `spaces:write`.
  • pm_create_folder · Create a folder inside a space. Space identified by name. API-key scope: `folders:write`.
  • pm_update_folder · Update folder metadata by identifier (fld_…). All fields optional. API-key scope: `folders:write`.
  • pm_delete_folder · Soft-delete a folder and its child lists+tasks. Requires FULL access. 204. API-key scope: `folders:write`.
  • pm_create_list · Create a task list inside a space (optionally inside a folder). Space and folder are identified by name. Omit folder to create the list directly under the space. Prefer setting icon and color on create when the list purpose is known. For ic
  • pm_update_list · Update list metadata by identifier (tl_…). All fields optional. API-key scope: `lists:write`.
  • pm_delete_list · Soft-delete a list and its tasks. Requires FULL access. 204. API-key scope: `lists:write`.
  • pm_create_custom_field · Create a custom field at workspace / space / list scope. scope=workspace ignores scopeName; scope=space takes a space name; scope=list takes a list name (first match in the workspace). For dropdown / labels (multi-select) types, pass `optio
  • pm_update_custom_field · Update custom-field metadata (name / description / emoji / color / isPrivate). API-key scope: `custom_fields:write`.
  • pm_delete_custom_field · Delete a custom field and all its values. Requires FULL access. 204. API-key scope: `custom_fields:write`.
  • pm_list_views · List views at a given scope. scope is one of workspace/space/folder/list; scopeIdentifier is the UUID of the parent entity (omit for workspace scope — the MCP's configured workspace is used). Cursor-paginated. API-key scope: `views:read`.
  • pm_get_view · Fetch a view by identifier (vw_…). API-key scope: `views:read`.
  • pm_create_view · Create a view. type is one of list / board / table / dashboard / gantt / calendar / gallery. For a newly created list, prefer configuring its auto-created primary view with pm_update_view; add another view only for a distinct workflow. ALWA
  • pm_update_view · Update a view, including the auto-created primary List view when finishing list setup. Configure useful column order, grouping, and sorting instead of leaving a defaults-only view. filters / columns use FilterGroupDTO / ColumnOrderItem shap
  • pm_delete_view · Delete a view by identifier. Mandatory views (system-created defaults) return 409 Conflict. Returns 204 on success. API-key scope: `views:write`.
  • pm_clone_view · Clone an existing view into a (possibly different) scope. Requires VIEW on the source and EDIT on the target scope. API-key scope: `views:write`.
  • pm_list_sprint_groups · List all sprint groups in a space. Sprint groups are containers for sprints — each group has its own state machine (only one IN_PROGRESS sprint per group). Returns an array of SprintGroupDTO. API-key scope: `sprints:read`.
  • pm_create_sprint_group · Create a sprint group inside a space. `name` is required (max 100 chars). `description` is optional (max 2000 chars). `defaultDurationDays` is the default sprint length used when creating new sprints (1–90 days, optional). API-key scope: `s
  • pm_create_sprint · Create a sprint inside a sprint group. New sprints start in NOT_STARTED state. `name` required (max 200 chars). `goal`, `startDate`, `endDate` optional (ISO-8601 instants for dates). API-key scope: `sprints:write`.
  • pm_get_sprint · Fetch a sprint by identifier. Returns SprintDTO with task statistics. API-key scope: `sprints:read`.
  • pm_update_sprint · Full update of sprint name, goal, and date window. NOTE: this is a PUT, not a PATCH — fields you omit may be cleared by the backend. Pass every field you want to keep. API-key scope: `sprints:write`.
  • pm_delete_sprint · Soft-delete a sprint. Tasks lose their sprint association but remain in their lists. 204 on success. API-key scope: `sprints:write`.
  • pm_start_sprint · Transition a sprint from NOT_STARTED to IN_PROGRESS. Only ONE sprint per group can be IN_PROGRESS at a time — starting a sprint while another is in progress will fail. No body. API-key scope: `sprints:write`.
  • pm_complete_sprint · Transition a sprint from IN_PROGRESS to DONE. Optionally pass `rolloverSprintIdentifier` to move incomplete tasks into a different sprint (typically the next one in the group). Omit the field to leave incomplete tasks unsorted (no rollover)
  • pm_add_tasks_to_sprint · Associate tasks with a sprint. All tasks must belong to the same space as the sprint group. Pass identifiers (tsk_…), not task keys. Returns updated SprintDTO. API-key scope: `sprints:write`.
  • pm_remove_tasks_from_sprint · Remove task-sprint associations. Tasks remain in their lists. Pass identifiers (tsk_…), not task keys. Returns updated SprintDTO. API-key scope: `sprints:write`.
  • pm_get_sprint_tasks · List all tasks currently in the sprint. Returns an array of full TaskDTO. API-key scope: `sprints:read`.
  • pm_get_sprint_burndown · Return burndown/burnup chart data for the sprint — daily snapshots of remaining vs completed work. Use this to render burndown charts or audit sprint progress over time. API-key scope: `sprints:read`.
  • pm_create_webhook · Create an outgoing webhook subscription for the current workspace. The response includes a one-time `secret` (HMAC-SHA256 key used to verify the X-Webhook-Signature-256 header on delivery). SAVE THIS SECRET IMMEDIATELY — subsequent reads (p
  • pm_list_webhooks · List all webhook subscriptions registered in the current workspace. The HMAC `secret` is NOT included — only present in the original create response. API-key scope: `webhooks:read`.
  • pm_get_webhook_usage · Report webhook quota for the current workspace: { userManaged, agentManaged, total, max }. `total` is the count of active subscriptions and `max` is the per-workspace cap; `agentManaged` is the subset created via API keys (like this MCP). C
  • pm_get_webhook · Fetch a single webhook by identifier. Returns its url / name / eventTypes / scope / active flag; does NOT return the HMAC secret (only available at creation time). API-key scope: `webhooks:read`.
  • pm_update_webhook · Partial-update a webhook subscription. Only fields present in the call are changed (pass-through PATCH-style semantics). Use `active: false` to pause deliveries without deleting. Updating eventTypes replaces the full subscribed set. Does no
  • pm_delete_webhook · Delete a webhook subscription permanently. Stops all future deliveries. Returns 204. The HMAC secret cannot be recovered — recreate the webhook to get a new one. API-key scope: `webhooks:write`.

The first 100 are shown.

What "online" means: the server answered an MCP connection at the time of the check. It is not a guarantee of security, quality or continuous uptime. How we test: we open an MCP session and ask for the tool list, as an AI assistant would. We never run a tool and never send a key. Checked every few days. Method

Is this your server? Monitoring Pro: a check every 30 minutes and an email within the hour when it stops answering. Launch offer: $39.99 once, for life.

Facts & evidence

Each fact shows where it was seen and when.
FactValueEvidenceSourceLast confirmed
Hosted endpointhttps://mcp.dutify.aiDECLAREDSRC-001 Official MCP Registry41m ago
Local install (package)noDECLAREDSRC-001 Official MCP Registry41m ago
Remote access (hosted)yesDECLAREDSRC-001 Official MCP Registry41m ago
Websitehttps://dutify.aiDECLAREDSRC-001 Official MCP Registry41m ago
Repositoryhttps://github.com/dutifyai/dutify-mcpDECLAREDSRC-001 Official MCP Registry41m ago
Registry statusactiveDECLAREDSRC-001 Official MCP Registry41m ago
Version0.1.1DECLAREDSRC-001 Official MCP Registry41m ago
MCP serveryesDECLAREDSRC-001 Official MCP Registry41m ago

Change history

  • NEW24 Oct 2026
    first seen in the index

Is this page accurate?

Flag it and our robot re-checks the official source. Reports never change a score.

Are you the publisher of Dutify?

Free · show your listing

An independent listing builds trust with your buyers. Announce it, and add the badge to your website or README.

Announce it on LinkedInListed on Electra Index
<a href="https://electraindex.com/mcp/dutify?utm_source=badge&utm_medium=share&utm_campaign=listing"><img src="https://electraindex.com/api/badge/dutify" alt="Listed on Electra Index"></a>

Questions about Dutify

How do I connect Dutify?

Use the hosted endpoint https://mcp.dutify.ai in your assistant's MCP settings. The exact settings are in "How to connect" above, as declared in the Official MCP Registry.

Does Dutify need an API key or token?

Yes. The registry entry lists a required value: X-API-Key. Get it from the publisher.

What tools does Dutify offer?

When Electra Index connected on 24 Oct 2026, it listed 189 tools: whoami, list_accounts, find_my_workspace, list_workspaces, list_boards, list_spaces, get_endpoint_examples, wiki_search and more. The full list is in "Live check" above.

Is Dutify online?

Yes. Its hosted endpoint answered an MCP connection from Electra Index 35m ago.