Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 23:15
· 22 commits to master since this release

datacenter-mcp-core

Minor Changes

  • 6df9e9d Thanks @MrRefactoring! - Roll tool annotations out to Confluence (101 tools) and Bitbucket (114 tools) via the shared registerAnnotatedTool helper, so every tool across all three products now advertises readOnlyHint/destructiveHint/idempotentHint/title/openWorldHint.

    The core classifier learned the vocabulary these products use: it skips the admin_ namespace token so confluence_admin_delete_user is correctly flagged destructive, treats convert/compare/browse/can/is as read-only, and classifies grant/revoke/enable/disable/watch/unwatch/edit as idempotent non-destructive writes. Pull-request and version merges are flagged destructive.

  • 6bdf2db Thanks @MrRefactoring! - Mature the Jira MCP surface:

    • Tool annotations on all Jira tools. A new deriveToolAnnotations / registerAnnotatedTool helper in core derives readOnlyHint/destructiveHint/idempotentHint/title/openWorldHint from each tool's <product>_<verb>_<noun> name, so hosts can auto-approve read-only calls and warn before destructive ones (delete/remove/merge-version).
    • More resources: added jira://project/{key}, jira://board/{id}, and jira://user/{username} alongside the existing jira://issue/{key}.
    • More prompts: added jira_plan_sprint, jira_break_down_epic, and jira_build_jql alongside jira_triage_issue.
    • Opt-in pagination: the bounded agile listers (jira_get_boards, jira_get_board_sprints, jira_get_board_versions, jira_get_board_epics) accept fetchAll to follow pagination and return every page as a flat array (safety-capped). The JQL-backed issue listings stay single-page and agent-driven.
  • 7f1c16a Thanks @MrRefactoring! - Add a configurable response-size cap so oversized API responses no longer blow the model's context window. Every tool response is serialized through formatToolResponse, which now truncates payloads larger than ATLASSIAN_DC_MCP_MAX_RESPONSE_CHARS (default 100,000 characters, ~25k tokens) and appends a clear marker explaining the payload was cut and how to get the rest (narrow the query, use a smaller limit or pagination, request specific fields). Set the env var to 0 to disable the cap. This protects Jira, Confluence, and Bitbucket uniformly against large diffs, long page bodies, and big unfiltered list results.

  • 8e5a1e3 Thanks @MrRefactoring! - Add two MCP protocol maturity features across all three products:

    • Server instructions: each server now advertises an instructions string in its initialize result, telling the client/model what the server is, that every call acts as the single configured user, the <product>_<verb>_<noun> naming and read/write/destructive annotations, how to search (JQL/CQL), the fetchAll pagination opt-in, and the addressable resource URIs. createMcpServer gained an optional instructions field.
    • Argument completions (completion/complete): prompt arguments and resource-template variables now offer live autocompletion, backed by list endpoints and filtered against the partial input (case-insensitive substring, capped). Confluence completes spaceKey; Jira completes projectKey and boardId; Bitbucket completes projectKey and (scoped to the chosen project) repositorySlug. A shared filterCompletions helper was added to core. Completions never throw — a failed lookup yields an empty list. Verified live against Confluence Data Center 9.2.21 and Bitbucket Data Center 9.3.2 instances.

jira-datacenter-mcp

Minor Changes

  • 6bdf2db Thanks @MrRefactoring! - Mature the Jira MCP surface:

    • Tool annotations on all Jira tools. A new deriveToolAnnotations / registerAnnotatedTool helper in core derives readOnlyHint/destructiveHint/idempotentHint/title/openWorldHint from each tool's <product>_<verb>_<noun> name, so hosts can auto-approve read-only calls and warn before destructive ones (delete/remove/merge-version).
    • More resources: added jira://project/{key}, jira://board/{id}, and jira://user/{username} alongside the existing jira://issue/{key}.
    • More prompts: added jira_plan_sprint, jira_break_down_epic, and jira_build_jql alongside jira_triage_issue.
    • Opt-in pagination: the bounded agile listers (jira_get_boards, jira_get_board_sprints, jira_get_board_versions, jira_get_board_epics) accept fetchAll to follow pagination and return every page as a flat array (safety-capped). The JQL-backed issue listings stay single-page and agent-driven.
  • 8e5a1e3 Thanks @MrRefactoring! - Add two MCP protocol maturity features across all three products:

    • Server instructions: each server now advertises an instructions string in its initialize result, telling the client/model what the server is, that every call acts as the single configured user, the <product>_<verb>_<noun> naming and read/write/destructive annotations, how to search (JQL/CQL), the fetchAll pagination opt-in, and the addressable resource URIs. createMcpServer gained an optional instructions field.
    • Argument completions (completion/complete): prompt arguments and resource-template variables now offer live autocompletion, backed by list endpoints and filtered against the partial input (case-insensitive substring, capped). Confluence completes spaceKey; Jira completes projectKey and boardId; Bitbucket completes projectKey and (scoped to the chosen project) repositorySlug. A shared filterCompletions helper was added to core. Completions never throw — a failed lookup yields an empty list. Verified live against Confluence Data Center 9.2.21 and Bitbucket Data Center 9.3.2 instances.

Patch Changes

confluence-datacenter-mcp

Minor Changes

  • 1bdd046 Thanks @MrRefactoring! - Expand the Confluence MCP API coverage with 11 new tools (all live-verified against a Confluence Data Center 9.2.21 instance):

    • Label discovery (6): confluence_get_recently_used_labels and confluence_get_related_labels (instance-wide), plus confluence_get_space_labels, confluence_get_space_popular_labels, confluence_get_space_recent_labels, and confluence_get_space_related_labels (per-space).
    • Space watchers: confluence_get_space_watchers lists the users watching a space.
    • Admin reads (3): confluence_get_access_mode_status (READ_WRITE / READ_ONLY), confluence_get_audit_records (audit log), and confluence_get_global_permissions (global permission grants).
    • Content cleanup: confluence_delete_content_version removes a specific historical version of a page.

    These wire previously-unused generated client services (LabelService, SpaceLabelService, SpaceWatchersService, AccessModeService, DefaultService, GlobalPermissionsService, ContentVersionService) into ConfluenceService and the tool registry, bringing the Confluence tool count to 112.

  • 6df9e9d Thanks @MrRefactoring! - Roll tool annotations out to Confluence (101 tools) and Bitbucket (114 tools) via the shared registerAnnotatedTool helper, so every tool across all three products now advertises readOnlyHint/destructiveHint/idempotentHint/title/openWorldHint.

    The core classifier learned the vocabulary these products use: it skips the admin_ namespace token so confluence_admin_delete_user is correctly flagged destructive, treats convert/compare/browse/can/is as read-only, and classifies grant/revoke/enable/disable/watch/unwatch/edit as idempotent non-destructive writes. Pull-request and version merges are flagged destructive.

  • 386e420 Thanks @MrRefactoring! - Rewrite the Confluence client off the generated openapi-typescript-codegen output onto the shared hand-written HTTP client, completing the migration already done for Jira and Bitbucket. packages/confluence/src/confluenceClient/ is now a small hand-written client: core/client.ts (createConfluenceClient factory over core's createHttpClient), api/ (one free function per endpoint grouped into content/spaces/attachments/users/webhooks/admin namespaces), plus models.ts and a thin index.ts. The OpenAPI singleton, CancelablePromise, the generated request plumbing, all 38 generated service classes and 122 generated model files were removed. ConfluenceService now constructs the client once (this.conf = createConfluenceClient({...})) and calls this.conf.<group>.<fn>({ named }). All 112 endpoints were transcribed faithfully (same method/URL/params) and the migration was verified against a live Confluence Data Center 9.2.21 instance — 45 read endpoints and 13 write operations exercised successfully, with the only non-passing endpoints being ones that behave identically on the old client (single-node cluster status, version-specific admin endpoints). No user-facing tool behaviour changes.

  • 231c391 Thanks @MrRefactoring! - Bring Confluence up to the same MCP maturity as Jira with richer resources, prompts, and opt-in pagination:

    • Resources 1 → 4: added confluence://space/{spaceKey}, confluence://space/{spaceKey}/content, and confluence://user/{username} alongside the existing confluence://page/{pageId}.
    • Prompts 1 → 4: added confluence_summarize_space, confluence_draft_page, and confluence_review_space_access alongside confluence_build_cql_query (each references real Confluence tool names).
    • Opt-in pagination: confluence_get_spaces, confluence_get_attachments, and confluence_get_groups accept fetchAll to follow the collection's _links.next pagination and return every page as a single flat array (safety-capped). Multi-page following was live-verified against a Confluence Data Center 9.2.21 instance. Type-grouped listings (space content, content children) stay single-page since they are not flat collections; open-ended CQL search stays single-page by design.
  • 8e5a1e3 Thanks @MrRefactoring! - Add two MCP protocol maturity features across all three products:

    • Server instructions: each server now advertises an instructions string in its initialize result, telling the client/model what the server is, that every call acts as the single configured user, the <product>_<verb>_<noun> naming and read/write/destructive annotations, how to search (JQL/CQL), the fetchAll pagination opt-in, and the addressable resource URIs. createMcpServer gained an optional instructions field.
    • Argument completions (completion/complete): prompt arguments and resource-template variables now offer live autocompletion, backed by list endpoints and filtered against the partial input (case-insensitive substring, capped). Confluence completes spaceKey; Jira completes projectKey and boardId; Bitbucket completes projectKey and (scoped to the chosen project) repositorySlug. A shared filterCompletions helper was added to core. Completions never throw — a failed lookup yields an empty list. Verified live against Confluence Data Center 9.2.21 and Bitbucket Data Center 9.3.2 instances.

Patch Changes

bitbucket-datacenter-mcp

Minor Changes

  • d336f34 Thanks @MrRefactoring! - Expand the Bitbucket MCP surface (all additions live-verified against a Bitbucket Data Center 9.3.2 instance):

    • 5 new read tools: bitbucket_get_commit_changes (files changed in a commit), bitbucket_get_commit_pull_requests (PRs containing a commit), bitbucket_get_compare_diff (raw diff between two refs), bitbucket_get_repository_labels, and bitbucket_get_pull_request_blocker_comments (a PR's unresolved tasks).
    • 2 new resources: bitbucket://project/{key} and bitbucket://commit/{key}/{slug}/{commitId}, alongside the existing repo and pull-request resources.
    • 3 new prompts: bitbucket_triage_open_pull_requests, bitbucket_investigate_merge_readiness, and bitbucket_prepare_pull_request, alongside the existing review prompt.
    • Opt-in pagination: bitbucket_get_branches and bitbucket_get_tags accept fetchAll to follow pagination and return every page as a flat array (safety-capped). Commit and pull-request listings stay single-page.
  • 6df9e9d Thanks @MrRefactoring! - Roll tool annotations out to Confluence (101 tools) and Bitbucket (114 tools) via the shared registerAnnotatedTool helper, so every tool across all three products now advertises readOnlyHint/destructiveHint/idempotentHint/title/openWorldHint.

    The core classifier learned the vocabulary these products use: it skips the admin_ namespace token so confluence_admin_delete_user is correctly flagged destructive, treats convert/compare/browse/can/is as read-only, and classifies grant/revoke/enable/disable/watch/unwatch/edit as idempotent non-destructive writes. Pull-request and version merges are flagged destructive.

  • 8e5a1e3 Thanks @MrRefactoring! - Add two MCP protocol maturity features across all three products:

    • Server instructions: each server now advertises an instructions string in its initialize result, telling the client/model what the server is, that every call acts as the single configured user, the <product>_<verb>_<noun> naming and read/write/destructive annotations, how to search (JQL/CQL), the fetchAll pagination opt-in, and the addressable resource URIs. createMcpServer gained an optional instructions field.
    • Argument completions (completion/complete): prompt arguments and resource-template variables now offer live autocompletion, backed by list endpoints and filtered against the partial input (case-insensitive substring, capped). Confluence completes spaceKey; Jira completes projectKey and boardId; Bitbucket completes projectKey and (scoped to the chosen project) repositorySlug. A shared filterCompletions helper was added to core. Completions never throw — a failed lookup yields an empty list. Verified live against Confluence Data Center 9.2.21 and Bitbucket Data Center 9.3.2 instances.

Patch Changes