A Model Context Protocol (MCP) server that provides access to the Featurebase API for managing posts and comments.
-
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
Once published to Smithery, users can install the server easily:
npx featurebase-mcpOr install globally:
npm install -g featurebase-mcpgit clone https://github.com/marcinwyszynski/featurebase-mcp.git
cd featurebase-mcp
npm install
npm run buildAdd this server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"featurebase": {
"command": "npx",
"args": ["featurebase-mcp"],
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}{
"mcpServers": {
"featurebase": {
"command": "featurebase-mcp",
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}{
"mcpServers": {
"featurebase": {
"command": "node",
"args": ["/path/to/featurebase-mcp/build/index.js"],
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}- Log in to your Featurebase account
- Navigate to your account settings
- Generate an API key
- Keep it secure - never commit it to version control
The server requires these environment variables:
FEATUREBASE_API_KEY: Your FeatureBase API key
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
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 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 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
Permanently delete a post.
Parameters:
id(required): Post ID to delete
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 an upvoter to a post.
Parameters:
id(required): Post IDemail(required): Upvoter's emailname(required): Upvoter's name
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.
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.
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 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 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 a comment (soft delete if it has replies).
Parameters:
id(required): Comment ID to delete
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev- 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
This server is available on:
For publishing instructions, see PUBLISHING.md.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT