Uses Zod schemas for input validation and type safety in API interactions
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Canny MCP Serversearch for posts about mobile app bugs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Feature-Discussion MCP Server
Installation
Prerequisites
Node.js 18 or higher
Canny.io API key
Quick Start
Install dependencies:
npm installSet up environment variables:
export CANNY_API_KEY="your_api_key_here" export CANNY_BASE_URL="https://canny.io/api/v1" # OptionalBuild the server:
npm run buildRun 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 optionsget_post: Get detailed information about a specific postsearch_posts: Search for posts across boardscreate_post: Create a new post in a boardupdate_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 testLinting
npm run lint
npm run lint:fixBuilding
npm run buildConfiguration 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:
Customer-Centric: Focus on user value in every contribution
Optimistic: Approach challenges as opportunities
Dedicated: Own your contributions fully
Efficient: Leverage existing solutions and automate where possible
Excellent: Maintain high standards and continuous improvement
License
MIT License
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.