Featurebase MCP Server
# Featurebase MCP Server
[](https://smithery.ai/server/@marcinwyszynski/featurebase-mcp)
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:
```bash
npx featurebase-mcp
```
Or install globally:
```bash
npm install -g featurebase-mcp
```
### From Source
```bash
git clone https://github.com/marcinwyszynski/featurebase-mcp.git
cd featurebase-mcp
npm install
npm run build
```
## 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)
```json
{
"mcpServers": {
"featurebase": {
"command": "npx",
"args": ["featurebase-mcp"],
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}
```
#### Using Global Installation
```json
{
"mcpServers": {
"featurebase": {
"command": "featurebase-mcp",
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}
```
#### Using Local Installation
```json
{
"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"
}
}
}
}
```
### Getting Your API Key
1. Log in to your Featurebase account
2. Navigate to your account settings
3. Generate an API key
4. 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 using `resolve_post_slug` tool.
- `FEATUREBASE_BASE_URL`: Custom API base URL (defaults to "https://do.featurebase.app/v2")
You can set them:
1. In your Claude Desktop configuration (recommended)
2. Export in your shell: `export FEATUREBASE_API_KEY="your-api-key-here"`
3. 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 ID
- `q`: Search posts by title or content
- `category`: 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 date
- `endDate`: Posts created before this date
- `limit`: Results per page
- `page`: Page number
#### `create_post`
Create a new post.
Parameters:
- `title` (required): Post title (min 2 characters)
- `category` (required): Board/category name
- `content`: Post content
- `email`: Submitter's email
- `authorName`: Name for new users
- `tags`: Array of tag names
- `commentsAllowed`: Enable/disable comments
- `status`: Post status
- `date`: Creation date
- `customInputValues`: Custom field values
#### `update_post`
Update an existing post.
Parameters:
- `id` (required): Post ID to update
- `title`: New title
- `content`: New content
- `status`: New status
- `commentsAllowed`: Enable/disable comments
- `category`: New category
- `sendStatusUpdateEmail`: Email upvoters about status change
- `tags`: New tags
- `inReview`: Put post in review
- `date`: Creation date
- `customInputValues`: 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 ID
- `page`: Page number (default: 1)
- `limit`: Results per page (default: 10, max: 100)
#### `add_upvoter`
Add an upvoter to a post.
Parameters:
- `id` (required): Post ID
- `email` (required): Upvoter's email
- `name` (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 submissions
- `locale`: 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 review
- `commentThreadId`: Get all comments in a thread
- `limit`: 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 content
- `submissionId`: Post ID or slug (required if no changelogId)
- `changelogId`: Changelog ID or slug (required if no submissionId)
- `parentCommentId`: Parent comment ID for replies
- `isPrivate`: Make comment private (admins only)
- `sendNotification`: Notify voters (default: true)
- `createdAt`: Set creation date
- `author`: Post as specific user (object with name, email, profilePicture)
#### `update_comment`
Update an existing comment.
Parameters:
- `id` (required): Comment ID
- `content`: New content
- `isPrivate`: Make private (admins only)
- `pinned`: Pin comment to top
- `inReview`: Put comment in review
- `createdAt`: Update creation date
#### `delete_comment`
Delete a comment (soft delete if it has replies).
Parameters:
- `id` (required): Comment ID to delete
## Development
```bash
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
```
## 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_KEY` environment variable
## Publishing
This server is available on:
- [Smithery](https://smithery.ai/server/featurebase) - MCP server registry
- [npm](https://www.npmjs.com/package/featurebase-mcp) - Node package manager
For publishing instructions, see [PUBLISHING.md](./PUBLISHING.md).
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose targeting specific resources and actions, such as create_post vs. update_post, or get_comments vs. delete_comment, with no overlapping functionality that could cause confusion.
All tools follow a consistent verb_noun pattern (e.g., create_post, delete_comment, get_similar_submissions), using snake_case throughout without any deviations or mixed conventions.
With 12 tools, the server is well-scoped for a Featurebase domain, covering core CRUD operations for posts and comments, along with utility functions like upvoting and similarity search, without being overly sparse or bloated.
The tool set provides complete lifecycle coverage for posts and comments, including creation, retrieval, updating, deletion, and auxiliary actions like upvoting and similarity search, with no obvious gaps for the domain.