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

@rover-engineering/logio-mcp

v0.1.2

Published

MCP server wrapping the Logio worklog API for Claude Code.

Readme

logio-mcp

A minimal MCP server that wraps the Logio (jira_dashboard_be) worklog API so you can query Jira worklog data from Claude Code in natural language.

Example prompts once installed:

  • "Give me Raza's worklogs from last week on LGO"
  • "How many hours did the team log on COL this sprint?"
  • "Show me all worklogs over 4 hours in the last 14 days"

Tools exposed

| Tool | Wraps | Use when | |---|---|---| | get_worklogs | GET /api/v1/worklog | You want individual entries (who, what, when, comment). | | get_worklog_summary | GET /api/v1/worklog/summary | You want totals and per-issue rollups. |

Both accept the same optional filters: start_date, end_date, worklogAuthor, issueAssignee, project, status, priority, sprint, search_query, min_hours, max_hours. Multi-value filters take comma-separated strings (e.g. project: "LGO,COL").

Defaults to the last 30 days when no dates are given.

Requirements

  • Node.js 20+
  • A Logio API token (lgo_...) — see Getting a token below
  • Network access to https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net

Getting a token

You can generate your own API token from the Logio UI — no admin involvement needed.

  1. Log in to Logio.
  2. Open the Settings menu in the sidebar and click API Tokens.
  3. Click Generate Token, give it a name (e.g. "Claude Code — my laptop"), and click Generate.
  4. Copy the token immediately — it starts with lgo_ and is only shown once. Store it somewhere safe like a password manager.
  5. Click I've saved it, dismiss this.

The token is bound to your currently active Jira account, so the data you can see through the MCP server is exactly the data you can see in the Logio dashboard — no more, no less.

You can revoke a token at any time from the same screen. Revoked tokens stop working immediately.

Setup

No clone, no install. The package runs straight from npm via npx.

Note on LOGIO_BASE_URL: Logio's web UI lives at https://logio.rover-engineering.ai, but the API is currently served from a separate Azure App Service. Use the long Azure URL shown in the examples below for LOGIO_BASE_URL — the SPA URL returns 404 for /api/v1/* routes. A future release will move the API behind the clean logio.rover-engineering.ai domain; you'll update LOGIO_BASE_URL when that ships.

Option A — claude mcp add (recommended)

macOS

claude mcp add logio \
  --env LOGIO_BASE_URL=https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net \
  --env LOGIO_API_TOKEN=lgo_your_token_here \
  -- npx -y @rover-engineering/logio-mcp

Windows (PowerShell)

claude mcp add logio `
  --env LOGIO_BASE_URL=https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net `
  --env LOGIO_API_TOKEN=lgo_your_token_here `
  -- npx -y @rover-engineering/logio-mcp

Heads up — flag syntax can vary between Claude Code versions. Some accept --env, others only -e. If the command errors with missing required argument, run claude mcp add --help and use whatever flag your version shows. The -e flag is also greedy (it can eat the server name or command as another env var), so put the server name immediately after add and use -- to separate env flags from the command.

If the flag-based form keeps fighting you — use add-json

claude mcp add-json takes the whole config as one JSON string, which sidesteps all the flag-parsing edge cases.

macOS:

claude mcp add-json logio '{
  "command": "npx",
  "args": ["-y", "@rover-engineering/logio-mcp"],
  "env": {
    "LOGIO_BASE_URL": "https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net",
    "LOGIO_API_TOKEN": "lgo_your_token_here"
  }
}'

Windows (PowerShell):

claude mcp add-json logio '{\"command\":\"npx\",\"args\":[\"-y\",\"@rover-engineering/logio-mcp\"],\"env\":{\"LOGIO_BASE_URL\":\"https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net\",\"LOGIO_API_TOKEN\":\"lgo_your_token_here\"}}'

Note the escaped quotes (\") — PowerShell requires it.

Option B — edit the Claude Code settings file directly

  • macOS: ~/.claude/settings.json
  • Windows: %USERPROFILE%\.claude\settings.json

Add a mcpServers entry:

{
  "mcpServers": {
    "logio": {
      "command": "npx",
      "args": ["-y", "@rover-engineering/logio-mcp"],
      "env": {
        "LOGIO_BASE_URL": "https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net",
        "LOGIO_API_TOKEN": "lgo_your_token_here"
      }
    }
  }
}

The -y flag auto-confirms the npx download prompt. After saving, restart Claude Code.

First run is slow. The first time npx runs the package on your machine, it downloads it from npm. After that it's cached and starts instantly.

Verify it's wired up

After registering, list the servers Claude Code knows about:

claude mcp list

You should see logio in the output. Then open Claude Code and ask:

List the MCP tools you have available.

You should see get_worklogs and get_worklog_summary. If not, restart Claude Code so it picks up the new config.

Then try a real query:

Use the logio MCP server to fetch a worklog summary for the last 7 days.

Claude will call get_worklog_summary and return the JSON.

Smoke test (optional — for debugging)

If something isn't working and you want to test the server in isolation, run it directly from a terminal with env vars set.

macOS

export LOGIO_BASE_URL="https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net"
export LOGIO_API_TOKEN="lgo_your_token_here"
npx -y @rover-engineering/logio-mcp

Windows (PowerShell)

$env:LOGIO_BASE_URL="https://pmrailswebapp-bxgydpd8fecbdxd8.westeurope-01.azurewebsites.net"
$env:LOGIO_API_TOKEN="lgo_your_token_here"
npx -y @rover-engineering/logio-mcp

The process will sit waiting on stdin with no output. That's correct — MCP servers speak over stdio and expect a client to connect. Press Ctrl+C to exit. If you see logio-mcp: missing env vars instead, your env vars aren't set in this shell.

To verify the backend is reachable and the token works, hit it with curl in another shell with the same env vars set:

macOS

curl -H "Authorization: Bearer $LOGIO_API_TOKEN" "$LOGIO_BASE_URL/api/v1/worklog/summary"

Windows (PowerShell)

curl.exe -H "Authorization: Bearer $env:LOGIO_API_TOKEN" "$env:LOGIO_BASE_URL/api/v1/worklog/summary"

(Use curl.exe explicitly on Windows — PowerShell's built-in curl alias points at Invoke-WebRequest, which handles headers differently.)

You should get JSON back. 401 means bad token; connection error means wrong base URL or backend down.

Troubleshooting

  • logio-mcp: missing env vars — env vars didn't reach the process. If using Claude Code config, double-check the env block has both keys. If running manually, set them in the current shell.
  • 404 / HTML response instead of JSON — you're pointing at the SPA frontend (https://logio.rover-engineering.ai) instead of the API. Use the long Azure App Service URL shown in the setup examples above.
  • ✗ Failed to connect in claude mcp list — Claude Code spawned the server but it exited immediately. Usually the same root cause as the missing env vars bullet. Run claude mcp get logio to inspect what's actually stored, and re-register if the env block is missing or malformed.
  • 401 Invalid API token — token typo, or token was revoked. Generate a new one from Settings → API Tokens in the Logio UI.
  • ECONNREFUSED / DNS errorsLOGIO_BASE_URL is wrong, or you're offline.
  • Claude Code doesn't see the tools — restart Claude Code after editing settings.json. Run claude mcp list to confirm registration.
  • command not found: claude — Claude Code CLI isn't on your PATH. Use Option B (settings.json) instead.
  • npx hangs forever on first run — slow network or npm registry issues. Try npm install -g @rover-engineering/logio-mcp once instead, then switch command from npx to logio-mcp (no args needed).
  • Need to redo a registration? claude mcp remove logio deletes it, then re-add. claude mcp get logio shows what's currently stored — useful for confirming env vars made it in.

Changelog

0.1.2

  • README: point LOGIO_BASE_URL at the Azure App Service URL. The SPA domain (logio.rover-engineering.ai) doesn't serve /api/v1/* routes and was returning 404 for everyone.

0.1.1

  • Republished under @rover-engineering scope after the npm org rename. @npmrover/logio-mcp unpublished.

0.1.0

  • Initial release. get_worklogs and get_worklog_summary tools.

Development (backend devs only)

If you're working on jira_dashboard_be itself and want to test against your local Rails app, run from a local clone instead of npm:

git clone https://github.com/Rover-Engineering/jira_dashboard_be
cd jira_dashboard_be/logio-mcp
npm install

LOGIO_BASE_URL=http://localhost:3001 \
LOGIO_API_TOKEN=<token generated via rails console> \
node index.js

Generate a local token either via the local UI (Settings → API Tokens while logged into your local Logio frontend), or via Rails console:

# rails console
user  = User.first
ja    = user.active_jira_account
token = ApiToken.create!(user: user, jira_account: ja, name: "local dev")
puts token.token

Tokens are scoped to the database they were created in — a prod token won't authenticate against your local Rails app, and vice versa. If you switch LOGIO_BASE_URL between local and prod, switch the token too.

Publishing a new version

Maintainers only.

  1. Bump version in package.json (semver: patch for fixes, minor for new tools/features).
  2. Add an entry at the top of the Changelog section above.
  3. From the logio-mcp/ directory:
   npm publish
  1. You'll be prompted for your npm 2FA code.
  2. Existing users running npx -y @rover-engineering/logio-mcp will automatically pick up the new version on next launch — they don't need to do anything.

npm doesn't allow republishing the same version, so always bump before publishing.

Security

  • The token is plaintext in your Claude Code config. Treat that file like a password manager export.
  • Don't commit .env or any file containing a real lgo_... token. .gitignore covers .env by default.
  • If your token leaks, go to Settings → API Tokens in Logio and click Revoke next to it immediately, then generate a fresh one.