Skip to main content
Glama
README.md
# ๐Ÿชธ @patternstack/mcp

PatternStack MCP Server - Crowdsourced package intelligence for AI coding assistants. Like Waze, but for your dependencies.

## Features

- ๐Ÿ”ฎ **Automatic Insights** - Zero prompting required. Insights surface as you code.
- ๐Ÿ” **Framework Detection** - Scans package files to detect your tech stack
- ๐Ÿ›ค๏ธ **Crowdsourced Data** - See what real projects use together
- ๐Ÿ”’ **Security Alerts** - CVE warnings via Dependabot/GitHub Advisory Database
- โšก **Always Current** - 30-day half-life ensures fresh, relevant data

## Quick Start

```bash
npx -y @patternstack/mcp patternstack-v4
```

## Setup

### 1. Get Your API Key

Visit [patternstack.ai/dashboard/keys](https://patternstack.ai/dashboard/keys) and generate an API key.

### 2. Add to Your MCP Config

**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "patternstack": {
      "command": "npx",
      "args": ["-y", "@patternstack/mcp", "patternstack-v4"],
      "env": {
        "PATTERNSTACK_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

**Workspace API keys**: add your user ID so PatternStack can verify workspace membership on each request:

```json
{
  "mcpServers": {
    "patternstack": {
      "command": "npx",
      "args": ["-y", "@patternstack/mcp", "patternstack-v4"],
      "env": {
        "PATTERNSTACK_API_KEY": "ps_ws_...",
        "PATTERNSTACK_CLERK_USER_ID": "user_..."
      }
    }
  }
}
```

**Claude Code** (`~/.claude/settings.json`):

```json
{
  "mcpServers": {
    "patternstack": {
      "command": "npx",
      "args": ["-y", "@patternstack/mcp", "patternstack-v4"],
      "env": {
        "PATTERNSTACK_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

### 3. Run init

After restarting your AI assistant, type:

```
init
```

This verifies your API key, detects your tech stack, and confirms everything is working.

## API Key Configuration

The MCP client looks for API keys in this order (first found wins):

| Priority | Source               | Description                                      |
| -------- | -------------------- | ------------------------------------------------ |
| 1        | Environment Variable | `PATTERNSTACK_API_KEY` in MCP config               |
| 2        | `.patternstack` file   | JSON file in project root: `{ "apiKey": "..." }` |
| 3        | `.env` file          | `PATTERNSTACK_API_KEY=...` in project `.env`       |
| 4        | Global config        | `~/.patternstackrc` with `{ "apiKey": "..." }`     |

**Free includes full MCP access**: Free accounts get full MCP access with 500 requests/day. Workspace (1,000/day) and Premium (5,000/day) tiers offer higher limits for teams.

**Workspace keys require a user ID**: set `PATTERNSTACK_CLERK_USER_ID` (or `PATTERNSTACK_USER_ID`) in your MCP config env so PatternStack can verify youโ€™re still an active workspace member.

**Best Practice:** Use environment variable in MCP config for security. Never commit API keys to version control.

## MCP Tools

| Tool                      | Description                                                       | Tier       |
| ------------------------- | ----------------------------------------------------------------- | ---------- |
| `init`                    | Initialize PatternStack, validate API key, auto-discover config     | Workspace+ |
| `scan_project`            | Full scan with framework detection, security, and recommendations | Workspace+ |
| `patternstack_analyze`      | Quick local analysis without persisting                           | Workspace+ |
| `patternstack_alternatives` | Find alternatives to a package with adoption stats                | Workspace+ |
| `patternstack_security`     | Check for security vulnerabilities                                | Workspace+ |
| `patternstack_trends`       | Get trending packages in an ecosystem                             | Workspace+ |
| `patternstack_insights`     | Get suggestions Claude should offer you (collaborative)           | Workspace+ |
| `search_packages`         | Search packages by name or category with trend/health data        | Workspace+ |
| `compare_packages`        | Compare multiple packages with scores and recommendations         | Workspace+ |
| `migration_guide`         | Get migration guidance for deprecated/declining packages          | Premium    |
| `ai_insight`              | AI-powered package explanations and recommendations               | Premium    |

**Note:** Framework parameters only accept Tier 1 application frameworks (Next.js, Django, Rails, etc.), not UI libraries (React, Vue). For React projects, use `next`, `remix`, or `gatsby` as the framework.

## How It Works

```
Real Projects โ†’ Package Files โ†’ Co-occurrence Counts โ†’ Temporal Weighting โ†’ Recommendations
              (Empirical)       (Crowdsourced)         (Time-decay)         (Data-driven)
```

**No AI/ML** - Pure statistics from real project data:

- `PackageCooccurrence` table stores actual counts from real projects
- 30-day half-life decay weights recent data more heavily
- Adoption rates are real: `count / totalProjectsWithA`

## Supported Ecosystems

- JavaScript/TypeScript (npm)
- Python (PyPI)
- Go (go.mod)
- Rust (Cargo)
- Ruby (Bundler)
- PHP (Composer)
- Elixir (Hex)
- Java/Kotlin (Maven)
- C#/.NET (NuGet)
- Dart/Flutter (Pub)
- Swift (SwiftPM)

## Development

```bash
cd packages/mcp-server
npm install
npm run build
npm run dev
```

## License

MIT

TDQS

B3.3/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between dependency.explain and dependency.health, as both provide health-related information about packages, which could cause confusion. Otherwise, tools like architecture.evaluate and stack.recommend are clearly differentiated.

Naming Consistency5/5

All tool names follow a consistent dot-separated pattern (e.g., architecture.evaluate, dependency.alternatives) with clear category prefixes, making them predictable and easy to understand. There are no deviations in naming style across the set.

Tool Count5/5

With 10 tools, the count is well-scoped for a package and stack management server, covering key areas like dependency analysis, stack recommendations, and architecture evaluation without being overwhelming or insufficient.

Completeness4/5

The tool set provides comprehensive coverage for package and stack management, including evaluation, recommendations, and validation. A minor gap is the lack of tools for directly modifying or applying changes (e.g., implementing recommendations), but core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues