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

@cleepi/atlassian

v0.4.1

Published

Cleevio taste layer over Atlassian's Rovo MCP server: skill + /spec-from-ticket prompt for the ticket → spec → implementation pipeline. Soft-aware of @cleepi/sdd.

Downloads

684

Readme

@cleepi/atlassian

Cleevio taste layer over Atlassian's Rovo MCP server for the ticket → spec → implementation pipeline. Soft-aware of @cleepi/sdd.

What's in the box

  • Skill (skills/atlassian/SKILL.md) — teaches the agent which Jira/Confluence fields map to which spec sections, what to ignore (status churn, bot comments, sprint metadata), and how to degrade honestly when something's missing. Loaded automatically when the conversation is ticket-shaped, or explicitly with /skill:atlassian.
  • Prompt/spec-from-ticket <KEY|URL> fetches the ticket, optionally pulls up to 3 linked Confluence pages, and hands off to /spec when @cleepi/sdd is installed (or to a structured manual printout when it isn't).
  • MCP config snippet (mcp.example.json) — paste into your .mcp.json to wire Atlassian's remote MCP server into pi via pi-mcp-adapter with OAuth and a curated allowlist covering reads (for ticket context) and the useful Jira writes (create, edit, transition, comment). The pi-mcp-adapter proxy stays enabled for exploring further upstream tools.

This package ships no TypeScript tool code. All HTTP, OAuth, and ADF rendering live in Atlassian's MCP server and pi-mcp-adapter. See ADR 0005 for why.

Install

# 1. The MCP adapter (one-time, per machine)
pi install npm:pi-mcp-adapter

# 2. This package
pi install git:github.com/cleevio/cleepi/packages/atlassian

You'll usually want @cleepi/sdd alongside — that's what /spec-from-ticket hands off to:

pi install git:github.com/cleevio/cleepi/packages/sdd

There's no hard dependency. /spec-from-ticket works without sdd; it just degrades to a structured printout and suggests installing sdd.

Configure the MCP server

Copy mcp.example.json contents into your .mcp.json (project) or ~/.config/mcp/mcp.json (user-global). If you already have an .mcp.json, merge the atlassian entry into your existing mcpServers block.

Then restart pi.

First-run OAuth

The first time the agent calls a Jira or Confluence tool, pi-mcp-adapter launches your browser. Sign in to Atlassian and consent to the requested read scopes. Tokens are stored by the adapter; you won't be asked again until they expire.

Admin one-time setup (per Atlassian organisation)

This isn't your job as a Cleevian unless you're also a Cleevio Atlassian admin. Document for the admin:

  • In Atlassian Administration → Rovo MCP server settings, enable the permission groups you want available through the package:
    • Required for the primary /spec-from-ticket workflow (read-only): read_jira, search_jira, read_confluence.
    • Required to use the bundled write tools (createJiraIssue, editJiraIssue, transitionJiraIssue, addCommentToJiraIssue): write_jira.
    • Optional, only if Confluence writes are desired via the MCP proxy (not promoted by this package, available through pi-mcp-adapter's mcp tool): write_confluence.
  • The permission groups are the authoritative safety layer. Per ADR 0006, this package does not duplicate the gate client-side via excludeTools. If your organisation should not be able to write Jira from pi, do not enable write_jira upstream.
  • The first user to authorize through MCP for the Cleevio site must have access to both Jira and Confluence. This ensures the Atlassian MCP app installs with the right scope footprint for everyone else.
  • No OAuth app registration is needed. Atlassian's MCP server uses OAuth Dynamic Client Registration.

If OAuth succeeds but tool calls fail with a scope error, the relevant permission group isn't enabled yet.

Usage

/spec-from-ticket PROJ-123
/spec-from-ticket https://cleevio.atlassian.net/browse/PROJ-123

The prompt:

  1. Fetches the Jira issue.
  2. Scans the description and top-level comments for linked Confluence pages; fetches up to 3.
  3. Hands off to /spec (sdd installed) or prints a structured summary (sdd absent).

Known limitations in v0.1.0

  • Jira comments come back as ADF, not Markdown. The description field renders as Markdown when responseContentFormat: "markdown", but comment bodies are returned as ADF (Atlassian Document Format, nested JSON). The agent reads ADF well enough for spec drafting, but tooling that expects pure Markdown will need to walk the tree. Verified live against honem.atlassian.net.
  • Single-site assumption. If your Atlassian account spans multiple Cloud sites, the agent will call getAccessibleAtlassianResources to pick one. Behavior is best-effort.
  • Write tools are admin-gated upstream. The bundled allowlist promotes createJiraIssue, editJiraIssue, transitionJiraIssue, addCommentToJiraIssue — but these are only callable if your org admin has enabled the write_jira permission group in Atlassian Administration → Rovo MCP server. If they're missing from mcp({server: "atlassian"}), that's why.
  • Confluence writes, worklogs, and Compass tools are reachable via the proxy (mcp({tool: "..."})) but not promoted via directTools. Use deliberately.

Troubleshooting

| Symptom | Likely cause | |---|---| | mcp tool not found | pi-mcp-adapter not installed. Run pi install npm:pi-mcp-adapter, restart pi. | | atlassian server not found by adapter | Snippet not merged into .mcp.json, or pi not restarted. | | OAuth opens browser then fails | Admin hasn't enabled read_jira / read_confluence permission groups. | | Tool call returns "insufficient scope" | Same as above. | | /spec-from-ticket says "sdd not loaded" | Install @cleepi/sdd or accept the manual printout path. |

Related