Skip to main content
Glama

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

# 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-fider

Using 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_URL or FIDER_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

  1. Log in to your Fider instance as an administrator

  2. Go to Settings → API

  3. Generate a new API key

  4. Copy the key and set it as the FIDER_API_KEY environment variable

Usage

With Claude Desktop

  1. Add the server to your Claude Desktop configuration file:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Add 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"
      }
    }
  }
}
  1. 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-fider

Development

Running Tests

uv run pytest

Code Formatting

uv run black .
uv run ruff check .

Publishing to PyPI

# Build the package
uv build

# Publish to PyPI
uv publish

Tool Descriptions

list_posts

List posts from Fider with optional filtering.

Parameters:

  • query (string) - Search keywords

  • view (string) - Filter and order options: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trending

  • limit (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 post

  • description (string) - The description of the post

edit_post

Edit an existing post (requires collaborator/admin role).

Parameters:

  • number (integer, required) - The post number to edit

  • title (string, required) - The new title of the post

  • description (string) - The new description of the post

delete_post

Delete a post (requires admin role).

Parameters:

  • number (integer, required) - The post number to delete

  • reason (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 to

  • status (string, required) - The new status: open, planned, started, completed, declined, duplicate

  • text (string) - Optional description of the status change

  • originalNumber (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 on

  • content (string, required) - The comment content

update_comment

Update a comment (requires authentication and ownership).

Parameters:

  • post_number (integer, required) - The post number

  • comment_id (integer, required) - The comment ID to update

  • content (string, required) - The new comment content

delete_comment

Delete a comment (requires authentication and ownership/admin).

Parameters:

  • post_number (integer, required) - The post number

  • comment_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 name

  • color (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 update

  • name (string, required) - The new tag name

  • color (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 number

  • slug (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 number

  • slug (string, required) - The tag slug to unassign

Troubleshooting

Connection Issues

  • Ensure your Fider instance is accessible from your network

  • Check that the FIDER_BASE_URL is correct and doesn't have a trailing slash

  • Verify 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 tools
add_commentB

Add a comment to a post (requires authentication)

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesThe post number to comment on
contentYesThe comment content

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe tag slug to assign
post_numberYesThe post number

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the post
descriptionNoThe description of the post

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe tag name
colorYesThe tag color (hex format, e.g., #FF0000)
isPublicNoWhether the tag is public (default: true)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe comment ID to delete
post_numberYesThe post number

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesThe post number to delete
reasonNoReason for deletion

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe tag slug to delete

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe new title of the post
numberYesThe post number to edit
descriptionNoThe new description of the post

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesThe post number to retrieve

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesThe post number to get comments for

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoComma-separated list of tags to filter by
viewNoFilter and order. Options: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trending
limitNoNumber of entries to return (default: 30)
queryNoSearch keywords

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoOptional description of the status change
numberYesThe post number to respond to
statusYesThe new status of the post
originalNumberNoRequired when status is 'duplicate' - the post number to merge into

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe tag slug to unassign
post_numberYesThe post number

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe new comment content
comment_idYesThe comment ID to update
post_numberYesThe post number

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe new tag name
slugYesThe tag slug to update
colorYesThe new tag color (hex format, e.g., #FF0000)
isPublicNoWhether the tag is public

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 16 tool updatesv0.1.0
    • First observedadd_comment
    • First observedassign_tag
    • First observedcreate_post
    • First observedcreate_tag
    • First observeddelete_comment
    • First observeddelete_post
    • First observeddelete_tag
    • First observededit_post
    • First observedget_post
    • First observedlist_comments
    • First observedlist_posts
    • First observedlist_tags
    • First observedrespond_to_post
    • First observedunassign_tag
    • First observedupdate_comment
    • First observedupdate_tag

TDQS

A3.7/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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