MCP server for the FeatureOS API. Runs locally via stdio for use with Claude Desktop.
| Tool | Description |
|---|---|
list_posts |
List posts with filters (approval status, board, date range, sort) |
get_post |
Get a single post by ID |
create_post |
Create a new post |
update_post |
Update title, description, board, status, approval, etc. |
delete_post |
Permanently delete a post |
| Tool | Description |
|---|---|
list_pending_posts |
List all posts pending moderation |
approve_post |
Approve a pending post |
reject_post |
Reject a post (keeps as pending — use delete_post for hard removal) |
| Tool | Description |
|---|---|
list_comments |
List comments, optionally filtered to a post |
get_comment |
Get a single comment by ID |
create_comment |
Add a comment to a post (supports internal flag) |
update_comment |
Update comment text or pinned status |
delete_comment |
Permanently delete a comment |
| Tool | Description |
|---|---|
list_merged_posts |
List all child posts merged into a parent post |
merge_posts |
Merge one or more posts into a parent (max 30). Consolidates votes, comments, and subscribers. |
unmerge_post |
Unmerge a child post, restoring it as independent |
cd featureos-mcp
npm installDashboard → Settings → API Keys. Keys start with hn_.
The merge posts tools (merge_posts, unmerge_post, list_merged_posts) require a JWT token for user-level authentication in addition to the API key. Only organization members (admins or team members) can merge and unmerge posts.
Generate a JWT token through your FeatureOS portal's Single Sign-On settings.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"featureos": {
"command": "node",
"args": ["/absolute/path/to/featureos-mcp/src/index.js"],
"env": {
"FEATUREOS_API_KEY": "hn_your_key_here",
"FEATUREOS_JWT_TOKEN": "your_jwt_token_here"
}
}
}
}Replace /absolute/path/to/featureos-mcp with the actual path on your machine.
Note:
FEATUREOS_JWT_TOKENis optional — it is only needed if you want to use the merge posts tools. All other tools work with just the API key.
The featureos tools will appear in the tools menu.
- "List all posts pending moderation"
- "Approve post 1234"
- "Show me the last 20 feedback posts sorted by newest"
- "List all comments on post 5678"
- "Add an internal comment to post 9012 saying we're investigating this"
- "Delete comment 3456"
- "List all posts merged into post 1234"
- "Merge posts 5678 and 9012 into post 1234"
- "Unmerge post 5678"
- FeatureOS has no explicit
rejectedstatus on posts —reject_postkeeps the post aspending. Usedelete_postif you want it gone entirely. create_commentsupports aninternalflag for team-only notes not visible to the post submitter.- The
ALLOW-PRIVATEheader is sent on all requests so private board posts are always accessible. - Merge tools require a
FEATUREOS_JWT_TOKENenvironment variable. The JWT provides user-level authentication — only organization members (admins/team members) can merge and unmerge posts. Generate one via your portal's SSO settings.