Featurebase MCP Server
A Model Context Protocol (MCP) server that provides access to the Featurebase API for managing posts and comments.
Features
Posts Management
List posts with filtering options
Create new posts
Update existing posts
Delete posts
Get post upvoters
Add upvoters to posts
Comments Management
Get comments for posts/changelogs
Create new comments or replies
Update comments
Delete comments
Installation
From Smithery (Recommended)
Once published to Smithery, users can install the server easily:
Or install globally:
From Source
Usage
Claude Desktop Configuration
Add this server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Using npx (Recommended)
Using Global Installation
Using Local Installation
Getting Your API Key
Log in to your Featurebase account
Navigate to your account settings
Generate an API key
Keep it secure - never commit it to version control
Environment Variables
The server requires these environment variables:
Required
FEATUREBASE_API_KEY: Your FeatureBase API key
Optional
FEATUREBASE_ORG_URL: Your organization's FeatureBase URL (e.g., "https://feedback.spacelift.io"). Required only if usingresolve_post_slugtool.FEATUREBASE_BASE_URL: Custom API base URL (defaults to "https://do.featurebase.app/v2")
You can set them:
In your Claude Desktop configuration (recommended)
Export in your shell:
export FEATUREBASE_API_KEY="your-api-key-here"When running the server:
FEATUREBASE_API_KEY="your-api-key-here" npx featurebase-mcp
Available Tools
Posts
list_posts
List posts with optional filtering.
Parameters:
id: Find specific post by IDq: Search posts by title or contentcategory: Filter by board names (array)status: Filter by status IDs (array)sortBy: Sort order (e.g., "date:desc", "upvotes:desc")startDate: Posts created after this dateendDate: Posts created before this datelimit: Results per pagepage: Page number
create_post
Create a new post.
Parameters:
title(required): Post title (min 2 characters)category(required): Board/category namecontent: Post contentemail: Submitter's emailauthorName: Name for new userstags: Array of tag namescommentsAllowed: Enable/disable commentsstatus: Post statusdate: Creation datecustomInputValues: Custom field values
update_post
Update an existing post.
Parameters:
id(required): Post ID to updatetitle: New titlecontent: New contentstatus: New statuscommentsAllowed: Enable/disable commentscategory: New categorysendStatusUpdateEmail: Email upvoters about status changetags: New tagsinReview: Put post in reviewdate: Creation datecustomInputValues: Custom field values
delete_post
Permanently delete a post.
Parameters:
id(required): Post ID to delete
get_post_upvoters
Get list of users who upvoted a post.
Parameters:
submissionId(required): Post IDpage: Page number (default: 1)limit: Results per page (default: 10, max: 100)
add_upvoter
Add an upvoter to a post.
Parameters:
id(required): Post IDemail(required): Upvoter's emailname(required): Upvoter's name
resolve_post_slug
Convert a post slug to post ID and get complete post details.
Parameters:
slug(required): Post slug from URL (e.g., "spacectl-stack-local-preview-target")
Returns the complete post data including ID, title, content, and metadata.
get_similar_submissions
Find posts similar to the given query text.
Parameters:
query(required): Search query text to find similar submissionslocale: Locale for search (default: "en")
Returns a list of similar posts based on content similarity.
Comments
get_comments
Get comments for a post or changelog.
Parameters:
submissionId: Post ID or slug (required if no changelogId)changelogId: Changelog ID or slug (required if no submissionId)privacy: Filter by privacy ("public", "private", "all")inReview: Filter for comments in reviewcommentThreadId: Get all comments in a threadlimit: Results per page (default: 10)page: Page number (default: 1)sortBy: Sort order ("best", "top", "new", "old")
create_comment
Create a new comment or reply.
Parameters:
content(required): Comment contentsubmissionId: Post ID or slug (required if no changelogId)changelogId: Changelog ID or slug (required if no submissionId)parentCommentId: Parent comment ID for repliesisPrivate: Make comment private (admins only)sendNotification: Notify voters (default: true)createdAt: Set creation dateauthor: Post as specific user (object with name, email, profilePicture)
update_comment
Update an existing comment.
Parameters:
id(required): Comment IDcontent: New contentisPrivate: Make private (admins only)pinned: Pin comment to topinReview: Put comment in reviewcreatedAt: Update creation date
delete_comment
Delete a comment (soft delete if it has replies).
Parameters:
id(required): Comment ID to delete
Development
Security
Never hardcode your API key
Always use environment variables for API keys
Keep your API key secure and rotate it regularly
The server will not start without a valid
FEATUREBASE_API_KEYenvironment variable
Publishing
This server is available on:
For publishing instructions, see PUBLISHING.md.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT