@voteship/mcp-server
v0.1.7
Published
MCP server for VoteShip — manage feature requests, votes, roadmaps, and AI workflows from any MCP client
Maintainers
Readme
@voteship/mcp-server
MCP (Model Context Protocol) server for VoteShip — manage feature requests, votes, roadmaps, and AI workflows from any MCP-compatible client.
Works without an API key — public tools let any agent submit feedback, browse boards, vote, and comment.
Installation
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"voteship": {
"command": "npx",
"args": ["@voteship/mcp-server"],
"env": {
"VOTESHIP_API_KEY": "sk_..."
}
}
}
}Public Mode (No API Key)
For agents that just need to submit feedback or browse boards:
{
"mcpServers": {
"voteship": {
"command": "npx",
"args": ["@voteship/mcp-server"],
"env": {
"VOTESHIP_PROJECT_SLUG": "my-project"
}
}
}
}No VOTESHIP_API_KEY needed. The server starts in public mode with 4 tools for interacting with any public VoteShip board.
Cursor / Windsurf
Add to your MCP settings:
{
"mcpServers": {
"voteship": {
"command": "npx",
"args": ["@voteship/mcp-server"],
"env": {
"VOTESHIP_API_KEY": "sk_..."
}
}
}
}Find your API key in VoteShip → Settings → Share & Embed.
Public Tools (4) — No API Key Required
| Tool | Description |
|------|-------------|
| submit_feature_request | Submit feedback to any public VoteShip board. Post created as PENDING (requires board owner approval). |
| browse_board | View approved feature requests on a public board, sorted by votes |
| upvote_post | Vote/unvote on a feature request (uses deterministic anonymous ID) |
| add_public_comment | Add a comment to a feature request |
Admin Tools (25) — Requires API Key
| Tool | Description |
|------|-------------|
| list_posts | List feature requests with optional filters |
| get_post | Get a single post with votes, comments, tags |
| create_post | Create a new feature request |
| update_post | Update a post's title, description, status, or tags |
| delete_post | Delete a feature request |
| search_similar | Find similar posts using AI semantic search |
| add_vote | Vote on a feature request |
| get_voters | List who voted on a post |
| add_comment | Add a comment to a post |
| get_comments | List comments on a post |
| delete_comment | Delete a comment from a post |
| list_tags | List all available tags |
| create_tag | Create a new tag |
| list_users | List board users |
| update_user | Update a board user's name, email, or spend value |
| get_roadmap | Get the product roadmap grouped by status |
| get_analytics | Get analytics summary for a time period |
| list_releases | List published changelog releases |
| create_release | Create a changelog release |
| submit_feedback | Submit unstructured text as a feature request (AI processes it) |
| triage_inbox | AI-powered triage of unreviewed posts |
| get_summary | AI-generated summary of recent feedback |
| plan_sprint | AI-suggested sprint based on votes and themes |
Resources (5)
| URI | Description |
|-----|-------------|
| voteship://project/overview | Project info and summary stats |
| voteship://project/board | Full board state with all posts |
| voteship://project/roadmap | Public roadmap view |
| voteship://project/changelog | Published releases |
| voteship://project/analytics | Analytics snapshot |
Prompts (5)
| Name | Description |
|------|-------------|
| triage_inbox | Review and categorize unprocessed feature requests |
| sprint_planning | Suggest what to build next based on data |
| generate_changelog | Draft release notes from recently completed posts |
| feedback_summary | Summarize feedback trends and highlights |
| submit_feedback | Guide for submitting a well-structured feature request (works in public mode) |
Example Usage
Public mode (any agent):
> Submit a feature request to the acme-app board: "Add dark mode support"Admin mode (with API key):
> Triage my VoteShip inbox and suggest what to build this sprintThe agent will:
- Fetch unreviewed posts and analyze them
- Flag duplicates and suggest statuses
- Recommend a sprint plan based on votes and themes
- Generate changelog drafts for completed features
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| VOTESHIP_API_KEY | No | API secret key (sk_...) for full admin access. Omit for public-only mode. |
| VOTESHIP_PROJECT_SLUG | No | Default project slug for public tools (e.g. my-app) |
| VOTESHIP_API_URL | No | Custom API URL (default: https://app.voteship.app) |
Development
Testing
# Run tests
pnpm test
# Run with coverage
pnpm test:coverageThe MCP server has 82 tests covering:
- Client HTTP layer — URL construction, headers, auth, error handling for all 25+ methods
- Server registration — All 29 tools, 5 resources, 5 prompts verified
- Tool callbacks — Success/error paths, public tool slug resolution
- Resource callbacks — Data formatting and response structure
Coverage thresholds are enforced: 55% lines, 40% branches, 70% functions, 55% statements.
License
MIT
