@bellwetherlabs/featurebase-mcp
v1.3.0
Published
MCP server for Featurebase API - manage posts, comments, and help center
Downloads
181
Maintainers
Readme
Featurebase MCP Server
A Model Context Protocol (MCP) server that provides access to the Featurebase API for managing posts, comments, and help center content. Published by Bellwether Labs.
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
Help Center
- List, create, get, update, delete collections
- List, create, get, update, delete articles (supports HTML with images via URLs or base64)
- Requires API key with
manage_help_centerpermission
Changelogs
- List, create, get, update, delete changelogs
- Publish changelogs (with optional email notification or scheduled date)
- Supports HTML/markdown content with images
Installation
npx (Recommended – auto-downloads on first run)
No install needed. Cursor/MCP will fetch the package on first use:
npx -y @bellwetherlabs/featurebase-mcpnpm install
Add as a project dependency:
npm install @bellwetherlabs/featurebase-mcpOr install globally:
npm install -g @bellwetherlabs/featurebase-mcpFrom Source
git clone https://github.com/james-see/featurebase-mcp.git
cd featurebase-mcp
npm install
npm run buildConfiguration
Cursor IDE
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global). Restart Cursor after changes.
{
"mcpServers": {
"featurebase": {
"command": "npx",
"args": ["-y", "@bellwetherlabs/featurebase-mcp"],
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}The -y flag runs npx non-interactively and auto-downloads the package if not cached.
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"featurebase": {
"command": "npx",
"args": ["-y", "@bellwetherlabs/featurebase-mcp"],
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}Using global install
If installed globally (npm install -g @bellwetherlabs/featurebase-mcp):
{
"mcpServers": {
"featurebase": {
"command": "featurebase-mcp",
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}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 -y @bellwetherlabs/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
Help Center - Collections
list_collections
List help center collections with cursor-based pagination.
Parameters:
cursor: Cursor from previous response for paginationlimit: Items per page (1-100, default: 10)
create_collection
Create a new help center collection.
Parameters:
name(required): Collection namedescription: Collection descriptionparentId: Parent collection ID for nested collectionsicon: Object withtype("emoji" or "predefined") andvaluetranslations: Object keyed by locale (e.g.{ en: { name, description } })
get_collection
Get a collection by ID.
Parameters:
id(required): Collection ID
update_collection
Update an existing collection.
Parameters:
id(required): Collection IDname,description,parentId,icon,translations: Fields to update
delete_collection
Delete a collection.
Parameters:
id(required): Collection ID
Help Center - Articles
list_articles
List help center articles with optional filtering.
Parameters:
cursor: Cursor for paginationlimit: Items per page (1-100, default: 10)parentId: Filter by parent collection IDstate: Filter by "live", "draft", or "all" (default: live)
create_article
Create a new help center article. Body supports HTML with external image URLs or base64 data URIs.
Parameters:
title(required): Article titlebody: HTML content (images via URLs or base64)description: Brief descriptionparentId: Parent collection IDstate: "live" (publish) or "draft" (default)icon: Object withtypeandvalueformatter: "default" or "ai" (AI converts markdown/html)translations: Object keyed by locale
get_article
Get an article by ID.
Parameters:
id(required): Article IDstate: "live" or "draft" (default: live)
update_article
Update an existing article.
Parameters:
id(required): Article IDtitle,body,description,parentId,state,authorId,icon,formatter,translations: Fields to update
delete_article
Delete an article.
Parameters:
id(required): Article ID
Changelogs
list_changelogs
List changelogs with optional filtering.
Parameters:
cursor,limit: Paginationid,q: Find by ID/slug or searchcategories: Filter by category names (array)locale,state(draft/live/all)startDate,endDate: Date rangesortBy,sortOrder: Sort (e.g. date desc)
create_changelog
Create a changelog. Provide htmlContent or markdownContent (or both).
Parameters:
title(required): Changelog titlehtmlContent,markdownContent: Content (at least one)categories: e.g. ["New", "Fixed", "Improved"]featuredImage: Featured image URLallowedSegmentIds: Segment IDs for accesslocale,date,state(draft/live)
get_changelog
Get a changelog by ID or slug.
Parameters:
id(required): Changelog ID or slug
update_changelog
Update an existing changelog.
Parameters:
id(required): Changelog IDtitle,htmlContent,markdownContent,categories,featuredImage,allowedSegmentIds,date
delete_changelog
Delete a changelog.
Parameters:
id(required): Changelog ID
publish_changelog
Publish a changelog.
Parameters:
id(required): Changelog IDsendEmail: Notify subscribers (default: false)locales: Locales to publish (empty = all)scheduledDate: ISO date for scheduled publish
Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run devSecurity
- 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
To publish to npm under the Bellwether Labs org:
Log in to npm (if not already):
npm loginUse credentials for an account that has publish access to
@bellwetherlabs.Build and publish:
npm run build npm publish --access publicScoped packages (
@org/name) are private by default;--access publicmakes it installable by anyone.Verify:
npm view @bellwetherlabs/featurebase-mcp
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
