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

@craftpipe/projectsync-mcp

v1.0.0

Published

<div align="center">

Readme

npm version License: MIT TypeScript Node.js MCP Compatible Tests

ProjectSync is a Model Context Protocol (MCP) server for project management. It integrates with Linear, Jira, GitHub Issues, and Asana through a unified provider interface. Connect it to any MCP-compatible AI client (Claude Desktop, Cursor, Continue) and manage issues, sprints, and workflows directly from your AI assistant.

graph LR
    A["AI Agent"] -->|MCP| B["ProjectSync MCP"]
    B --> C["Linear"]
    B --> D["Jira"]
    B --> E["GitHub Issues"]
    B --> BA["Asana"]
    B --> F["Mock / Demo"]
    C --> G["Issues, Sprints, Labels"]
    D --> G
    E --> G
    F --> G
    style B fill:#0d1117,stroke:#a855f7,stroke-width:2px,color:#a855f7
    style A fill:#1f2937,stroke:#a855f7,color:#f0f6fc

Quick Start

npx projectsync-mcp

Claude Desktop config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

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

Restart Claude Desktop -- all 13 tools (7 free + 6 pro) are now available.

Providers

ProjectSync supports four project management platforms plus a built-in mock provider for demos:

| Provider | Env Vars Required | Notes | |:---------|:------------------|:------| | Mock (default) | None | 25 issues, 3 projects, 2 sprints, 8 labels -- works out of the box | | Linear | LINEAR_API_KEY | GraphQL API, cycles as sprints | | Jira | JIRA_URL, JIRA_EMAIL, JIRA_TOKEN | REST API + Agile API, boards as sprints | | GitHub Issues | GITHUB_TOKEN, GITHUB_OWNER, GITHUB_REPO | REST API, milestones as sprints | | Asana | ASANA_ACCESS_TOKEN, ASANA_WORKSPACE_GID | REST API, sections as sprints |

Set PROJECTSYNC_PROVIDER to linear, jira, github, or asana to select a provider. When not set, the mock provider is used.

graph TD
    A["PROJECTSYNC_PROVIDER"] --> B{Provider?}
    B -->|linear| C["LinearProvider<br/>GraphQL API"]
    B -->|jira| D["JiraProvider<br/>REST + Agile API"]
    B -->|github| E["GitHubProvider<br/>REST API"]
    B -->|asana| G["AsanaProvider<br/>REST API"]
    B -->|not set| F["MockProvider<br/>Demo data"]
    style A fill:#0d1117,stroke:#a855f7,color:#f0f6fc
    style B fill:#1f2937,stroke:#a855f7,color:#f0f6fc

Tools

Free Tools (7)

| Tool | Description | |:-----|:------------| | list_issues | List issues with optional filters: project, status (open/closed/in_progress/backlog), assignee, label, limit | | get_issue | Get a single issue by ID with comments, labels, and assignee details | | create_issue | Create a new issue: title (required), description, project, labels, assignee, priority | | update_issue | Update an existing issue by ID: status, title, description, assignee, labels, priority | | search_issues | Full-text search across all issues with a query string | | list_projects | List all projects/boards with issue counts | | list_labels | List available labels/tags |

Pro Tools (6)

| Tool | Description | |:-----|:------------| | sprint_management | Manage sprints: list, create, update, assign issues to sprint | | bulk_update | Update multiple issues at once with shared changes (status, assignee, labels, priority) | | issue_analytics | Velocity, average cycle time, issues by status/priority, burndown data for a time period | | cross_project_report | Aggregate stats across all projects: total issues, by status, by priority, overdue count | | backlog_grooming | Analyze backlog health: stale issues, unassigned, missing labels, priority suggestions | | workflow_automation | Define automation rules: when status/label changes, auto-assign, add label, set priority |

Architecture

graph TB
    subgraph "MCP Server"
        A["index.ts<br/>13 tools registered"]
        B["provider-factory.ts"]
        C["premium/gate.ts"]
    end

    subgraph "Adapters"
        D["MockProvider"]
        E["LinearProvider"]
        F["JiraProvider"]
        G["GitHubProvider"]
        GA["AsanaProvider"]
    end

    subgraph "Shared"
        H["types.ts"]
        I["fetch-retry.ts"]
        J["mock-data.ts"]
    end

    A --> B
    A --> C
    B --> D
    B --> E
    B --> F
    B --> G
    B --> GA
    E --> I
    F --> I
    G --> I
    D --> J

    style A fill:#0d1117,stroke:#a855f7,stroke-width:2px,color:#a855f7
    style B fill:#161b22,stroke:#a855f7,color:#c084fc
    style C fill:#161b22,stroke:#a855f7,color:#c084fc

Free vs Pro

| Feature | Free | Pro | |:--------|:----:|:---:| | List / get / create / update issues | Yes | Yes | | Full-text search | Yes | Yes | | List projects and labels | Yes | Yes | | Sprint management | -- | Yes | | Bulk update | -- | Yes | | Issue analytics & velocity | -- | Yes | | Cross-project reports | -- | Yes | | Backlog grooming & health score | -- | Yes | | Workflow automation rules | -- | Yes |

Pro license: set the PRO_LICENSE environment variable. Visit craftpipe.dev for pricing.

Environment Variables

| Variable | Description | Required | |:---------|:------------|:---------| | PROJECTSYNC_PROVIDER | Provider: linear, jira, github, asana (default: mock) | No | | LINEAR_API_KEY | Linear API key | When provider=linear | | JIRA_URL | Jira instance URL (e.g. https://company.atlassian.net) | When provider=jira | | JIRA_EMAIL | Jira account email | When provider=jira | | JIRA_TOKEN | Jira API token | When provider=jira | | GITHUB_TOKEN | GitHub personal access token | When provider=github | | GITHUB_OWNER | GitHub organization or username | When provider=github | | GITHUB_REPO | GitHub repository name (single-repo mode) | Optional | | ASANA_ACCESS_TOKEN | Asana personal access token | When provider=asana | | ASANA_WORKSPACE_GID | Asana workspace GID | When provider=asana | | PRO_LICENSE | Pro license key for premium tools | For pro tools |

License

MIT


Built by Craftpipe