A collection of skill plugins for Claude Code that provide lightweight, context-efficient integrations with external services.
These plugins use HTTP server patterns instead of MCP for lighter-weight integrations. Each plugin runs as a local Express server that Claude interacts with via curl and JSON payloads.
| Plugin | Port | Description | Config |
|---|---|---|---|
| Neon | 9224 | PostgreSQL database management, SQL queries, branches | NEON_API_KEY |
| Linear | 9226 | Issues, projects, teams, cycles, labels | LINEAR_API_KEY |
| Supabase | 9227 | CRUD operations, RPC functions, table introspection | SUPABASE_URL, SUPABASE_SERVICE_KEY |
| Slack | 9228 | Channels, messages, users, reactions, files | SLACK_BOT_TOKEN |
Add the marketplace:
/plugins add https://github.com/valtterivalo/claude-skill-pluginsInstall individual plugins:
/plugins install neon
/plugins install linear
/plugins install supabase
/plugins install slackEach plugin stores its configuration in ~/.config/<plugin>-plugin/.env:
# Neon
mkdir -p ~/.config/neon-plugin
echo "NEON_API_KEY=napi_..." > ~/.config/neon-plugin/.env
# Linear
mkdir -p ~/.config/linear-plugin
echo "LINEAR_API_KEY=lin_api_..." > ~/.config/linear-plugin/.env
# Supabase
mkdir -p ~/.config/supabase-plugin
cat > ~/.config/supabase-plugin/.env << EOF
SUPABASE_URL=https://xxxxx.supabase.co
SUPABASE_SERVICE_KEY=eyJhbG...
EOF
# Slack
mkdir -p ~/.config/slack-plugin
echo "SLACK_BOT_TOKEN=xoxb-..." > ~/.config/slack-plugin/.env┌─────────────────┐ curl + JSON ┌─────────────────┐
│ Claude Code │ ──────────────────────│ Plugin Server │
│ │ localhost:92XX │ (Express) │
└─────────────────┘ └────────┬────────┘
│
│ SDK
▼
┌─────────────────┐
│ External API │
│ (Neon, Slack..) │
└─────────────────┘
All plugins follow the same request pattern:
POST http://localhost:92XX/action
{
"category": "...",
"action": "...",
"params": {...}
}Response format:
{"success": true, "data": {...}}
{"success": false, "error": "..."}plugin-name/
├── README.md # Installation and configuration
└── skills/
└── plugin-name/
├── SKILL.md # API reference for Claude
├── server.sh # Startup script
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
└── src/
├── index.ts # HTTP server
├── *-api.ts # SDK wrapper
├── types.ts # Type definitions
├── validation.ts # Zod schemas
└── errors.ts # Error sanitization
- Credential isolation: API keys stored in
~/.config/, not in plugin directories - Localhost binding: Servers bind to
127.0.0.1only - not exposed to network - Error sanitization: Sensitive info (tokens, URLs) redacted from error messages
- Input validation: All parameters validated with Zod schemas
- SQL safety: Query parameters use parameterized queries
These plugins are designed for per-session use:
- No persistent state between sessions
- No long-running background processes
- Servers start on demand and shutdown cleanly
- No caching or session storage
Once configured, just ask Claude naturally:
- "Show me my Neon projects"
- "Create a Linear issue for the login bug"
- "Query users from Supabase where status is active"
- "Send a Slack message to #general"
Claude will automatically start the appropriate server and make the API calls.
MIT