Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Canny

БесплатноНе проверен

Canny MCP Server for Canny API integration with AI Assistants. Features Jira linking, batch operations, ETA management, company MRR tracking, and PM-focused wor

GitHubEmbed

Описание

Canny MCP Server for Canny API integration with AI Assistants. Features Jira linking, batch operations, ETA management, company MRR tracking, and PM-focused workflows.

README

MseeP.ai Security Assessment Badge Verified on MseeP

Canny MCP Server

A Model Context Protocol (MCP) server for Canny feedback management. Connect Canny to any MCP-compatible AI client to manage customer feedback, prioritize features, and streamline product development through natural language.

Features

  • 37 Tools — Full Canny API coverage: posts, comments, votes, users, categories, tags, changelog, status changes, ideas, insights, groups, opportunities, and Jira integration
  • Token-Optimized — 70–90% smaller responses than the raw API
  • Jira Integration — Link posts to Jira issues
  • PM Workflows — Built-in prompts for weekly triage, sprint planning, and executive reporting
  • Smart Pagination — Automatic cursor/skip handling
  • Batch Operations — Bulk status changes
  • Configurable Toolsets — Readonly by default; enable write tools selectively

Prerequisites

  • Node.js v20.9+, v22+, or v24+ (LTS versions)
  • npm v9+
  • MCP Client — Claude Code, Continue.dev, or any MCP-compatible client
  • Canny API Key — Get one at canny.io/admin/settings/api

Quick Start with Claude Code

The fastest way to start: run npx directly through Claude Code. No clone, no build.

Step 1: Get Your Canny Credentials

  1. API Key — Visit canny.io/admin/settings/api
  2. Subdomain — Your Canny workspace URL: https://<subdomain>.canny.io
  3. Board ID (optional) — Find it via the Canny admin URL or by running canny_list_boards after setup

Step 2: Add the MCP Server

claude mcp add --transport stdio canny \
  --scope user \
  --env CANNY_SUBDOMAIN=<COMPANY_SUBDOMAIN> \
  --env CANNY_API_KEY=<CANNY_API_KEY> \
  --env CANNY_DEFAULT_BOARD=<BOARD_ID> \
  --env CANNY_TOOL_MODE=readonly \
  -- npx -y @opensourceops/canny-mcp

Replace <COMPANY_SUBDOMAIN>, <CANNY_API_KEY>, and <BOARD_ID> with your values.

Step 3: Restart Claude Code

Quit and reopen Claude Code for the new server to load.

Step 4: Verify

Ask Claude:

List the available Canny tools.

You should see 37 tools, including canny_list_posts, canny_get_post, and canny_list_ideas.

Global Install

To install the package globally:

npm install -g @opensourceops/canny-mcp

Then configure your MCP client to run canny-mcp-server instead of npx:

{
  "mcpServers": {
    "canny": {
      "command": "canny-mcp-server",
      "env": {
        "CANNY_API_KEY": "your_api_key",
        "CANNY_SUBDOMAIN": "your_subdomain",
        "CANNY_DEFAULT_BOARD": "your_board_id",
        "CANNY_TOOL_MODE": "readonly"
      }
    }
  }
}

Available Tools

Discovery (9 tools: 8 read-only, 1 write)

  • canny_list_boards — List all boards
  • canny_list_tags — List tags (optionally by board)
  • canny_create_tag — Create a new tag on a board
  • canny_list_categories — List categories
  • canny_list_posts — List posts with filters (status, author, company, tags)
  • canny_filter_posts — Filter by category, company, segment, tag slugs, and date ranges
  • canny_get_post — Get full post details with comments and votes
  • canny_list_status_changes — List post status change history for auditing
  • canny_create_category — Create a board category

Posts (6 write tools)

  • canny_create_post — Create a post (supports images, ETA, owner)
  • canny_update_post — Update title, description, ETA, or images
  • canny_update_post_status — Change status with optional voter notification
  • canny_change_category — Move a post to a different category
  • canny_add_post_tag — Add a tag to a post
  • canny_remove_post_tag — Remove a tag from a post

Engagement (6 tools: 2 read-only, 4 write)

  • canny_list_comments — List comments (filterable by company)
  • canny_list_votes — List votes
  • canny_create_comment — Add a comment (supports images, internal flag)
  • canny_delete_comment — Remove a comment
  • canny_add_vote — Add a vote
  • canny_remove_vote — Remove a vote

Users & Companies (4 tools: 2 read-only, 2 write)

  • canny_get_user_details — Look up a user by ID, email, or custom userID
  • canny_list_companies — List companies with MRR data
  • canny_find_or_create_user — Find or create a user with company associations
  • canny_link_company — Link a user to a company

Jira (2 write tools)

  • canny_link_jira_issue — Link a Jira issue to a post
  • canny_unlink_jira_issue — Unlink a Jira issue

Changelog (2 tools: 1 read-only, 1 write)

  • canny_list_changelog_entries — List changelog entries
  • canny_create_changelog_entry — Create a changelog entry to communicate product updates

Ideas Ecosystem (7 read-only tools)

  • canny_list_groups — List groups (cursor-based pagination)
  • canny_get_group — Get a group by ID or URL name
  • canny_list_ideas — List ideas with filtering, search, and sorting
  • canny_get_idea — Get an idea by ID or URL name
  • canny_list_insights — List insights, optionally filtered by idea
  • canny_get_insight — Get an insight by ID
  • canny_list_opportunities — List Salesforce opportunities linked to Canny

Batch (1 write tool)

  • canny_batch_update_status — Update multiple post statuses at once

Configuration

Tool Modes

The server runs in readonly mode by default (19 read-only tools). To enable write operations, set CANNY_TOOL_MODE:

Mode Tools Description
readonly 19 Read-only tools only (default)
all 37 All tools, including writes
discovery,posts varies Specific toolsets (comma-separated)

Set via environment variable or config/default.json:

{
  "server": {
    "toolMode": "all"
  }
}

Rebuild after changing config/default.json:

npm run build

Environment Variables

Canny API (required)

Variable Default Description
CANNY_API_KEY -- Your Canny API key (required)
CANNY_BASE_URL https://canny.io/api/v1 Canny API base URL
CANNY_SUBDOMAIN auto-detected Your Canny subdomain; auto-detected from CANNY_BASE_URL if *.canny.io
CANNY_CONFIG_PATH config/default.json Path to the JSON config file

Workspace

Variable Default Description
CANNY_DEFAULT_BOARD -- Default board ID
CANNY_WORKSPACE_NAME Default Workspace display name
CANNY_CUSTOM_STATUSES open,under review,planned,in progress,complete,closed Comma-separated list of valid statuses

Jira Integration

Variable Default Description
CANNY_JIRA_ENABLED false Enable Jira integration (true/false)
CANNY_JIRA_PROJECT_KEY -- Jira project key (e.g., PROJ)

Pagination & Display

Variable Default Description
CANNY_PAGINATION_LIMIT 10 Results per page
CANNY_PAGINATION_MAX 50 Maximum total results
CANNY_COMPACT_MODE true Return compact responses (true/false)

Cache

Variable Default Description
CANNY_CACHE_ENABLED true Enable response caching (true/false)
CANNY_CACHE_MAX_SIZE 100 Maximum cache entries

Rate Limiting

Variable Default Description
CANNY_RATE_LIMIT_REQUESTS 100 Maximum requests per window
CANNY_RATE_LIMIT_WINDOW 60000 Rate limit window in milliseconds

Server

Variable Default Description
CANNY_TOOL_MODE readonly readonly, all, or comma-separated toolsets
SERVER_TRANSPORT stdio Transport mode: stdio, http, or both
SERVER_HTTP_PORT 3000 HTTP server port (when transport includes http)
SERVER_HTTP_HOST 0.0.0.0 HTTP server bind address

Logging

Variable Default Description
LOG_LEVEL info Log level: debug, info, warn, error
LOG_FORMAT json Log format: json or pretty

Custom Prompts

The server ships with 5 built-in prompts (weekly_triage, sprint_planning, executive_summary, jira_sync_status, customer_impact). Add your own in config/default.json:

{
  "prompts": [
    {
      "name": "my_workflow",
      "description": "Custom triage workflow",
      "template": "Analyze feedback and..."
    }
  ]
}

See Prompt Configuration for the full guide and Custom Prompts for advanced examples.

Local Development Environment

Clone the repository to modify the server, run tests, or contribute.

Step 1: Clone and Build

git clone https://github.com/opensourceops/canny-mcp-server.git
cd canny-mcp-server
npm install
npm run build

Step 2: Configure Your MCP Client

Option A: Claude Code (via CLI)

claude mcp add --transport stdio canny \
  --env CANNY_API_KEY=your_api_key \
  --env CANNY_SUBDOMAIN=your_subdomain \
  --env CANNY_DEFAULT_BOARD=your_board_id \
  --env CANNY_CONFIG_PATH=$(pwd)/config/default.json \
  -- $(which node) $(pwd)/dist/index.js

Option B: Manual JSON Configuration

Add to your MCP client's config file:

{
  "mcpServers": {
    "canny": {
      "command": "node",
      "args": ["/absolute/path/to/canny-mcp-server/dist/index.js"],
      "env": {
        "CANNY_API_KEY": "your_api_key",
        "CANNY_SUBDOMAIN": "your_subdomain",
        "CANNY_DEFAULT_BOARD": "your_board_id",
        "CANNY_CONFIG_PATH": "/absolute/path/to/canny-mcp-server/config/default.json"
      }
    }
  }
}

Step 3: Restart and Verify

Restart your MCP client, then ask:

Show me the latest feature requests from Canny.

Documentation

Troubleshooting

API Key Issues

Test your key directly:

curl https://canny.io/api/v1/boards/list --data apiKey=YOUR_API_KEY

This should return your boards.

Tools Not Appearing

  1. Rebuild after config changes: npm run build
  2. Restart your MCP client (quit and reopen)
  3. Check CANNY_TOOL_MODEreadonly excludes write tools
  4. Use absolute paths in manual JSON configuration

Node.js Version Warnings

Use Node.js LTS versions (20.9+, 22+, or 24+). Odd-numbered releases (23, 25) are non-LTS and unsupported. Switch with nvm use 20 or nvm use 22.

Deprecated package warnings (ESLint, glob) affect only devDependencies and do not affect production runtime.

Security

  • Never commit .env files or API keys
  • Use readonly mode for general use
  • Enable write tools only when needed
  • Keep CANNY_API_KEY secret

Project Structure

canny-mcp-server/
├── src/                 # TypeScript source
│   ├── index.ts         # Entry point
│   ├── server.ts        # MCP server
│   ├── api/             # Canny API client
│   ├── tools/           # MCP tools
│   ├── prompts/         # Built-in prompts
│   └── types/           # Type definitions
├── config/
│   └── default.json     # Server configuration
├── docs/                # Documentation
├── dist/                # Compiled output (generated)
├── package.json
└── tsconfig.json

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

Apache 2.0 — See LICENSE.

Support

from github.com/opensourceops/canny-mcp-server

Установка Canny

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/opensourceops/canny-mcp-server

FAQ

Canny MCP бесплатный?

Да, Canny MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Canny?

Нет, Canny работает без API-ключей и переменных окружения.

Canny — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Canny в Claude Desktop, Claude Code или Cursor?

Открой Canny на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Canny with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development