MCP Hub
Back to servers

mcp-servers

A privacy-first collection of local MCP servers that connect Claude to tools like Linear, Notion, GitHub, and local databases (Postgres, SQLite) without sending data to external servers.

Stars
2
Updated
Jan 4, 2026
Validated
Jan 9, 2026

MCP Servers

MCP Servers

Privacy-first MCP servers that never phone home

npm License Stars pulselab.cc

Connect Claude to your tools without sacrificing privacy.
All servers run 100% locally. Your data stays yours.


Demo

MCP Servers Demo

# Ask Claude about your Linear issues
> "What bugs are assigned to me?"

# Query your local Postgres database
> "Show me users who signed up this week"

# Search your Obsidian vault
> "Find my notes about authentication"

Install in 30 Seconds

npx mcp-servers-cli init

That's it. The CLI will:

  1. Detect which tools you use (Linear, Notion, Obsidian, etc.)
  2. Walk you through API key setup
  3. Auto-configure Claude Code

Or install manually:

npm install -g mcp-servers-cli

# Add a specific server
mcp-servers add linear
mcp-servers add postgres
mcp-servers add obsidian

Available Servers

ServerDescriptionTypeInstall
linearIssue tracking & project managementCloudmcp-servers add linear
postgresQuery PostgreSQL databasesLocalmcp-servers add postgres
notionSearch & create Notion pagesCloudmcp-servers add notion
obsidianSearch your local Obsidian vaultLocalmcp-servers add obsidian
sqliteQuery local SQLite databasesLocalmcp-servers add sqlite
githubAccess repos, issues, and PRsCloudmcp-servers add github
filesystemRead and search local filesLocalmcp-servers add filesystem

Why These Servers?

Privacy by Default

Every server runs locally on your machine. We never:

  • Send your data to external servers
  • Require account creation
  • Phone home for analytics

Your Linear issues, database queries, and Obsidian notes stay on your computer.

Batteries Included

Other MCP servers make you:

  • Clone repos and build from source
  • Manually edit JSON config files
  • Figure out dependencies yourself

We give you one command and you're done.

Production Ready

  • Full TypeScript with strict types
  • Comprehensive error handling
  • Rate limiting built-in
  • Works with Claude Code, Cursor, Continue, and any MCP client

Quick Examples

Linear: Manage Issues

You: "What issues are in the current sprint?"
Claude: I found 12 issues in Sprint 24:
        - AUTH-142: Fix login redirect (In Progress)
        - AUTH-143: Add 2FA support (Todo)
        ...

You: "Create a bug for the header alignment issue"
Claude: Created issue AUTH-156: "Header alignment issue"
        Priority: Medium, Status: Backlog

Postgres: Query Your Database

You: "How many users signed up this month?"
Claude: I ran: SELECT COUNT(*) FROM users WHERE created_at > '2026-01-01'
        Result: 1,247 new users this month

You: "Show me the schema for the orders table"
Claude: orders table:
        - id: uuid (primary key)
        - user_id: uuid (foreign key → users)
        - total: decimal(10,2)
        - status: varchar (pending/paid/shipped)
        - created_at: timestamp

Obsidian: Search Your Notes

You: "Find my notes about React patterns"
Claude: Found 3 relevant notes:
        1. React/Component Patterns.md - compound components, render props
        2. React/State Management.md - Redux vs Zustand comparison
        3. Projects/App Refactor.md - mentions React context patterns

You: "What did I write about authentication last week?"
Claude: From your daily notes (Jan 2-4):
        - Researched OAuth 2.0 PKCE flow
        - Decided on NextAuth.js for the project
        - TODO: Set up Google provider

GitHub: Manage Repos & Issues

You: "What PRs need my review?"
Claude: Found 3 open PRs requesting your review:
        #142 - Add dark mode support (from @alex)
        #139 - Fix memory leak in worker (from @sam)
        #138 - Update dependencies (from dependabot)

You: "Create an issue for the login bug"
Claude: Created issue #156: "Login redirect fails on Safari"
        https://github.com/myorg/app/issues/156

SQLite: Query Local Databases

You: "What tables are in the analytics database?"
Claude: Found 5 tables:
        - events (1.2M rows) - user events with timestamps
        - sessions (89K rows) - session tracking
        - users (12K rows) - user profiles
        ...

You: "Show me the top pages by views"
Claude: SELECT page, COUNT(*) as views FROM events
        WHERE type = 'pageview' GROUP BY page ORDER BY views DESC

        /dashboard    45,231
        /settings     12,847
        /profile       8,392

Filesystem: Read & Search Files

You: "Find all TypeScript files with 'auth' in the name"
Claude: Found 8 files matching **/*auth*.ts:
        src/lib/auth.ts
        src/middleware/authMiddleware.ts
        src/hooks/useAuth.ts
        ...

You: "Search for TODO comments in the src folder"
Claude: Found 12 TODOs:
        src/api/users.ts:42 - TODO: Add rate limiting
        src/components/Form.tsx:89 - TODO: Validate email format
        ...

Configuration

Auto-Configuration (Recommended)

npx mcp-servers-cli init

Manual Configuration

Add to ~/.claude/mcp.json:

{
  "servers": {
    "linear": {
      "command": "mcp-servers",
      "args": ["run", "linear"],
      "env": {
        "LINEAR_API_KEY": "lin_api_xxxxx"
      }
    },
    "postgres": {
      "command": "mcp-servers",
      "args": ["run", "postgres"],
      "env": {
        "POSTGRES_URL": "postgresql://localhost:5432/mydb"
      }
    },
    "obsidian": {
      "command": "mcp-servers",
      "args": ["run", "obsidian"],
      "env": {
        "OBSIDIAN_VAULT": "~/Documents/MyVault"
      }
    }
  }
}

Environment Variables

ServerVariableDescription
linearLINEAR_API_KEYGet your API key
postgresPOSTGRES_URLPostgreSQL connection string
notionNOTION_API_KEYCreate integration
obsidianOBSIDIAN_VAULTPath to your vault folder
sqliteSQLITE_PATHPath to SQLite database file
githubGITHUB_TOKENCreate token
filesystemFS_ROOTRoot directory to allow access to

Rate Limiting

API-based servers include built-in rate limiting to prevent accidental quota exhaustion. Default: 30 requests/minute.

ServerVariableDefault
linearLINEAR_RATE_LIMIT30/min
notionNOTION_RATE_LIMIT30/min
githubGITHUB_RATE_LIMIT30/min

To adjust limits:

{
  "servers": {
    "github": {
      "command": "mcp-servers",
      "args": ["run", "github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxx",
        "GITHUB_RATE_LIMIT": "60"
      }
    }
  }
}

Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│                          Claude / Cursor / IDE                              │
└─────────────────────────────────┬───────────────────────────────────────────┘
                                  │ MCP Protocol
┌─────────────────────────────────▼───────────────────────────────────────────┐
│                            mcp-servers-cli                                  │
│                                                                             │
│   Cloud Servers              Local Servers                                  │
│   ┌────────┐ ┌────────┐      ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐  │
│   │ Linear │ │ Notion │      │Postgres│ │Obsidian│ │ SQLite │ │  Files │  │
│   └───┬────┘ └───┬────┘      └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘  │
│       │          │               │          │          │          │        │
│   ┌───┴────┐     │               │          │          │          │        │
│   │ GitHub │     │               │          │          │          │        │
│   └───┬────┘     │               │          │          │          │        │
└───────┼──────────┼───────────────┼──────────┼──────────┼──────────┼────────┘
        │          │               │          │          │          │
        ▼          ▼               ▼          ▼          ▼          ▼
   External     External        Local      Local      Local      Local
     APIs         APIs         Database    Vault     Database   Filesystem

All processing happens locally. API calls go directly from your machine to the service—we're never in the middle.


Development

# Clone and install
git clone https://github.com/joshduffy/mcp-servers.git
cd mcp-servers
npm install

# Build all servers
npm run build

# Run a specific server in dev mode
npm run dev --workspace=servers/linear-mcp

# Run tests
npm test

Creating a New Server

# Scaffold a new server
npm run create-server my-server

# This creates:
# servers/my-server-mcp/
# ├── src/
# │   ├── index.ts      # Entry point
# │   ├── tools.ts      # Tool definitions
# │   └── client.ts     # API client
# ├── package.json
# └── tsconfig.json

Contributing

We welcome contributions! Areas we'd love help with:

  • New servers: Todoist, Cal.com, Raycast, Slack, Discord
  • Improvements: Better error messages, more tools per server
  • Documentation: Tutorials, video guides

See CONTRIBUTING.md for guidelines.


Comparison

Featuremcp-servers-cliOther MCP Servers
One-command installnpx init❌ Clone + build
Auto-configuration✅ Detects your tools❌ Manual JSON editing
Privacy-first✅ 100% local⚠️ Varies
Multiple servers✅ Bundled together❌ Separate repos
TypeScript✅ Full types⚠️ Varies
Maintained✅ Active⚠️ Many abandoned

Links


Built with care by pulselab.cc

Reviews

No reviews yet

Sign in to write a review