VoteShip
Server Details
Manage feature requests, votes, roadmaps, and changelogs from any MCP client.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- MattKilmer/voteship-agent-toolkit
- GitHub Stars
- 0
- Server Listing
- @voteship/mcp-server
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 4 of 4 tools scored.
Each tool maps to a distinct public action: viewing the board, submitting a request, voting, and commenting. There is no meaningful overlap or ambiguity between the four operations.
All tool names follow a consistent verb_noun snake_case pattern: add_public_comment, browse_board, submit_feature_request, upvote_post. The naming is predictable and easy to scan.
Four tools is well-scoped for a public feedback board interaction surface. Each tool covers a needed user action without unnecessary bloat or duplication.
Core public workflows are covered: browse approved requests, submit a new request, vote, and comment. Minor gaps exist, such as no way to read existing comments or track the status of a pending submission, but these are not severe for the stated purpose.
Available Tools
4 toolsadd_public_commentComment on a public requestAInspect
Use this when the user wants to add public context or a follow-up to a known VoteShip feature request. Add a comment to a feature request on a public VoteShip board. No API key needed. Requires an author name.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text (max 5000 chars) | |
| post_id | Yes | The post ID to comment on | |
| author_name | Yes | Display name for the comment author |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The VoteShip API result for this operation |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint false, idempotentHint false, destructiveHint false) already indicate this is a write operation that is not idempotent or destructive. The description adds 'public context' and 'follow-up' but does not provide additional behavior details such as return values, side effects, or error scenarios. It adds minimal nuance beyond the annotations.
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 concise but contains some redundancy. The first sentence ('Use this when...') and the second sentence ('Add a comment...') largely repeat the same intent. While it is front-loaded with usage context, the duplication could be streamlined. It is still clear and not overly 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?
Given the simplicity of the tool and the absence of an output schema, the description covers all necessary context: what it does, when to use it, and prerequisites (no API key, requires author name). It fully equips an agent to invoke the tool correctly without missing critical information.
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 descriptions for all three parameters (body, post_id, author_name). The description mentions 'Requires an author name' but that is redundant with the schema's required field. It does not add any extra meaning to the parameters themselves, so it does not go beyond the schema's coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: adding a comment to a feature request on a public VoteShip board. It uses a specific verb ('add') and resource ('comment to a feature request'), and explicitly mentions 'public context' or 'follow-up', distinguishing it from other actions. The description is unambiguous and directly tells the agent what the tool does.
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 explicitly states when to use the tool: when the user wants to add public context or a follow-up to a known VoteShip feature request. It also mentions that no API key is needed and that an author name is required, which are important operational prerequisites. This clearly differentiates it from browsing, submitting, or upvoting (the sibling tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_boardBrowse a feature boardARead-onlyIdempotentInspect
Use this when the user wants to inspect, compare, or interact with approved requests on a public VoteShip board. View approved feature requests on a public VoteShip board. No API key needed. Returns posts sorted by vote count and renders an interactive board in MCP Apps clients.
| Name | Required | Description | Default |
|---|---|---|---|
| project_slug | No | Project slug (e.g. 'my-app'). Optional if VOTESHIP_PROJECT_SLUG env var is set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| posts | Yes | |
| boardUrl | Yes | |
| projectSlug | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. The description adds useful behavioral context: no API key needed, posts sorted by vote count, and an interactive board render. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a 'Use this when' clause and keeps the total length reasonable. Some redundancy exists between 'inspect, compare, or interact' and 'View approved feature requests', but it remains efficient.
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 output schema exists and annotations cover safety, the description provides enough context: public board, no auth, sorting behavior, and rendering. Nothing critical is missing for an AI agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single parameter (project_slug) is fully documented there. The description adds no additional parameter semantics, 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 tool browses and views approved feature requests on a public board, with specific verbs and resource. It doesn't explicitly name sibling tools for differentiation, but the contrast with write operations (add_public_comment, submit_feature_request, upvote_post) is implicit.
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?
Provides an explicit trigger ('Use this when the user wants to inspect, compare, or interact with approved requests'), which gives clear context for when to use it. It doesn't mention alternatives or exclusions, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feature_requestSubmit a feature requestAInspect
Use this when the user wants to send new product feedback to a public VoteShip board without administering the project. Submit a feature request to any public VoteShip board. No API key needed. The post is created as PENDING and requires board owner approval. Include metadata.source to identify your agent.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Submitter's email (for follow-up notifications) | ||
| title | Yes | Feature request title (max 200 chars) | |
| source | No | Name of the agent or app submitting this request (stored in metadata.source) | |
| description | No | Detailed description of the feature request | |
| project_slug | No | Project slug (e.g. 'my-app'). Optional if VOTESHIP_PROJECT_SLUG env var is set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The VoteShip API result for this operation |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits beyond annotations: the post is created as PENDING and requires board owner approval, no API key is needed, and metadata.source should identify the agent. The annotations (all false) provide almost no behavioral information, so the description carries the burden and does so thoroughly.
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?
Four sentences, front-loaded with 'Use this when...', and each sentence adds distinct value: usage trigger, action, auth, pending status, and metadata instruction. No filler.
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 output schema and 100% parameter coverage, the description sufficiently covers the usage context, auth requirement, approval workflow, and metadata instruction. Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all parameters. The description's instruction to 'include metadata.source' points to the 'source' parameter but adds no new meaning beyond its schema description.
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?
States a specific verb 'submit' and resource 'feature request to any public VoteShip board'. The phrase 'send new product feedback' clarifies the use case and distinguishes this from sibling tools (comment, upvote, browse) without naming them.
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?
Explicitly states when to use: 'when the user wants to send new product feedback...' and adds the context 'without administering the project' and 'No API key needed.' However, it doesn't name alternative sibling tools or exclusion scenarios, so it's clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upvote_postToggle a feature-request voteADestructiveInspect
Use this when the user explicitly wants to add or remove their agent identity's vote on a known VoteShip post. Vote or unvote on a feature request (toggles). Uses a deterministic anonymous ID so the same agent on the same machine has a consistent identity. No API key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post ID to vote on |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The VoteShip API result for this operation |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations: it explains the toggle behavior (adding and removing), the deterministic anonymous ID mechanism, and that no API key is needed. These are behavioral details not captured in the annotations, which only mark destructiveHint. The description also clarifies identity consistency, which is valuable for the agent.
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 three sentences, each adding value: usage condition, toggle behavior, and identity mechanism. It is front-loaded with the most critical information (when to use) and avoids redundant details. 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?
The description is quite complete for a simple tool with one parameter and an output schema. It covers identity, security (no API key), and the toggle nature. The only minor gap is that it doesn't state what the response contains, but the output schema presumably handles that. Given the simplicity and annotations, this is sufficient.
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 100% coverage for the single parameter (post_id). The description does not add significant detail beyond the schema, but it does imply that the post_id must refer to a known post, which is a minor contextual addition. Baseline 3 is appropriate because the schema fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to add or remove a vote on a specified VoteShip post, with a toggle behavior. It distinguishes itself from siblings by mentioning the specific resource type (VoteShip post) and the action (vote/unvote), which is not covered by siblings like submit_feature_request or browse_board.
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 explicitly states when to use this tool: 'when the user explicitly wants to add or remove their agent identity's vote on a known VoteShip post.' It also implies when not to use it by scoping to voting only, and mentions the alternative (submit_feature_request) indirectly by distinguishing vote from submission. The condition 'known post' gives clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceOfficial MCP server for FeatureJet, enabling agents to read and act on customer feedback boards: list/search posts, file feature requests, and pull top-voted planned items.MIT- AlicenseAqualityCmaintenanceManage posts, channels, organizations, and ideas through any MCP-compatible LLM client.228MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server for Canny feedback management. Enables managing customer feedback, prioritizing features, and streamlining product development through natural language.28411Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating with Productboard to manage customer feedback, fetch notes, search and create features, and link notes to features.34MIT
Your Connectors
Sign in to create a connector for this server.