Installation Guide

Get up and running with Plugged.in quickly. Choose between using our hosted platform or self-hosting the application.
πŸš€ Recommended: Use Plugged.in Cloud for the fastest setup with zero configuration. The cloud version is fully managed, always up-to-date, and includes all features out of the box.
The fastest way to get started is using our hosted platform at plugged.in. No installation required!
1

Sign Up

Create your account at plugged.in/register
2

Configure MCP Proxy

Install the MCP proxy following the instructions in your dashboard
3

Add MCP Servers

Browse and add servers from the registry or configure your own
4

Connect Your Client

Use the generated configuration with Claude, Cursor, or other MCP clients

Self-Hosting

For organizations that prefer to host their own instance, follow these comprehensive steps.

Prerequisites

System Requirements

  • Node.js 18+ or 20+
  • PostgreSQL 15+
  • 2GB+ RAM
  • 10GB+ storage

Optional Services

  • Redis (for caching)
  • SMTP server (for emails)
  • S3-compatible storage

Installation Steps

1. Clone the Repositories

git clone https://github.com/VeriTeknik/pluggedin-app.git
cd pluggedin-app

2. Install Dependencies

3. Configure Environment Variables

Create a .env file in the pluggedin-app directory based on .env.example:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/pluggedin"
DATABASE_SSL=false                     # Set to true for production
DATABASE_SSL_REJECT_UNAUTHORIZED=false # Set to false for self-signed certs

# Authentication
NEXTAUTH_URL="http://localhost:12005"
NEXTAUTH_SECRET="your-secret-key-here" # Generate with: openssl rand -base64 32
NEXT_PUBLIC_APP_URL="http://localhost:12005"

# Encryption (REQUIRED for MCP server configs)
NEXT_SERVER_ACTIONS_ENCRYPTION_KEY="" # Generate with: openssl rand -base64 32

# Feature Flags
ENABLE_RAG=true                    # Enable document processing
ENABLE_NOTIFICATIONS=true          # Enable notification system
ENABLE_EMAIL_VERIFICATION=false    # Email verification for new users
Security Requirements:
  1. Generate unique secrets for each key using openssl rand -base64 32
  2. Never commit actual keys to version control
  3. Use different keys for NEXTAUTH_SECRET and UNSUBSCRIBE_TOKEN_SECRET
  4. Enable SSL for production database connections
Quick secret generation commands:
# Generate all required secrets at once
echo "NEXTAUTH_SECRET=$(openssl rand -base64 32)"
echo "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY=$(openssl rand -base64 32)"
echo "UNSUBSCRIBE_TOKEN_SECRET=$(openssl rand -base64 32)"
echo "REGISTRY_INTERNAL_API_KEY=$(openssl rand -base64 32)"

4. Set Up Database

# Create database
createdb pluggedin

# Run migrations
cd pluggedin-app
pnpm db:migrate

# Optional: Run auth migrations
pnpm db:migrate:auth

5. Start the Applications

# Terminal 1: Web application
cd pluggedin-app
pnpm dev

# Terminal 2: MCP Proxy
cd pluggedin-mcp
npm run dev
The application will be available at:
  • Web Interface: http://localhost:12005
  • MCP Proxy: http://localhost:3000

Docker Installation

For containerized deployment, use our Docker setup.

Using Docker Compose

version: '3.8'

services:
  postgres:
    image: postgres:15
    environment:
      POSTGRES_DB: pluggedin
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  app:
    build: ./pluggedin-app
    environment:
      DATABASE_URL: postgresql://postgres:postgres@postgres:5432/pluggedin
      NEXTAUTH_URL: http://localhost:12005
      NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
    ports:
      - "12005:12005"
    depends_on:
      - postgres

  mcp-proxy:
    build: ./pluggedin-mcp
    environment:
      PLUGGEDIN_API_KEY: ${PLUGGEDIN_API_KEY}
    ports:
      - "3000:3000"
    depends_on:
      - app

volumes:
  postgres_data:
Start with:
docker-compose up -d

Individual Docker Containers

# Build web application
cd pluggedin-app
docker build -t pluggedin-app .

# Build MCP proxy
cd pluggedin-mcp
docker build -t pluggedin-mcp .

MCP Client Configuration

After installation, configure your MCP client to use Plugged.in.

Claude Desktop

Add to your Claude configuration file:
Location: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pluggedin": {
      "command": "node",
      "args": ["/path/to/pluggedin-mcp/dist/index.js"],
      "env": {
        "PLUGGEDIN_API_KEY": "your-api-key"
      }
    }
  }
}

Other MCP Clients

Most MCP clients support similar configuration. Key points:
  • Command: node or npx
  • Script: Path to pluggedin-mcp/dist/index.js
  • API Key: Your Plugged.in API key

Verification

Verify your installation is working:
1

Check Web Interface

Navigate to http://localhost:12005 and verify the page loads
2

Test Database

cd pluggedin-app
pnpm db:migrate
3

Verify MCP Proxy

curl http://localhost:3000/health
4

Test MCP Connection

Open your MCP client and verify it connects to Plugged.in

Troubleshooting

Next Steps

Support

Need help? We’re here to assist: