canny-mcp-server

itsocialist/canny-mcp-server

3.2

If you are the rightful owner of canny-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Canny MCP Server is a Model Context Protocol server designed to integrate with Canny.io for efficient customer feedback management, adhering to CIQ's CODE2 principles.

Tools
6
Resources
0
Prompts
0

Canny MCP Server

A Model Context Protocol (MCP) server that integrates with Canny.io for customer feedback management. Built following CIQ's CODE2 principles to deliver Customer-Centric, Optimistic, Dedicated, Efficient, and Excellent solutions.

Features

Customer-Centric

  • Board Management: List and access all available Canny boards
  • Post Retrieval: Get detailed post information with flexible filtering
  • Search Capability: Find posts across boards using powerful search
  • Content Management: Create and update posts seamlessly

Efficient & Excellent

  • Rate Limiting: Built-in protection against API rate limits
  • Error Handling: Robust error handling with detailed feedback
  • Validation: Input validation using Zod schemas
  • Type Safety: Full TypeScript implementation

Installation

Prerequisites

  • Node.js 18 or higher
  • Canny.io API key

Quick Start

  1. Install dependencies:

    npm install
    
  2. Set up environment variables:

    export CANNY_API_KEY="your_api_key_here"
    export CANNY_BASE_URL="https://canny.io/api/v1"  # Optional
    
  3. Build the server:

    npm run build
    
  4. Run in development mode:

    npm run dev
    

Environment Variables

Required

  • CANNY_API_KEY: Your Canny.io API key

Optional

  • CANNY_BASE_URL: API base URL (default: https://canny.io/api/v1)
  • CANNY_TIMEOUT: Request timeout in ms (default: 30000)
  • CANNY_MAX_RETRIES: Max retry attempts (default: 3)
  • CANNY_RATE_LIMIT_RPM: Requests per minute limit (default: 60)
  • CANNY_RATE_LIMIT_BURST: Burst limit (default: 10)

Available Tools

Board Tools

  • get_boards: List all accessible Canny boards

Post Tools

  • get_posts: Get posts from a specific board with filtering options
  • get_post: Get detailed information about a specific post
  • search_posts: Search for posts across boards
  • create_post: Create a new post in a board
  • update_post: Update an existing post

Usage Examples

Get All Boards

{
  "name": "get_boards",
  "arguments": {}
}

Get Posts from a Board

{
  "name": "get_posts",
  "arguments": {
    "boardId": "board_123",
    "limit": 10,
    "status": "open",
    "sort": "newest"
  }
}

Search Posts

{
  "name": "search_posts",
  "arguments": {
    "query": "feature request",
    "limit": 20,
    "status": "open"
  }
}

Create a Post

{
  "name": "create_post",
  "arguments": {
    "authorId": "user_123",
    "boardId": "board_123",
    "title": "New Feature Request",
    "details": "Detailed description of the feature"
  }
}

Development

Running Tests

npm test

Linting

npm run lint
npm run lint:fix

Building

npm run build

Configuration with Claude

Add to your Claude MCP configuration:

{
  "mcpServers": {
    "canny": {
      "command": "node",
      "args": ["/path/to/canny-mcp-server/dist/server.js"],
      "env": {
        "CANNY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Error Handling

The server implements comprehensive error handling:

  • API rate limiting protection
  • Input validation with detailed error messages
  • Network error recovery with retries
  • Graceful handling of API failures

Contributing

Following CIQ's CODE2 principles:

  1. Customer-Centric: Focus on user value in every contribution
  2. Optimistic: Approach challenges as opportunities
  3. Dedicated: Own your contributions fully
  4. Efficient: Leverage existing solutions and automate where possible
  5. Excellent: Maintain high standards and continuous improvement

License

MIT License