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

confer-mcp

v1.0.1

Published

MCP stdio server exposing the confer paper corpus (conference & journal papers) to AI agents

Readme

confer MCP Server

npm version

A Model Context Protocol stdio server that exposes the confer paper corpus to AI agents — Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Codex, and any other MCP-capable client.

Tools

| Tool | Description | |------|-------------| | list_venues | List all conferences/journals, optionally filter by category or series. | | search_papers | Field-aware full-text search (author:, title:, inst:, track:, venue:, year:, keyword:, doi:; - prefix excludes). | | get_paper | Retrieve the full record for a paper by venue + id. | | find_similar | TF-IDF cosine-similarity neighbours across the full corpus. | | top_authors | Most prolific authors (optionally filtered by venue or query). | | top_institutions | Most represented institutions. | | top_tracks | Most common tracks/topics. | | export_bibtex | BibTeX export for a list of {venue, id} references. |

Quick start (no clone, no build)

The server is published on npm as confer-mcp. Most clients use the same block below — npx fetches and runs the server, which streams the corpus from https://confer.repus.me/data on demand (no local data needed):

{
  "mcpServers": {
    "confer": {
      "command": "npx",
      "args": ["-y", "confer-mcp"]
    }
  }
}

Requires Node ≥ 18 on your PATH. Restart the client after editing its config.

The first query fetches data and may take a few seconds; later queries are fast.

Set it up in your client

Claude Desktop

Edit the config file, add the mcpServers block above, and restart Claude Desktop.

  • macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows — %APPDATA%\Claude\claude_desktop_config.json

Claude Code (CLI)

One command — no file editing:

claude mcp add confer -- npx -y confer-mcp
# user-wide instead of project-local:
claude mcp add confer -s user -- npx -y confer-mcp

Cursor

Add the mcpServers block to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project), or use Settings → MCP → Add new server.

VS Code (GitHub Copilot)

VS Code uses the key servers (not mcpServers). Add to .vscode/mcp.json (workspace) or your user mcp.json, then enable it from the Copilot chat Tools picker — or run MCP: Add Server from the Command Palette.

{
  "servers": {
    "confer": {
      "command": "npx",
      "args": ["-y", "confer-mcp"]
    }
  }
}

Cline / Windsurf / other VS Code agents

Use the standard mcpServers block above — Cline in its cline_mcp_settings.json, Windsurf in ~/.codeium/windsurf/mcp_config.json (or each tool's "Add MCP server" UI).

Codex CLI (OpenAI)

Codex uses TOML at ~/.codex/config.toml:

[mcp_servers.confer]
command = "npx"
args = ["-y", "confer-mcp"]

Or add it from the CLI:

codex mcp add confer -- npx -y confer-mcp

ChatGPT (remote connectors only)

ChatGPT's Developer Mode connectors accept a public HTTPS MCP URL — they can't launch a local npx command. To use confer in ChatGPT you must expose this stdio server over HTTP and make it publicly reachable, e.g. bridge it with a stdio→HTTP gateway and a tunnel:

# 1. bridge the stdio server to a local HTTP/SSE endpoint
npx -y supergateway --stdio "npx -y confer-mcp"
# 2. expose that port publicly (separate terminal)
ngrok http <port-printed-by-supergateway>

Then in ChatGPT: Settings → Connectors → Advanced → Developer mode → Add custom connector, and paste the public https://….ngrok.app/mcp URL. See the supergateway and ChatGPT connector docs for exact flags. (This keeps a process + tunnel running on your machine.)

Configuration

| Env var | Default | Description | |---------|---------|-------------| | CONFER_DATA_URL | https://confer.repus.me/data | Base URL the server fetches venues.json and per-venue JSON from. | | CONFER_DATA_DIR | (auto) | Read from a local directory instead of the network. Auto-detected when run from a repo checkout (web/public/data); set it to force a path and run fully offline. | | HTTPS_PROXY / HTTP_PROXY | — | Used for the remote fetch when set (e.g. behind a corporate proxy). |

Run from a local checkout (offline / development)

cd mcp
npm install
npm run build      # → dist/server.js

Then point your client at the built file (it auto-uses the repo's web/public/data, so it works offline):

{
  "mcpServers": {
    "confer": {
      "command": "node",
      "args": ["/absolute/path/to/confcrawl/mcp/dist/server.js"]
    }
  }
}

Example queries

list_venues(series="ICSE")
search_papers(query="author:lecun deep learning", venues=["icml2025","iclr2026"], limit=10)
get_paper(venue="icse2025", id="<paper-id>")
find_similar(venue="icse2025", id="<paper-id>", n=10)
top_authors(venues=["fse2025","fse2026"], limit=15)
top_institutions(query="venue:ICSE year:2025")
export_bibtex(refs=[{"venue":"icse2025","id":"<id>"},{"venue":"fse2025","id":"<id>"}])

Query syntax

| Prefix | Matches | |--------|---------| | author:smith | Author name contains "smith" | | title:"code review" | Title contains the phrase | | inst:mit | Author institution contains "mit" | | track:testing | Track name contains "testing" | | venue:ICSE | Venue name or id contains "ICSE" | | year:2025 | Venue year is 2025 | | keyword:fuzzing | Paper keyword contains "fuzzing" | | -author:doe | Exclude papers where author contains "doe" | | (bare word) | Matches anywhere in title, abstract, authors, tracks, etc. |

Multiple terms are combined with AND semantics.