# com.qretro/retro

QRetro retrospectives and planning poker over MCP: boards, action items, poker games, estimates.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the content rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 1.3.0
- **Author:** com.qretro
- **License:** Unknown
- **Endpoints:** streamable-http https://mcp.qretro.com
- **Source:** https://qretro.com
- **Endpoint health:** degraded (last checked 2026-10-04T15:20:05.814Z, 6 samples) — uptime is not a security property and is not part of the trust score
- **Compatible clients:** claude-code, cursor, copilot, chatgpt, gemini (basis: transport)

## Trust

60/100 (B), scored on the content rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: clean
- Obfuscation scan: clean
- Evidence age: 29 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-05T20:43:29.269Z
- **Version scanned:** live
- **CVEs:** no coverage — this entry has no package coordinates to query OSV against, so "no known CVEs" is NOT asserted for it.

## Tools

29 declared. Observed from a live `tools/list` probe.
- `retro.teams.list` — Returns the list of teams the user belongs to. boards_count is the total number of boards in a team, finished and unfinished alike — use retro.boards.list to te
- `retro.team.members.list` — Returns the members of a team with their id, name and role (owner, admin, facilitator, member). Use the id as assign_to in retro.actions.create, retro.actions.u
- `retro.boards.list` — Returns retrospectives (boards) of a team, newest first. Unfinished boards are included unless finished_only is set — otherwise check the is_finished flag. Filt
- `retro.actions.list` — Returns action items across all retrospectives at once — the answer to "what did we agree on and never finish". Covers every team available unless team_id narro
- `retro.board.messages.list` — Returns all participant messages (cards) for a retrospective board, organized by template columns (e.g. "What went well", "What didn't go well"). Includes text,
- `retro.board.messages.update` — Updates the text of an existing board message created by the current MCP user.
- `retro.board.messages.delete_own` — Deletes a single board message. Access is strictly governed by API policies: users can delete their own messages, or any message if they have board update right
- `retro.board.summary.get` — Returns the summary of a retrospective with participant info and metadata. Works for unfinished boards too — summary is null until the retro is wrapped up, so c
- `retro.board.actions.list` — Returns action items from a retrospective board, including status, priority, assignee, and due date.
- `retro.board.insights.list` — Returns insights (clusters) and suggested actions for a retrospective board. Insights include topic clusters with sentiment, urgency, and category analysis.
- `retro.board.health.get` — Returns the health check of a retrospective: score per category on a 0-10 scale, alignment between participants, turnout, and the same score across the previous
- `retro.board.roti.get` — Returns ROTI (Return on Time Invested) voting metrics for a retrospective board, including average score, distribution, and trend across previous retrospectives
- `retro.boards.search` — Search across retrospectives by keyword: board summaries, action items and participant cards. Cards hidden by private writing during an ongoing retro are exclud
- `retro.actions.create` — Creates a new action item on a retrospective board. Requires mcp:write scope.
- `retro.actions.update` — Updates an existing action item: text, priority, due date, or assignee. Requires mcp:write scope.
- `retro.actions.complete` — Marks an action item as completed. Requires mcp:write scope.
- `retro.board.suggested_actions.promote` — Turns a pending suggested action from retro.board.insights.list into a real action item on the board and marks the suggestion accepted, keeping the wording and 
- `retro.board.suggested_actions.reject` — Rejects a pending suggested action from retro.board.insights.list: the suggestion moves to rejected and no action item is created. Requires mcp:write scope.
- `poker.sources.list` — Returns the issue trackers connected to a team (Jira, Linear) and what each of them can do: search for tasks, list iterations (sprints, cycles), write estimates
- `poker.iterations.list` — Returns the iterations of a connected issue tracker — Jira sprints (active and upcoming), and whatever a future tracker calls the same thing. Filter by name wit
- `poker.games.list` — Returns the planning poker games of a team, newest first, with how many tasks each of them has and how many already carry an estimate. Personal games outside a 
- `poker.game.get` — Returns one planning poker game: its estimation scale, progress, the task currently on the table and the link participants use to join. Use poker.game.tasks.lis
- `poker.game.tasks.list` — Returns the tasks of a poker game with their estimate, individual votes, tracker key and link. needs_sync tells whether the agreed estimate still differs from t
- `poker.games.create` — Creates a planning poker game for a team and returns the link participants join with. Pick a ready-made scale — fibonacci, modified_fibonacci, tshirts, powers_o
- `poker.game.tasks.add` — Adds tasks to a poker game by hand — for work that lives outside an issue tracker, or when no tracker is connected. To pull tasks from Jira or Linear use poker.
- `poker.game.tasks.import` — Pulls tasks from a connected issue tracker into a poker game. Give it either iteration_ref from poker.iterations.list to take a whole sprint, or query to search
- `poker.game.task.select` — Puts a task on the table: everyone looking at the game sees it as the one being estimated right now. Only the team owner can change a game. Requires mcp:write s
- `poker.game.task.reveal` — Reveals the cards of a task and computes its estimate from the votes cast — this is the only way an estimate appears, there is no way to set a number directly. 
- `poker.game.task.sync` — Writes the agreed estimate back to the issue tracker — Jira story points, Linear estimate. Works only for tasks imported from a tracker and only when the integr

## Install

**Verdict: review** — Installable, but 2 things to check first: No CVE coverage: this entry has no npm/PyPI coordinates to query OSV against, so "no known vulnerabilities" is not a claim that can be made about it.
**Cautions** (coverage gaps and advisories — never blocking)
- No CVE coverage: this entry has no npm/PyPI coordinates to query OSV against, so "no known vulnerabilities" is not a claim that can be made about it.
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"retro\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.qretro.com\"\n    }\n  }\n}"
```

## Blast radius

Contained to moderate — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs on someone else's infrastructure; read-only tool surface.
- Floor 9, ceiling 27 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/com.qretro%2Fretro
- Install plan: https://forgeregistry.com/api/v1/packages/com.qretro%2Fretro/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/com.qretro%2Fretro
- HTML page: https://forgeregistry.com/registry/com.qretro%2Fretro
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
