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

citeguard-mcp-server

v0.1.1

Published

MCP server that checks whether a cited paper has been retracted, corrected, or flagged with an expression of concern -- via Crossref, including Retraction Watch records. No API key.

Readme

citeguard-mcp-server

An MCP server that checks a citation against Crossref for retraction, correction, or expression-of-concern status — so an AI agent doing research, writing, or literature review can check its own citations before including them. No API key required; Crossref's REST API is free and open.

Part of the citeguard project — see the repository root for the shared detection logic and the Python CLI/library. This server is an independent TypeScript implementation of the same, empirically-verified detection algorithm, tested against the same real Crossref fixtures as the Python package (tests/fixtures/) so both surfaces agree on ground truth.

Tools

  • check_citation — check a single DOI.
  • check_citations — extract every DOI from a block of text (a reference list, a paper draft) and check them all in one call.

Install and configure

Nothing to clone or build — add this to your MCP client's config (e.g. claude_desktop_config.json, or a project's .mcp.json for Claude Code):

{
  "mcpServers": {
    "citeguard": {
      "command": "npx",
      "args": ["-y", "citeguard-mcp-server"]
    }
  }
}
git clone https://github.com/wedo911/citeguard.git
cd citeguard/mcp-server
npm install
npm run build
{
  "mcpServers": {
    "citeguard": {
      "command": "node",
      "args": ["/absolute/path/to/citeguard/mcp-server/dist/index.js"]
    }
  }
}

Troubleshooting: network errors for every DOI

If check_citation fails on every DOI (not just retracted or unusual ones) with a network/fetch error, this is very likely an environment issue, not a bug: many MCP clients spawn servers with a minimal, security-conscious environment — the official SDK's default, for example, only passes through HOME, LOGNAME, PATH, SHELL, TERM, and USER, not your full shell environment. If your network requires something outside that list to make outbound HTTPS calls — NODE_EXTRA_CA_CERTS (common with corporate proxies or antivirus TLS inspection, e.g. Norton), HTTP_PROXY/HTTPS_PROXY, or similar — the spawned server won't have it and every HTTPS request will fail with a generic error.

This is exactly what happened during this project's own development and testing: this server's Crossref client was independently verified correct via direct execution, then failed with fetch failed the moment it was spawned as a child process by an MCP client using default environment inheritance — resolved once NODE_EXTRA_CA_CERTS was included in the spawned environment. If you hit this, configure your MCP client to pass through the specific variable your network needs (check your client's documentation for an env field in its server configuration).

Run the tests

npm run build
node --test tests/analyze.test.mjs tests/parsers.test.mjs

Try it without a client

npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call --tool-name check_citation \
  --tool-arg doi="10.1016/S0140-6736(97)11096-0"

License

MIT — see LICENSE in the repository root.