A side-by-side look at the Aha.io and Laver MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Aha.io for product management work as a local process; choose Laver MCP for product management as a local process. You can also run both side by side in one mcpServers block.
server_health_check, server_status, configure_server.LAVER_API_KEY, LAVER_API_KEY_FILE, LAVER_API_URL.list_workspaces, list_boards, get_board.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Product Management | Product Management |
| Quality signal | 63/100 · Good | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | LAVER_API_KEYLAVER_API_KEY_FILELAVER_API_URL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 6 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 54 | 49 |
| Full listing | View Aha.io | View Laver MCP |
server_health_checkGet server health status and diagnosticsserver_statusGet detailed server status and configurationconfigure_serverConfigure server settings (company, token, mode)get_server_configGet current server configurationtest_configurationTest current Aha.io configurationaha_create_feature_commentCreate a comment on a feature in Aha.io. Returns the created comment. For formatting, send raw HTML in body, e.g. <p>A <strong>formatted</strong> reply.</p>. Do not escape tags as <p> or wrap the body in a Markdown code fence. Plain text also works; Markdown is not converted. structuredContent retains the body returned by Aha; read it back with aha_list_comments to verify. aha_create_comment does the same for features and every other record type, and aha_list_comments reads them back - prefer those unless you specifically want this one.aha_associate_feature_with_epicAssociate a feature with an epic in Aha.io. Returns the updated feature and a link to it.aha_move_feature_to_releaseMove a feature to a different release in Aha.io. Returns the updated feature and a link to it.aha_associate_feature_with_goalsAssociate a feature with multiple goals in Aha.io. Replaces the feature's whole goal set, so goals left out are unlinked. Returns the updated feature and a link to it.aha_update_feature_tagsUpdate tags for a feature in Aha.io. Replaces the feature's whole tag set, so tags left out are removed. Returns the updated feature and a link to it.aha_create_epic_in_productCreate an epic within a specific product in Aha.io. Returns the created epic and a link to it.aha_create_epic_in_releaseCreate an epic within a specific release in Aha.io. Returns the created epic and a link to it.list_workspacesWhere to start when you have no uuidslist_boardsThe boards in a workspaceget_boardA board with its status columns, labels, members and ticketslist_ticketsTickets on a board, filterable, paged — `updated_since` is how you follow a boardlist_workspace_ticketsTriage across every board at once — `overdue`, `unassigned`, or free textget_ticketOne ticket in full, its subtasks, **including its `version`get_ticket_commentsComments and activity historyget_ticket_flowHow long the ticket has spent in each columnlist_custom_fieldsA board's custom field definitions — the uuids `update_ticket` writes againstlist_labelsEvery label in the workspace, not only the ones already used on one boardsearchBoards, tickets, wiki pages and comments across a whole workspace at oncecreate_ticketstatus` takes the column name, or pass `status_uuid`; markdown in `description` is parsedPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"aha-io": {
"command": "npx",
"args": [
"@cedricziel/aha-mcp"
]
}
}
}
{
"mcpServers": {
"laver-mcp": {
"command": "npx",
"args": [
"-y",
"@laver/mcp"
],
"env": {
"LAVER_API_KEY": "YOUR_LAVER_API_KEY_HERE",
"LAVER_API_KEY_FILE": "YOUR_LAVER_API_KEY_FILE_HERE",
"LAVER_API_URL": "YOUR_LAVER_API_URL_HERE"
}
}
}
}