@diamondsg/contextsync-mcp
v1.0.1
Published
MCP server for Claude Code that auto-loads your Linear tickets into every session
Downloads
221
Maintainers
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-mcpStep 2 — Authenticate with Linear
contextsync auth linear --token lin_api_xxxxxxxxxxxxxxxxGet 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 logoutPricing
| | 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-sourceTest the MCP server directly:
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node $(npm root -g)/contextsync-mcp/src/server.jsSecurity
- 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
