Fider 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., "@Fider MCP Serverlist the 10 most recent posts about the mobile app"
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.
MCP Server for Fider
A Model Context Protocol (MCP) server that provides tools to interact with Fider - an open-source customer feedback tool.
Features
This MCP server provides the following tools:
Posts:
list_posts - List posts with filtering options (search, view, limit, tags)
get_post - Retrieve a specific post by number
create_post - Create new posts (requires authentication)
edit_post - Edit existing posts (requires collaborator/admin role)
delete_post - Delete posts (requires admin role)
respond_to_post - Change post status (open, planned, started, completed, declined, duplicate)
Comments:
list_comments - List comments for a specific post
add_comment - Add a comment to a post (requires authentication)
update_comment - Update a comment (requires authentication and ownership)
delete_comment - Delete a comment (requires authentication and ownership/admin)
Tags:
list_tags - List all available tags
create_tag - Create a new tag (requires admin role)
update_tag - Update an existing tag (requires admin role)
delete_tag - Delete a tag (requires admin role)
assign_tag - Assign a tag to a post (requires collaborator/admin role)
unassign_tag - Unassign a tag from a post (requires collaborator/admin role)
Related MCP server: Featurebase MCP Server
Installation
Using uvx (recommended - no installation needed!)
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run directly from PyPI (once published)
uvx --from mcp-fider==2025.06.27.170000 --refresh-package mcp-fider mcp-fider
# Or run from GitHub directly
uvx --from git+https://github.com/ringostat/fider-mcp.git mcp-fiderUsing pip (if you prefer traditional method)
# Clone the repository
git clone https://github.com/ringostat/fider-mcp.git
cd fider-mcp
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package
pip install -e .Configuration
The server requires the following environment variables:
FIDER_BASE_URLorFIDER_URL- Your Fider instance URL (e.g.,https://feedback.example.com)FIDER_API_KEY- Optional API key for authentication (required for creating, editing, and deleting posts)
Getting a Fider API Key
Log in to your Fider instance as an administrator
Go to Settings → API
Generate a new API key
Copy the key and set it as the
FIDER_API_KEYenvironment variable
Usage
With Claude Desktop
Add the server to your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonAdd the following configuration:
{
"mcpServers": {
"fider": {
"command": "uvx",
"args": ["--from", "mcp-fider==2025.06.27.170000",
"--refresh-package", "mcp-fider", "mcp-fider"],
"env": {
"FIDER_BASE_URL": "https://your-fider-instance.com",
"FIDER_API_KEY": "your-api-key-here"
}
}
}
}Restart Claude Desktop
Running Directly
You can also run the server directly for testing:
# Set environment variables
export FIDER_BASE_URL="https://your-fider-instance.com"
export FIDER_API_KEY="your-api-key-here"
# Run from PyPI (once published)
uvx --from mcp-fider==2025.06.27.170000 --refresh-package mcp-fider mcp-fider
# Or run from GitHub directly
uvx --from git+https://github.com/ringostat/fider-mcp.git mcp-fiderDevelopment
Running Tests
uv run pytestCode Formatting
uv run black .
uv run ruff check .Publishing to PyPI
# Build the package
uv build
# Publish to PyPI
uv publishTool Descriptions
list_posts
List posts from Fider with optional filtering.
Parameters:
query(string) - Search keywordsview(string) - Filter and order options: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trendinglimit(integer) - Number of entries to return (1-100, default: 30)tags(string) - Comma-separated list of tags to filter by
get_post
Get a specific post by its number.
Parameters:
number(integer, required) - The post number to retrieve
create_post
Create a new post (requires authentication).
Parameters:
title(string, required) - The title of the postdescription(string) - The description of the post
edit_post
Edit an existing post (requires collaborator/admin role).
Parameters:
number(integer, required) - The post number to edittitle(string, required) - The new title of the postdescription(string) - The new description of the post
delete_post
Delete a post (requires admin role).
Parameters:
number(integer, required) - The post number to deletereason(string) - Reason for deletion
respond_to_post
Respond to a post by changing its status (requires collaborator/admin role).
Parameters:
number(integer, required) - The post number to respond tostatus(string, required) - The new status: open, planned, started, completed, declined, duplicatetext(string) - Optional description of the status changeoriginalNumber(integer) - Required when status is 'duplicate' - the post number to merge into
Comment Tools
list_comments
List comments for a specific post.
Parameters:
number(integer, required) - The post number to get comments for
add_comment
Add a comment to a post (requires authentication).
Parameters:
number(integer, required) - The post number to comment oncontent(string, required) - The comment content
update_comment
Update a comment (requires authentication and ownership).
Parameters:
post_number(integer, required) - The post numbercomment_id(integer, required) - The comment ID to updatecontent(string, required) - The new comment content
delete_comment
Delete a comment (requires authentication and ownership/admin).
Parameters:
post_number(integer, required) - The post numbercomment_id(integer, required) - The comment ID to delete
Tag Tools
list_tags
List all available tags.
Parameters: None
create_tag
Create a new tag (requires admin role).
Parameters:
name(string, required) - The tag namecolor(string, required) - The tag color (hex format, e.g., #FF0000)isPublic(boolean) - Whether the tag is public (default: true)
update_tag
Update an existing tag (requires admin role).
Parameters:
slug(string, required) - The tag slug to updatename(string, required) - The new tag namecolor(string, required) - The new tag color (hex format, e.g., #FF0000)isPublic(boolean) - Whether the tag is public
delete_tag
Delete a tag (requires admin role).
Parameters:
slug(string, required) - The tag slug to delete
assign_tag
Assign a tag to a post (requires collaborator/admin role).
Parameters:
post_number(integer, required) - The post numberslug(string, required) - The tag slug to assign
unassign_tag
Unassign a tag from a post (requires collaborator/admin role).
Parameters:
post_number(integer, required) - The post numberslug(string, required) - The tag slug to unassign
Troubleshooting
Connection Issues
Ensure your Fider instance is accessible from your network
Check that the
FIDER_BASE_URLis correct and doesn't have a trailing slashVerify your API key is valid if you're getting authentication errors
Permission Errors
Creating, editing, and deleting posts requires proper authentication
Ensure your API key has the necessary permissions for the operations you're trying to perform
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
16 toolsadd_commentB
Add a comment to a post (requires authentication)
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The post number to comment on | |
| content | Yes | The comment content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavioral traits. It mentions 'requires authentication' but does not describe return values, side effects, idempotency, or error conditions. This is a minimal disclosure that covers only one aspect of 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 sentence that is front-loaded with the action and object. It is concise with no unnecessary words, making it easy to parse and understand.
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 simple tool with full schema coverage, the description covers the core purpose and the authentication requirement. However, it lacks usage differentiation from the sibling 'respond_to_post' and does not clarify return behavior, which are important contextual gaps for an agent deciding to invoke this tool.
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 already describes both parameters (number and content) with complete coverage (100%), so the description adds no additional meaning beyond what the schema provides. The baseline of 3 is appropriate when the schema handles parameter documentation.
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 a comment') and the target ('to a post'), making it distinct from sibling tools like update_comment, delete_comment, and respond_to_post. It is specific and unambiguous.
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 instead of alternatives such as respond_to_post or other comment-related tools. It simply states what the tool does, leaving the selection decision to the agent without explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_tagA
Assign a tag to a post (requires collaborator/admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The tag slug to assign | |
| post_number | Yes | The post number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the role requirement (collaborator/admin), which is helpful for authorization. However, it does not mention side effects (e.g., whether re-assigning an existing tag overwrites or errors), return behavior, or whether the tag must already exist. This is a moderate gap 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, compact sentence that efficiently conveys the action and role requirement. No filler or redundant information.
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 simple mutation tool with full schema coverage and no output schema, the description is mostly complete. It states the action and role requirement, and the schema explains parameters. It could be slightly more complete by mentioning whether the tag already being assigned is an error or idempotent, but this is not a critical omission for a basic assign operation.
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 already provides clear descriptions for both parameters (slug and post_number) with 100% coverage. The description adds no additional parameter-specific semantics, so 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 action: 'Assign a tag to a post.' This is a specific verb+resource construction that distinguishes it from sibling tools like unassign_tag. The parenthetical role requirement adds useful context without ambiguity.
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 implicitly sets usage context by naming the action and the required role, but it does not explicitly contrast with alternatives (e.g., 'use unassign_tag to remove a tag'). The role requirement is a clear prerequisite, and sibling tool names provide enough context for a knowledgeable agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_postA
Create a new post (requires authentication)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The title of the post | |
| description | No | The description of the post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the authentication requirement, which is a useful prerequisite trait. However, it does not mention potential side effects, return values, or error behavior, which would be valuable 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, front-loaded sentence with no filler. Every word adds value, making it appropriately concise and structured for quick consumption.
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 simple create tool with fully documented parameters and no output schema, the description covers the essential purpose and the authentication requirement. It does not specify the return format, but that is conventionally the created object and is less critical for this operation.
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 covers both parameters with clear descriptions (title and description), giving 100% coverage. The tool description adds no additional parameter semantics, so the baseline of 3 applies.
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 uses a specific verb ('Create') and resource ('a new post'), clearly distinguishing it from siblings like edit_post, delete_post, respond_to_post, list_posts, and get_post. It unambiguously states the tool's primary function.
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 clear context by noting authentication is required, which is a prerequisite for use. It does not explicitly mention alternatives or when-not-to-use, but the sibling tool names make the distinction obvious given the 'Create' action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tagA
Create a new tag (requires admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The tag name | |
| color | Yes | The tag color (hex format, e.g., #FF0000) | |
| isPublic | No | Whether the tag is public (default: true) |
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 does disclose an authorization requirement ('requires admin role'), which is valuable. However, it doesn't mention what the tool returns upon success, how it handles duplicate names, or any other side effects, leaving notable 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 sentence with two concise pieces of information: the action and the permission requirement. It is front-loaded and free of unnecessary words, earning a top score.
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 tool with no annotations and no output schema, the description is too sparse. It doesn't explain the response format, error conditions, or how creating a tag fits with other tag operations. The admin role note adds some context, but an agent would need more to invoke the tool with confidence.
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 coverage is 100%, with each parameter already documented in the input schema (name, color, isPublic). The description adds no additional parameter semantics beyond what the schema provides, so the baseline 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 'Create a new tag' with a specific verb and resource, distinguishing it from sibling tools like update_tag and delete_tag. The admin role requirement adds useful context without obscuring the core 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 provides a prerequisite (admin role) but doesn't explicitly say when to use this tool versus alternatives like update_tag or delete_tag. The use case is implied by the verb 'create' and the resource, but no explicit alternatives or exclusions are given.
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 (requires authentication and ownership/admin)
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes | The comment ID to delete | |
| post_number | Yes | The post number |
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 discloses the auth/ownership requirement but does not state whether deletion is permanent, irreversible, or has side effects like cascading deletions. The one-sentence description offers only a single behavioral note, which is useful but incomplete.
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, direct sentence with no extraneous words. It is front-loaded with the verb and object, 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?
For a simple delete tool with two well-documented parameters and no output schema, the description is reasonably complete but lacks some contextual detail. It doesn't explain the relationship between post_number and comment_id, nor does it describe the outcome of the operation, which could help an agent set expectations.
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 already provides descriptions for both parameters with 100% coverage, so the description does not need to add parameter details. It doesn't add any additional context about the parameters beyond what the schema states, meeting the baseline for a well-documented schema.
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 'Delete a comment', which is a specific verb and resource. It distinguishes itself from sibling tools like delete_post, add_comment, and update_comment by clearly targeting the comment resource.
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 a clear prerequisite: 'requires authentication and ownership/admin', which tells the agent when the tool can be used. However, it does not mention alternative tools or situations where other tools like delete_post would be more appropriate, leaving the usage guidance implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postB
Delete a post (requires admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The post number to delete | |
| reason | No | Reason for deletion |
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. It discloses the admin role prerequisite but does not mention that deletion is permanent, irreversible, or may have cascading effects on related data. This is a significant gap for a destructive operation.
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, succinct sentence that front-loads the action and includes the key prerequisite. It is appropriately sized for its minimal content, though it could be under-specified for the destructiveness of the operation.
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, no output schema, and only two parameters, the description should disclose the behavioral consequences (e.g., permanence, side effects, response). It only notes the admin role, leaving the agent without critical safety context.
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 full 100% coverage with clear descriptions for both 'number' (the post number to delete) and 'reason' (reason for deletion). The description adds no additional parameter context, so the baseline of 3 applies.
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 a post') and the resource (post), distinguishing it from siblings like delete_comment and edit_post. The verb and noun are specific and unambiguous.
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 this tool is for deleting posts (as opposed to comments via delete_comment) and mentions the admin role requirement, but it does not explicitly state when to use this vs alternatives or provide exclusions. The context is clear but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tagA
Delete a tag (requires admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The tag slug to delete |
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. It discloses the admin role requirement, which is a useful behavioral constraint. However, it does not mention potential side effects (e.g., cascade deletion from posts) or whether deletion is permanent.
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 concise sentence, front-loaded with the action and constraint. No wasted words.
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 simplicity (one param, no output schema), the description and schema together provide sufficient information. It lacks explicit side-effect disclosure but is adequate for a straightforward delete operation.
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 already fully documents the single 'slug' parameter with a description. The tool description adds no additional parameter context beyond restating the action, so it relies on the schema.
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 uses a specific verb 'Delete' and a clear resource 'tag', which distinguishes it from sibling delete operations like delete_post and delete_comment. It also mentions a key requirement (admin role), though that is more of a constraint.
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 a tag but does not explicitly differentiate from related tag operations like unassign_tag or update_tag. The admin role requirement provides a precondition but not when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_postA
Edit an existing post (requires collaborator/admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The new title of the post | |
| number | Yes | The post number to edit | |
| description | No | The new description of the post |
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 the role requirement, which is a useful auth detail, but does not explain what happens on success/failure, whether it partially updates or overwrites fields, or any side effects. This is a significant gap for a mutating 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 sentence that is front-loaded with the action and includes the critical role requirement. It is appropriately sized with zero waste.
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 simple edit tool, the description is adequate but has gaps. It covers purpose and role, but does not clarify behavior for partial updates (e.g., if only title is provided, what happens to description) or return values. Given the schema covers parameter semantics, it is minimally viable but not comprehensive.
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 provides 100% coverage for all three parameters with clear descriptions. The tool description does not add additional meaning beyond the schema, so 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 action 'Edit' and the resource 'existing post', which distinguishes it from sibling tools like create_post, delete_post, and get_post. The additional role requirement ('requires collaborator/admin role') adds specificity without confusion.
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 role requirement provides clear context for when the tool can be used. While it doesn't explicitly name alternatives, the context of editing an existing post implies it is for modifications rather than creation or deletion, which is adequate for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postA
Get a specific post by its number
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The post number to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description is the only source of behavioral information. It only states the action without disclosing response format, error handling, or whether it is read-only. This is a significant gap for a read operation.
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, direct sentence with no filler, making it concise and easy to parse.
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?
The tool is simple with one parameter and no output schema. The description is sufficient to understand the tool's purpose, but it does not specify what the response contains or any error behavior, leaving some ambiguity for the agent.
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 fully documents the 'number' parameter with a description at 100% coverage. The tool description adds no additional meaning beyond restating that the post is identified by its number, so baseline 3 applies.
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', the resource 'post', and the specific scope 'by its number', which distinguishes it from sibling tools like list_posts and edit_post.
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 retrieving a single post when the number is known, but it does not explicitly state when to use it over list_posts or provide any exclusions. It relies on the name and context rather than explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsA
List comments for a specific post
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The post number to get comments for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states that the tool lists comments for a post, without mentioning read-only status, response format, pagination, error handling, or permissions. This adds little beyond the tool name and schema.
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, concise sentence—'List comments for a specific post'—with no redundant words. It is front-loaded with the action and resource, and every word contributes meaning.
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?
The tool is simple, with one fully documented parameter and no output schema. The description states the core purpose, but it does not explain the return value or any limitations, such as ordering or maximum results. It is minimally viable but leaves the agent without a complete picture of the tool's behavior.
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 already provides a complete description for the single parameter 'number' ('The post number to get comments for'), achieving 100% schema coverage. The description does not add any meaningful semantic detail beyond what the schema already states, so the baseline 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 'List comments for a specific post' clearly identifies the verb (List), the resource (comments), and the scope (specific post). It effectively distinguishes this tool from siblings like add_comment, delete_comment, and list_posts, which involve different actions or resources.
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 its usage—when you need comments for a particular post—but it does not explicitly state alternatives or exclusions. There is no mention of when to prefer this tool over related tools like get_post or respond_to_post, leaving the usage context somewhat implicit.
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 from Fider with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Comma-separated list of tags to filter by | |
| view | No | Filter and order. Options: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trending | |
| limit | No | Number of entries to return (default: 30) | |
| query | No | Search keywords |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions 'optional filtering' but does not disclose pagination, default limits, return format, or whether the operation is read-only, which is a notable gap for a listing 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, clear sentence with no filler. It is front-loaded with the verb and directly states the resource and optional filtering, though it could be slightly more informative without becoming verbose.
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?
The tool has no annotations and no output schema, yet the description does not explain return values, pagination, or other operational details. The schema documents parameters but the overall context for invocation and expectations is incomplete.
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 covers all four parameters with detailed descriptions (100% coverage), so the schema fully documents parameter semantics. The description itself adds no extra meaning for parameters, but the schema carries the load, yielding a baseline score of 3.
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 uses the verb 'List' and identifies the resource as 'posts from Fider', making the core purpose unambiguous. It is implicitly distinct from sibling tools like get_post (singular) and list_comments, but does not explicitly call out those distinctions.
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?
There is no guidance on when to use this tool versus alternatives such as get_post or list_comments. The description only states what the tool does without any contextual cues or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsA
List all available tags
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the word 'list' conveys a safe, read-only operation and 'all available' signals unbounded scope. It does not mention auth, rate limits, or response format, but none are critical for this simple listing action.
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, front-loaded sentence with no filler: 'List all available tags.' Every word is necessary and clear.
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 zero-parameter, no-annotation, no-output-schema tool, the description covers the essential purpose. It does not describe the response shape, but the simplicity of the tool makes it adequate for selection and 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?
The schema has zero parameters, so the description has no parameter details to add. The baseline of 4 applies because there is nothing about parameters that needs clarification.
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 uses a specific verb ('List') and resource ('all available tags'), clearly distinguishing it from sibling mutation tools like create_tag and delete_tag as well as other list tools like list_posts and list_comments.
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: call when you need all tags. However, it offers no explicit alternatives or exclusions, though the tool is so simple that obviousness may suffice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_postA
Respond to a post by changing its status (requires collaborator/admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Optional description of the status change | |
| number | Yes | The post number to respond to | |
| status | Yes | The new status of the post | |
| originalNumber | No | Required when status is 'duplicate' - the post number to merge into |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds a role requirement beyond the schema, which is helpful, but does not disclose side effects such as notifications, reversibility, or what happens when the 'duplicate' status is set.
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 concise sentence that states the core action and a key constraint (role requirement). No filler or redundancy.
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 four parameters and no output schema, the description provides enough to understand the core behavior. Combined with the schema, it covers the conditional 'duplicate' requirement, though it could add a bit more context about the workflow or consequences.
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 descriptions cover all four parameters, so the description does not need to compensate. It adds no additional parameter semantics beyond what the schema already documents.
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 identifies the action (responding by changing status) and resource (a post). 'Changing its status' distinguishes it from edit_post and add_comment, making the tool's purpose unambiguous.
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 mentions a required role (collaborator/admin), which is a useful constraint, but it does not explicitly state when to use this tool versus alternatives like edit_post or add_comment. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unassign_tagA
Unassign a tag from a post (requires collaborator/admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The tag slug to unassign | |
| post_number | Yes | The post number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the required role (collaborator/admin) and clearly implies a mutating action via 'unassign'. It does not cover edge cases or return values, but for a simple unassignment, the key behavioral constraint is disclosed.
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?
A single, efficient sentence that front-loads the action and includes a necessary permission note. No wasted words; every element 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?
Given the simplicity of the operation (two documented parameters, no nested objects, no output schema), the description provides the core purpose and authorization context. It is sufficiently complete, though details about error handling or idempotency could enrich it further.
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 both parameters are already explained in the input schema. The description does not add extra meaning beyond what the schema provides, but the baseline of 3 applies because the schema itself is sufficient.
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 'unassigns a tag from a post', using a specific verb and resource. It naturally distinguishes itself from assign_tag and other tag-related operations. The role requirement adds specific context.
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 usage is evident from the verb 'unassign' – this tool is for removing a tag from a post. The collaborator/admin role requirement provides an explicit access constraint, acting as a clear 'who can use' exclusion. No explicit alternative tools are mentioned, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_commentA
Update a comment (requires authentication and ownership)
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The new comment content | |
| comment_id | Yes | The comment ID to update | |
| post_number | Yes | The post number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses authentication and ownership requirements but omits behavioral details such as error handling, return value, or side effects. For a mutation tool, this is insufficient.
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 concise sentence that immediately conveys the tool's purpose and key prerequisite. No superfluous words.
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?
The description covers the basic purpose and a prerequisite, but with no output schema or annotations, it doesn't explain return values or failure modes. For a simple update operation, this may be adequate but has clear gaps.
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 provides descriptions for all three parameters (content, comment_id, post_number), achieving 100% coverage. The description adds no additional parameter-specific details, but the schema already handles the semantics, so a baseline 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 function as updating a comment, with the verb 'update' and resource 'comment'. It also mentions the key prerequisite of authentication and ownership, which distinguishes it from add/delete comment siblings.
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?
It provides context that requires authentication and ownership, implying the tool is for editing existing comments. However, it doesn't explicitly state when not to use it or direct to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tagB
Update an existing tag (requires admin role)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The new tag name | |
| slug | Yes | The tag slug to update | |
| color | Yes | The new tag color (hex format, e.g., #FF0000) | |
| isPublic | No | Whether the tag is public |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses the admin role requirement, which is a meaningful authorization constraint. However, it does not explain the update semantics (e.g., whether it replaces all fields, partial updates allowed), potential errors, or return behavior. Given the lack of annotations, a score of 3 reflects that some key behavior is covered but not exhaustively.
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, direct sentence that communicates the core action and the key prerequisite. Every word earns its place; there is no fluff or redundancy. It is front-loaded and 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 mutation tool with no output schema and no annotations, the description is quite thin. It provides the admin requirement but omits important context like what the tool returns, how it handles non-existent tags, and whether it is a full or partial update. The schema covers parameters, but the overall tool behavior is underspecified, leaving the agent with significant uncertainty.
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% coverage, with descriptions for all four parameters. The description itself adds no additional parameter meaning, but the baseline of 3 applies because the schema fully documents parameters. The description mentions 'existing tag' which implies slug is a key identifier, but the schema already clarifies that.
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 ('Update') and the resource ('an existing tag'), which distinguishes it from sibling tools like create_tag or delete_tag. While it doesn't enumerate which fields can be updated, the name and schema make the purpose unambiguous. It is specific and concise.
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 includes a prerequisite ('requires admin role'), which gives useful context for when the tool can be used. However, it does not explicitly compare with alternatives or state exclusions. The usage context is implied by the operation type, but no direct guidance on when to choose this over create_tag or delete_tag is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
16 tool updates
v0.1.0- First observed
add_comment - First observed
assign_tag - First observed
create_post - First observed
create_tag - First observed
delete_comment - First observed
delete_post - First observed
delete_tag - First observed
edit_post - First observed
get_post - First observed
list_comments - First observed
list_posts - First observed
list_tags - First observed
respond_to_post - First observed
unassign_tag - First observed
update_comment - First observed
update_tag
TDQS
Each tool targets a distinct resource-action combination (posts, comments, tags, responses) with clear boundaries. No two tools appear to perform the same operation on the same resource.
Most tools follow a verb_noun pattern (e.g., list_posts, create_post, delete_comment). Minor inconsistency exists between 'add_comment' and 'create_post'/'create_tag', and 'respond_to_post' uses a multi-word verb, but the overall pattern is predictable.
At 16 tools, the set is slightly above the typical 3-15 range but still well-scoped for managing posts, comments, tags, and statuses. Each tool is necessary, and the count is not excessive.
The tool surface provides full CRUD for posts, comments, and tags, plus assignment and status-change operations. No obvious gaps exist for the domain of a feedback management server; list_posts offers filtering, and response handling is covered.
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.
Provides access to Civic Plus - See Click Fix, allowing you to interact with your data via an LLM.…
A collaborative place for user requests: collect feedback, plan work, keep users in the loop.
1
Related MCP Servers
- 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-
- AlicenseBqualityDmaintenanceEnables interaction with Featurebase API to manage feature requests, feedback posts, comments, and upvotes. Supports creating, updating, and organizing customer feedback through natural language commands.125058MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage website feedback from Feedbucket, including listing, filtering, commenting on, and resolving feedback items through natural language interactions.616MIT
- AlicenseAqualityCmaintenanceEnables customer feedback management by integrating with Canny.io, supporting board listing, post retrieval, search, and creation.10143MIT
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/ringostat/fider-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server