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

@diamondsg/contextsync-mcp

v1.0.1

Published

MCP server for Claude Code that auto-loads your Linear tickets into every session

Downloads

221

Readme

ContextSync MCP

Your Claude Code. Finally knows what you're building.

ContextSync MCP connects Claude Code to your Linear board so every coding session starts fully briefed — your in-progress tickets, acceptance criteria, and latest comments, loaded automatically. No more copy-pasting. No more stale CLAUDE.md files.


See It In Action

You: "What am I working on?"

Claude: I can see from your Linear board that you have 2 active tickets:

**ENG-284 — Refactor auth middleware to use JWT refresh tokens**
Status: In Progress | Priority: High

Description: The current session-based auth needs to be replaced with a
JWT refresh token flow. The access token should expire in 15 minutes.
Refresh tokens persist for 30 days and are rotated on use.

Acceptance Criteria:
- [ ] POST /auth/refresh returns new access + refresh token pair
- [ ] Old refresh token is invalidated after use
- [ ] 401 errors trigger silent refresh in the API client

Latest comment (Sarah, 2h ago): "Make sure we invalidate all refresh
tokens on password change — see thread in #eng-security"

**ENG-291 — Fix pagination bug in issue list endpoint**
Status: In Progress | Priority: Medium
...

Want me to start on ENG-284? I have the full context loaded.

Install (3 steps)

Step 1 — Install

npm install -g @diamondsg/contextsync-mcp

Step 2 — Authenticate with Linear

contextsync auth linear --token lin_api_xxxxxxxxxxxxxxxx

Get your token at linear.app/settings/api → Personal API tokens → Create token.

Step 3 — Add to Claude Code MCP config

Add to ~/.claude/mcp.json (create the file if it doesn't exist):

{
  "mcpServers": {
    "contextsync": {
      "command": "npx",
      "args": ["-y", "@diamondsg/contextsync-mcp"]
    }
  }
}

Restart Claude Code. That's it.


MCP Tools

get_active_context

Returns your currently in-progress Linear issues with full descriptions, acceptance criteria, and recent comments.

When to use: Start of every session. Ask Claude "What am I working on?" and it will call this automatically.


list_project_issues

Lists all issues in a Linear project.

| Parameter | Type | Description | |-----------|------|-------------| | project_id | string | Linear project UUID (from the URL) | | limit | number | Max issues to return (default: 50, max: 100) |


get_issue

Fetches full detail for a specific issue.

| Parameter | Type | Description | |-----------|------|-------------| | issue_id | string | Issue identifier (ENG-284) or Linear UUID |


CLI Reference

# Authenticate with your Linear Personal API Token
contextsync auth linear --token lin_api_xxxxxxxx

# Check auth status and monthly usage
contextsync status

# Remove stored credentials
contextsync logout

Pricing

| | Free | Pro (coming soon) | |--|------|-------------------| | Context fetches/month | 50 | Unlimited | | get_active_context | ✅ | ✅ | | get_issue | ✅ | ✅ | | list_project_issues | ✅ | ✅ | | Write tools (update, comment, create) | ❌ | ✅ |

Free tier is generous enough for daily use. Pro pricing announced soon.


Troubleshooting

"Not authenticated" error:

contextsync auth linear --token <your-token>

keytar native module errors: ContextSync uses your OS keychain for secure storage. If keytar fails to compile, it falls back to ~/.contextsync/.token. To fix on Linux:

sudo apt-get install libsecret-1-dev
npm install -g @diamondsg/contextsync-mcp --build-from-source

Test the MCP server directly:

echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node $(npm root -g)/contextsync-mcp/src/server.js

Security

  • Your token is stored in your OS keychain (Keychain on macOS, Credential Manager on Windows, libsecret on Linux)
  • All Linear API calls go directly from your machine to api.linear.app — no Diamond proxy
  • Token never leaves your local environment

Links


MIT License — Diamond Software Group
ContextSync MCP v1.0.0