Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.ivanlai/primer-mcp

PYPI · PRIMER-MCP · SCANNED AUG 19

A Jira-lite MCP server that guides planning-first workflows for AI-assisted development.

Available components

67 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 2 of 33 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 1811 tokens (~106/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
  • Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

pypi · primer-mcp

# add to Claude Code
claude mcp add ivanlai-primer-mcp -- uvx primer-mcp
# add to Codex CLI
codex mcp add ivanlai-primer-mcp -- uvx primer-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ivanlai-primer-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "primer-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ivanlai-primer-mcp --command uvx --arg primer-mcp
# ~/.hermes/config.yaml
mcp_servers:
  ivanlai-primer-mcp:
    command: "uvx"
    args: ["primer-mcp"]
// mcp.json
{
  "mcpServers": {
    "ivanlai-primer-mcp": {
      "command": "uvx",
      "args": [
        "primer-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Aug 26 +2
    • Stability: unverified → 0.13 functional
    • Package version: 0.1.3 → 0.1.4 functional
  • 15 Aug 26 +15
    • Malware scan: unverified → pass security
  • 14 Aug 26 50

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 19 Aug 2026 · Analysed pypi/primer-mcp@0.1.4

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build
Dependencies 33 packages
Packages resolved 33
Stale 1
No linked repository 1
Tree resolution Complete
MCP tools · 17 exposed · ~1,685 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
complete_spike ~52

Close a spike by recording its findings — the answer to the question it was investigating and any recommendations. Works from any status.

NameTypeReqDescription
findingsstringyes
spike_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

complete_task ~106

Mark a task as completed with notes on what was done. The notes parameter is a terse one-liner for the frontmatter field; write a fuller summary (approach, key changes, decisions) into the ## Completion Notes body section of the ticket separately. Ideally call start_task first, but this works from any status. After this, call verify_task with evidence to finalise.

NameTypeReqDescription
notesstringyes
task_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_spike ~84

Create a Spike under a story — a timeboxed investigation to answer a specific question before committing to an implementation approach. The parent story must already exist. When done, call complete_spike with your findings.

NameTypeReqDescription
questionstringyes
story_idstringyes
timeboxstringyes
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_story ~182

Create a Story under an epic — a deliverable with acceptance criteria. The epic must exist — if one hasn't been created yet, call plan_epic first. The user will have described their goals; use that to create the epic, asking for clarification if needed. If no ADR has been recorded, the response will suggest capturing decisions first, but the story is still created. Pass adr_ids to link the story to the architectural decisions that govern it. Each ADR must exist and belong to the same epic. After creating stories, present the plan to the user and wait for their agreement before creating tasks or starting work.

NameTypeReqDescription
acceptance_criteria
adr_ids
definition_of_done
epic_idstringyes
titlestringyes
whatstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_task ~142

Create a Task under a story — a concrete unit of implementation work with a testable outcome. The parent story must already exist. After breaking a story into tasks, present the task list to the user before starting work — don't create tasks and immediately begin implementing. For small bug fixes (1–2 tasks), prefer adding a task under the standing bug-fix story rather than creating a new story. Suggest a dedicated story only when the fix spans 3+ tasks.

NameTypeReqDescription
story_idstringyes
testable_outcomestringyes
titlestringyes
what_to_dostringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_ticket ~70

Delete a ticket. Non-todo tickets are deleted with a warning. Children are reported but not deleted — call delete_ticket on each to cascade. After all deletions, call sweep_blocked_by to clean up dangling references. Recoverable from git history.

NameTypeReqDescription
ticket_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

export_graph ~85

Generate a self-contained HTML file visualising the project as an interactive graph. Opens in any browser with no external requests. Nodes are coloured by type and status; edges show both hierarchy (epic -> story -> task) and dependencies (blocked_by). Click a node to see its details. On-demand — call when you want a snapshot.

NameTypeReqDescription
output_path
NameTypeReqDescription
resultstringyes

No examples provided.

get_ticket ~56

Read one ticket by ID, with its full body. Also reports which tickets it blocks — that direction is not stored on the ticket itself, so this is the only way to see it.

NameTypeReqDescription
ticket_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

init_project ~95

Initialise this project for primer-mcp: creates the primer/ ticket store and adds the workflow section to CLAUDE.md (and AGENTS.md if it exists). Non-destructive and idempotent. Call this once per project, before any other tool. Optionally pass jira_project_key if tickets may later be exported to Jira.

NameTypeReqDescription
jira_project_key
project_namestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

list_actionable ~204

List what can be acted on right now, with epic context. Returns the epic's goals, story coverage, and a table of actionable items. Always show the full table to the user first, then add your recommendation below it. The table is the primary output — the user needs to see all options to make their own call. After showing the table, recommend what to do next: 1. Check whether the stories cover the epic's goals. If goals are uncovered, recommend more planning (create_story) before execution. 2. Urgent items (unverified or in-progress tasks) should usually be finished before starting new work. 3. For the remaining items, read the tickets that look relevant (get_ticket) and recommend based on impact — what unblocks the most work, what aligns with current momentum, why now. 4. If several items are genuinely equal, say so and explain why.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

list_tickets ~77

List tickets one per line, newest work last. Filter by type (epic, adr, story, task, spike), status, or parent_id (show only children of that ticket). Use this to find an ID before calling another tool.

NameTypeReqDescription
parent_id
status
ticket_type
NameTypeReqDescription
resultstringyes

No examples provided.

plan_epic ~109

Create an Epic — the top-level container for a body of work. Start here: state why the work matters, its goals, and how you'll know it's done. Consider recording decisions (record_adr) before creating stories — it captures reasoning that gets lost once implementation starts.

NameTypeReqDescription
constraints
goalsarrayyes
non_goals
success_criteria
titlestringyes
whystringyes
NameTypeReqDescription
resultstringyes

No examples provided.

record_adr ~102

Record an Architecture Decision Record under an epic: the context forcing a choice, the decision, alternatives rejected (with reasons), and consequences accepted. Recording decisions before creating stories is recommended — it captures reasoning that gets lost once implementation starts.

NameTypeReqDescription
alternativesarrayyes
consequencesstringyes
contextstringyes
decisionstringyes
epic_idstringyes
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

start_task ~58

Transition a task to in-progress — call this when you begin working on a task. Works from any status; you'll get a note if the transition is unusual. After finishing, call complete_task.

NameTypeReqDescription
task_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

sweep_blocked_by ~38

Remove blocked_by references that point to tickets that no longer exist. Call once after finishing a batch of delete_ticket calls.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

update_ticket ~133

Amend a ticket after creation; anything left out is left alone. status sets todo, in-progress or blocked — for finished states, prefer complete_task, verify_task or complete_spike as they also record notes. blocked_by replaces the dependency list and is refused if a referenced ticket does not exist or the edge would create a cycle. To say "A blocks B", set blocked_by on B. body_sections replaces whole markdown sections by heading.

NameTypeReqDescription
blocked_by
body_sections
external_ref
status
ticket_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

verify_task ~92

Verify a task with evidence that the work holds (e.g. "218 passed, mypy clean"). Pass the short commit hash in the commit parameter so it is labelled consistently. Ideally call complete_task first to capture notes, but this works from any status. Sets the task to verified.

NameTypeReqDescription
commitstring
evidencestringyes
task_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.