npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@keyqinc/tempo-mcp

v1.15.1

Published

MCP server for KeyQ Tempo sprint-card workflow with Claude Code (sprint-mode v1)

Readme

keyq-tempo-mcp

MCP server for the KeyQ Tempo sprint-card workflow with Claude Code.

This is sprint-mode v1. The previous bidirectional bridge (ask, request_approval, notify, listening loop, Stop/PreToolUse hooks) is preserved on the bridge-mvp branch for archaeology.

What it does

Each Claude Code instance running this MCP server can:

  • Pull the next sprint card assigned to the "Claude Code" (CC) team_member on a configured Tempo board, and work it.
  • Read card detail including comments thread (operator clarifications) and attachments.
  • Create / update / comment on / move cards — the workflow Claude needs to drive a sprint forward.
  • Email the operator when stuck. The blocker is posted as a comment on the card AND emailed to the user. Operator's reply lands back on the card via the AI router's [Card #N] subject shortcut.

For scrum context: read recent Fathom meetings and attachments on cards to recover decisions/requirements.

Setup

1. Enable the bridge for your user (one-time, admin)

In Tempo web → Team Members → toggle Claude Code bridge on for the user.

2. Enroll this device (one-time, per machine)

In Tempo web → Claude Sessions tab → Connect a Claude Code session. You'll get a 6-digit code valid for 5 minutes.

npx @keyqinc/tempo-mcp enroll 123456

This stores a long-lived device token at ~/.keyq-tempo/token (mode 0600).

3. Add to your Claude Code mcp.json

{
  "mcpServers": {
    "keyq-tempo": {
      "command": "npx",
      "args": ["-y", "@keyqinc/tempo-mcp"]
    }
  }
}

4. Configure each repo for sprint mode

Add .claude/sprint-config.json to each repo Claude will work in:

{
  "project_code": "MPG",
  "tempo_project_id": 12,
  "branching_strategy": "card_branches",
  "target_branch": "main"
}

For team-branch projects (e.g. MPG with a long-running dev branch):

{
  "project_code": "MPG",
  "tempo_project_id": 12,
  "branching_strategy": "team_branch",
  "target_branch": "dev"
}

The sprint-mode skill (~/.claude/skills/sprint-mode/) reads this config to know which Tempo board to pull cards from and which branch to target with PRs.

Tools exposed

Sprint workflow (8 tools)

  • tempo_next_card(project_id) — pick up the next card
  • tempo_get_card(id) — full detail with comments + attachments
  • tempo_list_cards(project_id) — full board (columns + cards)
  • tempo_create_card(project_id, ...) — new card
  • tempo_update_card(id, ...) — edit fields (vital for scrum-time enrichment)
  • tempo_comment_card(id, content) — progress comment
  • tempo_move_card(id, target_column) — column transition
  • tempo_email_stuck(id, blocker) — comment + email operator
  • tempo_get_project_doc(project_id) — read a board's live scope/context doc (read before planning work on a board)
  • tempo_update_project_doc(project_id, content, base_version) — create/update the scope doc (optimistic concurrency; 0 to create)

Read helpers (3 tools)

  • tempo_list_meetings(...) — Fathom meeting summaries for scrum context
  • tempo_get_meeting(id) — single meeting detail
  • tempo_read_attachment(id) — text attachment contents inline

Authentication

Device token (tcc_* prefix) loaded from ~/.keyq-tempo/token. Sent as Authorization: Bearer <token> on every API call. Tokens are SHA-256 hashed in Tempo's database; the raw token only ever lives on disk + in-memory in this process.

Versioning

  • v1.0.0 — sprint-card workflow (this version)
  • v0.x — bidirectional bridge MVP, preserved on the bridge-mvp branch

License

MIT