Skip to content

feat(tools): expand Canny API surface with 6 new tools and fix jira field mapping#5

Merged
Ompragash merged 1 commit into
mainfrom
fix-post-tool-add-new-tool
Feb 20, 2026
Merged

feat(tools): expand Canny API surface with 6 new tools and fix jira field mapping#5
Ompragash merged 1 commit into
mainfrom
fix-post-tool-add-new-tool

Conversation

@Ompragash
Copy link
Copy Markdown
Contributor

Introduce tag lifecycle management (create, add-to-post, remove-from-post), status change auditing, and changelog entry support as first-class MCP tools. This brings total coverage from 24 to 30 tools across 7 toolsets.

New tools:

  • canny_create_tag: tag creation on boards (discovery toolset)
  • canny_add_post_tag / canny_remove_post_tag: post-tag association (posts toolset)
  • canny_list_status_changes: status change audit trail (discovery toolset)
  • canny_create_changelog_entry / canny_list_changelog_entries: changelog CRUD (new changelog toolset)

Infrastructure changes:

  • Add CannyStatusChange, CannyChangelogEntry types and corresponding client methods
  • Extend ToolsetName union with 'changelog' for granular toolset filtering
  • Add 6 client methods with retry logic via existing request() pipeline

Bug fix:

  • Correct CannyPost.jira type from CannyJiraIssue[] to { linkedIssues: CannyJiraIssue[] } to match actual Canny API response shape, resolving "post.jira.map is not a function" crash in ResponseTransformer.compactPost and jiraLinkStatus resource

Test and documentation updates reflect new tool counts (30 total, 12 read-only, 18 write).

…ield mapping

Introduce tag lifecycle management (create, add-to-post, remove-from-post),
status change auditing, and changelog entry support as first-class MCP tools.
This brings total coverage from 24 to 30 tools across 7 toolsets.

New tools:
- canny_create_tag: tag creation on boards (discovery toolset)
- canny_add_post_tag / canny_remove_post_tag: post-tag association (posts toolset)
- canny_list_status_changes: status change audit trail (discovery toolset)
- canny_create_changelog_entry / canny_list_changelog_entries: changelog CRUD (new changelog toolset)

Infrastructure changes:
- Add CannyStatusChange, CannyChangelogEntry types and corresponding client methods
- Extend ToolsetName union with 'changelog' for granular toolset filtering
- Add 6 client methods with retry logic via existing request() pipeline

Bug fix:
- Correct CannyPost.jira type from CannyJiraIssue[] to { linkedIssues: CannyJiraIssue[] }
  to match actual Canny API response shape, resolving "post.jira.map is not a function"
  crash in ResponseTransformer.compactPost and jiraLinkStatus resource

Test and documentation updates reflect new tool counts (30 total, 12 read-only, 18 write).
@Ompragash Ompragash merged commit b5d1646 into main Feb 20, 2026
3 checks passed
Comment thread src/api/client.ts
const response = await this.request<{
entries: CannyChangelogEntry[];
hasMore: boolean;
}>('changelog_entries/list', params);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @Ompragash I'm using your MCP to link up Canny and wanted to let you know that this API is out of date and it should be https://canny.io/api/v1/entries/list (https://developers.canny.io/api-reference#entries)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants