Featurebase MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Featurebase MCP Serverlist posts about mobile app bugs from last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Canny MCP Server
Installation
From Smithery (Recommended)
Once published to Smithery, users can install the server easily:
npx featurebase-mcpOr install globally:
npm install -g featurebase-mcpFrom Source
git clone https://github.com/marcinwyszynski/featurebase-mcp.git
cd featurebase-mcp
npm install
npm run buildUsage
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)
{
"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
{
"mcpServers": {
"featurebase": {
"command": "featurebase-mcp",
"env": {
"FEATUREBASE_API_KEY": "your-api-key-here",
"FEATUREBASE_ORG_URL": "https://your-org.featurebase.app"
}
}
}
}Using Local Installation
{
"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
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
# 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
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
Available Tools
12 toolsadd_upvoterC
Add an upvoter to a post
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID | |
| Yes | Upvoter email | ||
| name | Yes | Upvoter name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Add' implies a write/mutation operation, it doesn't specify whether this requires authentication, what happens if the upvoter already exists, if there are rate limits, or what the response looks like. This leaves significant behavioral gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for the tool's complexity and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after adding an upvoter, what the return value might be, or address potential error conditions. Given the complexity of a write operation, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all three required parameters (id, email, name). The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and target resource ('an upvoter to a post'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_post_upvoters' or explain what distinguishes adding an upvoter from other post-related operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_post_upvoters' or 'update_post'. There's no mention of prerequisites, appropriate contexts, or exclusions, leaving the agent with insufficient usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_commentC
Create a new comment or reply
| Name | Required | Description | Default |
|---|---|---|---|
| submissionId | No | Post ID or slug (required if no changelogId) | |
| changelogId | No | Changelog ID or slug (required if no submissionId) | |
| content | Yes | Comment content | |
| parentCommentId | No | Parent comment ID for replies | |
| isPrivate | No | Make comment private (admins only) | |
| sendNotification | No | Notify voters (default: true) | |
| createdAt | No | Set creation date | |
| author | No | Post as specific user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates comments or replies, implying a write operation, but fails to mention permissions required (e.g., admin rights for private comments), rate limits, or what happens on success/failure. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Create a new comment or reply'—front-loading the core purpose without unnecessary details. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It lacks context on permissions, behavioral traits, error handling, and output expectations, leaving the agent under-informed despite the detailed schema. More completeness is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no additional meaning beyond implying 'comment or reply' relates to 'parentCommentId', but this is already clear in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('comment or reply'), distinguishing it from sibling tools like 'update_comment' or 'delete_comment'. However, it doesn't specify the context (e.g., on submissions or changelogs) or differentiate from 'create_post', making it slightly less specific than ideal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'create_post' or 'update_comment', nor does it mention prerequisites such as needing a submissionId or changelogId. The description lacks explicit usage context or exclusions, leaving the agent to infer from parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_postC
Create a new post
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Post title (min 2 characters) | |
| category | Yes | The board (category) for the post | |
| content | No | Post content (can be empty) | |
| No | Email of the user submitting | ||
| authorName | No | Name for new user if email not found | |
| tags | No | Array of tag names | |
| commentsAllowed | No | Allow comments on post | |
| status | No | Post status | |
| date | No | Post creation date | |
| customInputValues | No | Custom field values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create a new post' implies a write operation, but it doesn't disclose permissions needed, whether it's idempotent, rate limits, or what happens on failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with 'Create a new post'—a single, front-loaded sentence that wastes no words. It's appropriately sized for its purpose, though this conciseness comes at the cost of detail in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, mutation tool, no output schema, and no annotations), the description is incomplete. It doesn't explain return values, error handling, or behavioral traits, relying solely on the schema for parameters. For a creation tool with significant input requirements, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents all 10 parameters thoroughly. The description adds no additional meaning beyond what's in the schema (e.g., no context on how parameters interact or default behaviors). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new post' clearly states the action (create) and resource (post), which is adequate. However, it doesn't differentiate this from sibling tools like 'update_post' or specify what type of post (e.g., forum post, blog post), leaving it somewhat vague. It's not tautological but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are sibling tools like 'update_post' and 'list_posts', but the description doesn't mention prerequisites, context (e.g., for new content creation), or exclusions, offering only a basic statement without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentA
Delete a comment (soft delete if has replies)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively reveals a key trait: the deletion may be 'soft' (not permanent) when the comment has replies, which is crucial for understanding side effects. However, it doesn't cover other aspects like permissions needed, error conditions, or what 'soft delete' entails operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Delete a comment') and immediately adds the critical behavioral detail ('soft delete if has replies'). There is zero waste, and every word earns its place by providing essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with conditional behavior), no annotations, and no output schema, the description is minimally adequate. It covers the core action and a key behavioral trait, but lacks details on permissions, error handling, or return values, leaving gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'id' parameter clearly documented. The description adds no additional meaning about the parameter beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete a comment') and distinguishes it from siblings like 'update_comment' or 'delete_post' by specifying the resource type. It goes beyond a simple verb by adding the conditional behavior ('soft delete if has replies'), which further clarifies its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting comments, but provides no explicit guidance on when to use this tool versus alternatives like 'update_comment' or other deletion tools. It mentions a condition ('if has replies') that affects behavior, but doesn't state when to choose this over other options or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postC
Delete a post permanently
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'permanently' which hints at irreversibility, but doesn't address permissions needed, error conditions, side effects, or what happens to associated data (e.g., comments). For a destructive operation, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'permanently' entails operationally, what the response looks like, or error handling. Given the complexity of deletion operations, more context is needed for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'id' parameter clearly documented. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and target resource ('a post'), with the adverb 'permanently' adding specificity about the nature of the deletion. However, it doesn't explicitly differentiate from sibling tools like 'delete_comment' or 'update_post' beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'update_post' or 'delete_comment', nor any prerequisites or contextual constraints. The description only states what the tool does, not when it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsC
Get comments for a post or changelog. Available fields: upvoted, downvoted, inReview, isSpam, pinned, emailSent, sendNotification, organization, submission, author, authorId, authorPicture, isPrivate, isDeleted, confidenceScore, content, upvotes, downvotes, score, parentComment, path, createdAt, updatedAt, id, replies(upvoted, downvoted, inReview, isSpam, pinned, emailSent, sendNotification, organization, submission, author, authorId, authorPicture, isPrivate, isDeleted, confidenceScore, content, upvotes, downvotes, score, parentComment, path, createdAt, updatedAt, id)
| Name | Required | Description | Default |
|---|---|---|---|
| submissionId | No | Post ID or slug (required if no changelogId) | |
| changelogId | No | Changelog ID or slug (required if no submissionId) | |
| privacy | No | Filter by privacy setting | |
| inReview | No | Filter for comments in review | |
| commentThreadId | No | Get all comments in a thread | |
| limit | No | Results per page (default: 10) | |
| page | No | Page number (default: 1) | |
| sortBy | No | Sort order (default: best) | |
| select | No | Fields to return. Examples: "id,content,author(name)" | "content,upvotes,createdAt" | "author(name,email),replies(content)". Leave empty for all fields. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lists available fields but doesn't explain key behaviors: whether this is a read-only operation, if it requires authentication, how pagination works (implied by limit/page but not described), error handling, or rate limits. The field list adds some context but misses critical operational details for a tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose but becomes overly verbose by listing all available fields twice (including nested replies). This repetition (e.g., field names duplicated for replies) adds unnecessary length without enhancing clarity. A more concise approach would summarize field categories or refer to documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no output schema, no annotations), the description is incomplete. It lacks information on return format, error cases, authentication needs, and behavioral constraints. While it covers fields and basic purpose, it doesn't provide enough context for safe and effective use by an AI agent, especially for a data retrieval tool with filtering options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds value by listing available return fields (e.g., upvoted, content, replies), which helps interpret the 'select' parameter, but doesn't provide additional semantic context beyond what the schema offers. This meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get comments for a post or changelog.' It specifies the resource (comments) and the target objects (post or changelog). However, it doesn't explicitly differentiate from sibling tools like 'get_post_upvoters' or 'list_posts,' which reduces the score from a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a post or changelog ID), compare to siblings like 'list_posts' for post retrieval, or specify use cases (e.g., filtering vs. fetching all comments). This lack of contextual direction leaves the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_post_upvotersB
Get list of users who upvoted a post
| Name | Required | Description | Default |
|---|---|---|---|
| submissionId | Yes | Post ID | |
| page | No | Page number (default: 1) | |
| limit | No | Results per page (default: 10, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get list') but doesn't disclose pagination behavior (implied by 'page' and 'limit' parameters), rate limits, authentication needs, or error conditions. For a tool with 3 parameters and no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—every word contributes to understanding the tool's purpose. It's front-loaded and appropriately sized for a straightforward retrieval tool, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the core purpose but lacks context on usage, behavioral traits, or output format. Without annotations or output schema, the agent must rely on the schema and inference, leaving room for error in invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters (submissionId, page, limit). The description adds no additional meaning beyond implying the tool operates on a post (via 'post' in the text), which aligns with the schema's 'Post ID'. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get list') and resource ('users who upvoted a post'), making the tool's purpose immediately understandable. It distinguishes from siblings like 'get_comments' or 'list_posts' by focusing specifically on upvoters. However, it doesn't explicitly contrast with 'add_upvoter' (which adds rather than retrieves upvoters), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid post ID), exclusions, or comparisons to siblings like 'get_comments' for post-related data. The agent must infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_similar_submissionsC
Find posts similar to the given query text
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query text to find similar submissions | |
| locale | No | Locale for search (default: 'en') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool finds similar posts but doesn't explain how similarity is determined (e.g., semantic matching, keywords), what the output format is (e.g., list of posts with scores), or any limitations like rate limits or authentication needs. This is a significant gap for a search tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like how similarity is computed, output format, or usage context relative to siblings. For a search tool with no structured data beyond the input schema, more detail is needed to guide effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'locale') adequately. The description adds no additional meaning beyond what the schema provides, such as examples of query formats or locale usage. This meets the baseline for high schema coverage but doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Find') and resource ('posts similar to the given query text'), making the purpose understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'list_posts' or 'resolve_post_slug', which might also involve post retrieval. A perfect score would require clarifying how 'similar' differs from general listing or resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing an existing post or query context, or differentiate from siblings like 'list_posts' for general listing or 'resolve_post_slug' for specific post lookup. This leaves the agent with minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsC
List posts with optional filtering. Available fields: id, title, content, author, authorId, authorPicture, commentsAllowed, organization, upvotes, upvoted, postCategory(category,private,prefill,roles,hiddenFromRoles,id), postTags(name,color,private,id), postStatus(name,color,type,isDefault,id), date, lastModified, comments, isSubscribed, inReview, lastDraggedTimestamps
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Find submission by its id | |
| q | No | Search for posts by title or content | |
| category | No | Filter posts by category (board) names | |
| status | No | Filter posts by status ids | |
| sortBy | No | Sort posts (e.g., "date:desc" or "upvotes:desc") | |
| startDate | No | Get posts created after this date | |
| endDate | No | Get posts created before this date | |
| limit | No | Number of results per page | |
| page | No | Page number | |
| select | No | Fields to return. Examples: "id,title,upvotes" | "title,author(name)" | "postCategory(category),postStatus(name)". Leave empty for all fields. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'List posts' implies a read operation, there's no information about pagination behavior (beyond the limit/page parameters), rate limits, authentication requirements, or what happens when no filters are applied. The description merely lists available fields without explaining behavioral characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a long field list. While the initial sentence is concise, the exhaustive field enumeration feels like data dumping rather than helpful guidance. The structure could be improved by grouping related fields or explaining field relationships rather than just listing them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no annotations and no output schema, the description is insufficient. It doesn't explain the return format, pagination behavior, error conditions, or typical response structure. The field list hints at what might be returned, but without an output schema, the description should provide more complete context about the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all 10 parameters thoroughly. The description adds marginal value by listing available return fields, but doesn't provide additional semantic context beyond what's in the parameter descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List posts with optional filtering' which clearly indicates the verb (list) and resource (posts). However, it doesn't distinguish this from sibling tools like 'get_similar_submissions' or 'get_post_upvoters' - it's a generic listing function without specifying what makes it unique among the available post-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of when to choose list_posts over get_similar_submissions or get_post_upvoters, nor any context about prerequisites or typical use cases. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_post_slugC
Convert a post slug to post ID and get post details
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Post slug from URL (e.g., 'spacectl-stack-local-preview-target') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool converts a slug to an ID and gets details, implying a read operation, but doesn't cover critical aspects like error handling (e.g., invalid slugs), authentication needs, rate limits, or the format of returned details. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single, clear sentence that directly states the tool's function. Every word earns its place, with no redundant or vague language, making it efficient for quick understanding by an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a lookup tool with no output schema) and lack of annotations, the description is incomplete. It doesn't explain what 'post details' include, how errors are handled, or any behavioral traits, leaving the agent with insufficient information for reliable invocation. This is inadequate for a tool that retrieves data without structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the input schema fully documenting the 'slug' parameter, including an example. The description adds minimal value beyond this, as it only mentions 'post slug' without providing additional context like format constraints or usage tips. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: converting a post slug to a post ID and retrieving post details. It specifies the verb ('convert' and 'get') and resource ('post slug' to 'post ID and post details'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_post_upvoters' or 'list_posts', which might also retrieve post information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid slug), exclusions, or compare it to siblings like 'list_posts' or 'get_post_upvoters'. This leaves the agent without context for tool selection, relying solely on the description's implied use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_commentC
Update an existing comment
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID | |
| content | No | New content | |
| isPrivate | No | Make private (admins only) | |
| pinned | No | Pin comment to top | |
| inReview | No | Put comment in review | |
| createdAt | No | Update creation date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Update an existing comment', implying a mutation operation, but doesn't cover critical aspects like required permissions, whether updates are reversible, rate limits, or what happens to unspecified fields. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's purpose, earning its place without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 6 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or behavioral nuances, leaving significant gaps for an AI agent to understand how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters (e.g., 'id' as Comment ID, 'content' as New content). The description adds no parameter-specific information beyond what's in the schema, meeting the baseline of 3 where schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing comment' clearly states the action (update) and target resource (comment), but it's vague about scope and doesn't differentiate from sibling tools like 'update_post' or 'create_comment'. It lacks specificity about what aspects can be updated or the context of the comment system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing comment ID), exclusions, or comparisons to siblings like 'create_comment' for new comments or 'delete_comment' for removal. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_postC
Update an existing post
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to update | |
| title | No | New title | |
| content | No | New content | |
| status | No | New status | |
| commentsAllowed | No | Allow comments | |
| category | No | New category | |
| sendStatusUpdateEmail | No | Send status update email to upvoters | |
| tags | No | New tags | |
| inReview | No | Put post in review | |
| date | No | Post creation date | |
| customInputValues | No | Custom field values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update an existing post' implies a mutation operation but doesn't specify permissions required, whether changes are reversible, rate limits, error conditions, or what happens to fields not mentioned in the update. For a mutation tool with 11 parameters and no annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a basic tool description and front-loads the core purpose immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 11 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the update behavior (partial vs. full updates), response format, error handling, or how it differs from sibling tools. The agent lacks critical context to use this tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds no additional meaning about parameters beyond what's in the schema (e.g., no explanation of how partial updates work, default behaviors, or relationships between fields). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing post' clearly states the verb ('Update') and resource ('post'), but it's vague about scope and doesn't distinguish from sibling tools like 'update_comment' or 'create_post'. It doesn't specify what aspects of a post can be updated or the tool's specific role in the post management ecosystem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_post', 'delete_post', or 'update_comment'. There's no mention of prerequisites (e.g., needing an existing post ID), appropriate contexts, or exclusions. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect to a Sleekplan workspace for customer feedback, roadmap, changelog, and surveys. Feedback: search and filter posts, read threads with votes and voters, create and update, merge duplicates, check for similar requests, pull stats. Triage: apply tags and statuses, assign owners, reply in comments. Surveys: read NPS, CSAT, and multi-question responses and summaries. Changelog: draft and publish release notes for what you ship. Users: manage end users and segments! Find out more at https://sleekplan.com/mcp/
Manage feature requests, votes, roadmaps, and changelogs from any MCP client.
Manage customer feedback, roadmap, changelog, and surveys in your Sleekplan workspace.
Capture feature requests and bug reports from chat into a searchable, AI-categorized backlog.
Related MCP Servers
- AlicenseBqualityFmaintenanceIntegrates Productboard API into agentic workflows, allowing interaction with companies, components, features, notes, and products from the Productboard platform.113213MIT
- FlicenseAqualityNot gradedmaintenanceEnables interaction with Canny.io customer feedback platform through natural language. Supports board management, post creation/updating, search functionality, and comprehensive feedback management operations.63-
- AlicenseAqualityDmaintenanceEnables AI assistants to manage website feedback from Feedbucket, including listing, filtering, commenting on, and resolving feedback items through natural language interactions.616MIT
- AlicenseAqualityDmaintenanceEnables interaction with Fider customer feedback platforms, supporting post management, commenting, tagging, and status updates through natural language commands.161MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcinwyszynski/featurebase-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server