# Pluggedin App

> The Crossroads for AI Data Exchanges. A unified, self-hostable web interface for discovering, configuring, and managing Model Context Protocol (MCP) servers—bringing together AI tools, workspaces, prompts, and logs from multiple MCP sources (Claude, Cursor, etc.) under one roof.

- **Type:** MCP server
- **Install:** `agentstack add mcp-veriteknik-pluggedin-app`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [VeriTeknik](https://agentstack.voostack.com/s/veriteknik)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [VeriTeknik](https://github.com/VeriTeknik)
- **Source:** https://github.com/VeriTeknik/pluggedin-app
- **Website:** https://plugged.in

## Install

```sh
agentstack add mcp-veriteknik-pluggedin-app
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# plugged.in 🔌

**Turn your AI conversations into permanent organizational memory**

[](https://github.com/VeriTeknik/pluggedin-app/releases)
[](https://github.com/VeriTeknik/pluggedin-app/stargazers)
[](LICENSE)
[](https://hub.docker.com/r/veriteknik/pluggedin)

[🚀 Get Started](#-quick-start) • [📚 Documentation](#-documentation) • [🌟 Features](#-key-features) • [💬 Community](#-community--support)

---
🧩 **Now Multi‑Arch Ready!**
Plugged.in Docker images support both `amd64` and `arm64` architectures via a unified manifest.
🧠 **v3.0.0 — Embedded RAG Vector Engine:**
RAG now runs fully in-process using zvec (RocksDB + HNSW). No external services needed — document processing, chunking, and semantic search are all built-in.
---

## 🎯 The Problem We Solve

Every day, you have brilliant conversations with AI - strategy sessions with GPT-4, code reviews with Claude, analysis with Gemini. But when you close that chat window, all that knowledge vanishes. **This is the "AI knowledge evaporation" problem.**

## 💡 The Solution

**plugged.in is the world's first AI Content Management System (AI-CMS)** - a platform that transforms ephemeral AI interactions into persistent, versioned, and searchable organizational knowledge.

Think of it as **"Git for AI-generated content"** meets **"WordPress for AI interactions"**.

---

## ✨ What Makes plugged.in Special

### 🧠 **AI Memory That Persists**
Your AI conversations become permanent assets. Every document is versioned, attributed, and searchable.

### 🤝 **Multi-Model Collaboration**
Claude writes v1, GPT-4 adds technical specs in v2, Gemini refines in v3 - all tracked and attributed.

### 🔌 **Universal MCP Integration**
Works with 1,500+ MCP servers. Connect any tool, any AI, any workflow - all through one interface.

### 🔒 **Enterprise-Grade Security**
End-to-end encryption, OAuth 2.1, rate limiting, and sandboxed execution for your peace of mind.

---

## 📊 Real Platform Statistics

```yaml
Documents Managed: 90+ (72% AI-generated)
Integrated MCP Servers: 1,568
Active Versioning: Documents with up to 4 iterations
Model Attributions: 17 different AI models tracked
RAG Engine: Embedded zvec (RocksDB + HNSW) — zero external dependencies
Search Performance: Sub-second semantic search with cosine similarity
Security: AES-256-GCM encryption, Redis rate limiting
```

---

## 🚀 Quick Start

### Docker (Recommended - 2 minutes)

#### **Self-hosting builds the image locally**

The default `docker-compose.yml` **builds the app image from source** (`./Dockerfile`) for your platform. There is intentionally **no prebuilt self-host image**: the embedded **zvec** vector engine needs build-time flags/bindings that a generic registry image can't carry, so the image is compiled locally with the right `supportedArchitectures` configuration.

> The first `docker compose up --build` takes roughly **10–15 minutes** (installing dependencies + `next build`). Subsequent starts are instant — the image is cached. Requirements: Docker with BuildKit (Docker Desktop, or `docker buildx`) and **at least ~8 GB of memory allotted to the Docker engine** — `next build` is memory-hungry and will abort with "JavaScript heap out of memory" on smaller limits (raise it in Docker Desktop → Settings → Resources).

```bash
# Clone and setup
git clone https://github.com/VeriTeknik/pluggedin-app.git
cd pluggedin-app
cp .env.example .env
# Edit .env and set at minimum NEXTAUTH_SECRET (generate one with:
#   openssl rand -base64 32
# ). The bundled PostgreSQL/Redis URLs already work out of the box.

# Build the app image and start the full stack (PostgreSQL 18 + pgvector,
# Redis, one-shot migration, then the app):
docker compose up --build -d

# Follow startup (migration runs first, then the app becomes healthy):
docker compose logs -f pluggedin-app

# Visit http://localhost:12005
```

Useful commands:
```bash
docker compose ps                       # service status
docker compose run --rm pluggedin-migrate   # re-run database migrations
docker compose down                     # stop (keeps data)
docker compose down -v                  # stop + wipe all volumes
```

> **Production / hosted deployments use a different file** — this `docker-compose.yml` is the self-host default, not the production stack:
> - `docker-compose.production.yml` — pulls the prebuilt `veriteknik/pluggedin` image (the hosted/cloud build)
> - `infra/docker-compose.yml` — the Traefik + SOPS production stack used by plugged.in

**What's included:**
- ✅ PostgreSQL 18 with pgvector extension for vector search
- ✅ Redis 7 for rate limiting / caching
- ✅ Embedded zvec vector engine for RAG (no external Milvus/Qdrant needed)
- ✅ Next.js 15 web application with optimized production build
- ✅ Persistent volumes for database, uploads, vectors, and logs
- ✅ Health checks and automatic restarts

**Docker Architecture:**
```yaml
Services:
  - pluggedin-migrate:  One-shot DB migration; reuses the app image, then exits
  - pluggedin-app:      Main web application (host port 12005 → container 3000),
                        starts only after migration completes successfully
  - pluggedin-postgres: PostgreSQL 18 + pgvector database (port 5432)
  - pluggedin-redis:    Redis 7 (port 6379)

Volumes:
  - pluggedin-postgres: Database data (persistent)
  - pluggedin-redis:    Redis append-only data (persistent)
  - zvec-data:          Vector collections (persistent)
  - app-uploads:        User uploaded files (persistent)
  - app-logs:           Application logs (persistent)
  - mcp-cache:          MCP package cache (persistent)
```

**Upgrading from older versions:**
```bash
# If upgrading from PostgreSQL 16 or earlier
# Option 1: Fresh start (data loss)
docker compose down -v && docker compose up --build -d

# Option 2: Migrate existing data
docker exec pluggedin-postgres pg_dump -U pluggedin pluggedin > backup.sql
docker compose down -v
docker compose up -d
docker exec -i pluggedin-postgres psql -U pluggedin -d pluggedin 

### Architecture Overview

plugged.in acts as **the central hub** connecting various AI clients, development tools, and programming languages with your knowledge base and the broader MCP ecosystem. The architecture is designed for maximum flexibility and extensibility.

### 🟢 Production-Ready Integrations (Solid Lines)

#### **MCP Proxy Interface**
The MCP Proxy serves as a unified gateway that aggregates multiple MCP servers into a single interface:

- **Claude Code** - Official Anthropic CLI for Claude with native MCP support
- **Cline** - VS Code extension for AI-assisted development
- **LM Studio** - Local model execution with MCP integration
- **Claude Desktop** - Anthropic's desktop application

**How it works**: Each AI client connects via STDIO, receiving access to all your configured MCP servers through one connection. The proxy handles:
- Tool prefixing to prevent namespace conflicts
- OAuth authentication for MCP servers
- Activity logging and notifications
- Unified error handling

#### **SDK Support - Multi-Language Integration**
Direct programmatic access through official SDKs:

- **JavaScript/TypeScript SDK** (`@pluggedin/sdk`) - Full-featured SDK for Node.js and browser
- **Python SDK** (`pluggedin-sdk`) - Pythonic interface for AI workflows
- **Go SDK** (`pluggedin-go`) - High-performance Go implementation

**Use Cases**:
```javascript
// Create documents programmatically
const doc = await client.documents.create({
  title: "API Analysis",
  content: "...",
  source: "api"
});

// Query RAG knowledge base
const results = await client.rag.query("How do we handle auth?");
```

#### **Platform Core Features**
The plugged.in web platform provides:

1. **Knowledge Base (Embedded RAG)**
   - In-process vector search via zvec (RocksDB + HNSW) — no external services
   - Automatic PDF/text chunking, embedding, and indexing
   - Project-scoped isolation with per-field filter validation
   - Sub-second cosine similarity search

2. **Document Store**
   - Version control for AI-generated content
   - Multi-model attribution tracking
   - Content hash deduplication
   - Support for uploads, AI-generated, and API sources

3. **MCP Registry**
   - 1,500+ curated MCP servers
   - GitHub verification and claiming
   - Install tracking and trending
   - Auto-discovery from npm, GitHub, Smithery

4. **Tools Management**
   - Discover tools from all connected servers
   - Test tools in interactive playground
   - Custom instructions per server
   - Real-time debugging logs

### 🟡 In Development (Dashed Lines)

#### **Native Connectors**
Direct integrations bypassing the MCP Proxy for enhanced performance:

- **Plugged.in Connector for Claude Desktop** - Native plugin architecture
- **Plugged.in Connector for ChatGPT** - OpenAI plugin integration
- **Mobile App** - iOS and Android native apps

**Why Native Connectors?**
- Faster response times (no proxy overhead)
- Richer UI integration
- Platform-specific features
- Offline capabilities

#### **Advanced Memory System**
Persistent memory across sessions:

- **Knowledge + Memory** boxes in the diagram represent:
  - Session continuity across different AI clients
  - Automatic context injection based on conversation history
  - Cross-model memory sharing (Claude remembers what GPT discussed)
  - Smart context pruning to stay within token limits

**Example Workflow**:
1. Discuss architecture with Claude Desktop → Memory saved
2. Switch to ChatGPT connector → Previous context automatically available
3. Mobile app accesses same conversation history
4. RAG provides relevant documents automatically

### 📊 Data Flow Example

**User Request Flow**:
```
1. User asks question in Claude Desktop
2. MCP Proxy receives request
3. Proxy checks RAG for relevant context
4. Combines context + user question
5. Routes to appropriate MCP servers
6. Aggregates responses
7. Logs activity to database
8. Returns enriched response to user
```

**Document Creation Flow**:
```
1. AI generates document via SDK or user uploads PDF/text
2. Content processed, chunked, and sanitized
3. Model attribution recorded
4. Version created in Document Store
5. Chunks stored in PostgreSQL, embeddings indexed in zvec
6. Document searchable immediately via semantic search
```

### 🔒 Security Architecture

All connections use:
- **End-to-end encryption** (AES-256-GCM)
- **Per-profile encryption keys** (workspace isolation)
- **Redis rate limiting** with memory fallback
- **Sandboxed execution** (Firejail on Linux)
- **OAuth 2.1** for external services

### 📈 Scalability

The architecture supports:
- **Horizontal scaling** of MCP Proxy instances
- **Database connection pooling** for PostgreSQL
- **Redis caching** for frequently accessed data
- **CDN integration** for static assets
- **Background job processing** for heavy operations

---

## 📚 Documentation

Visit our comprehensive documentation at [docs.plugged.in](https://docs.plugged.in)

### For Users
- [Getting Started](https://docs.plugged.in/introduction) - Platform overview and quick start
- [Installation Guide](https://docs.plugged.in/quickstart/installation) - Step-by-step setup instructions
- [Document Library](https://docs.plugged.in/platform/document-library) - Managing your AI knowledge base
- [RAG Knowledge Base](https://docs.plugged.in/tutorials/rag-knowledge-base) - Setting up RAG for AI context
- [Team Collaboration](https://docs.plugged.in/tutorials/team-collaboration) - Working with your team

### For Developers
- [API Reference](https://docs.plugged.in/api/reference) - Complete API documentation
- [API Authentication](https://docs.plugged.in/api/authentication) - API key and authentication guide
- [Self-Hosting Guide](https://docs.plugged.in/tutorials/self-hosting) - Deploy your own instance
- [Docker Deployment](https://docs.plugged.in/deployment/docker) - Container-based deployment
- [Security Overview](https://docs.plugged.in/security/overview) - Security best practices

### MCP Integration
- [MCP Proxy Overview](https://docs.plugged.in/mcp-proxy/overview) - Understanding the proxy architecture
- [MCP Proxy Installation](https://docs.plugged.in/mcp-proxy/installation) - Setting up the proxy
- [Custom MCP Servers](https://docs.plugged.in/tutorials/custom-mcp-server) - Building your own servers

---

## 🛠️ Installation Options

### Requirements
- Node.js 18+ (20+ recommended)
- PostgreSQL 15+ (18+ recommended)
- Redis (optional, for rate limiting)
- Docker & Docker Compose (for containerized deployment)

### Environment Variables

Create a `.env` file with:

```bash
# Core (Required)
DATABASE_URL=postgresql://user:pass@localhost:5432/pluggedin
NEXTAUTH_URL=http://localhost:12005
NEXTAUTH_SECRET=your-secret-key # Generate: openssl rand -base64 32

# Security (Required)
NEXT_SERVER_ACTIONS_ENCRYPTION_KEY= # Generate: openssl rand -base64 32

# Features (Optional)
ENABLE_RAG=true
ENABLE_NOTIFICATIONS=true
ENABLE_EMAIL_VERIFICATION=true
REDIS_URL=redis://localhost:6379  # For Redis rate limiting

# RAG / Vector Search
ZVEC_DATA_PATH=./data/vectors     # Path to zvec collection files
EMBEDDING_MODEL=                   # OpenAI model (default: text-embedding-3-small)
RAG_SEARCH_TOP_K=5                 # Chunks returned per query
RAG_CACHE_TTL_MS=60000             # Storage stats cache TTL

# Email (For notifications)
EMAIL_SERVER_HOST=smtp.example.com
EMAIL_SERVER_PORT=587
EMAIL_FROM=noreply@example.com
```

### Manual Installation

```bash
# Install dependencies
pnpm install

# Setup database
pnpm db:migrate:auth
pnpm db:generate
pnpm db:migrate

# Build for production
NODE_ENV=production pnpm build

# Start the server
pnpm start
```

---

## 🔌 MCP Proxy Integration

Connect your AI clients to plugged.in:

### Claude Desktop

```json
{
  "mcpServers": {
    "pluggedin": {
      "command": "npx",
      "args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
      "env": {
        "PLUGGEDIN_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}
```

### Cursor IDE

```bash
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
```

---

## 🎯 Use Cases

### For Developers
- **Code Review Memory**: Keep AI code reviews across sessions
- **Documentation Generation**: Auto-generate and version technical docs
- **Bug Analysis Archive**: Store AI debugging sessions for future reference

### For Teams
- **Knowledge Base**: Build institutional memory from AI interactions
- **Meeting Summaries**: AI-generated summaries with full attribution
- **Strategy Documents**: Collaborative AI-assisted planning with version control

### For Enterprises
- **Compliance Tracking**: Full audit trail of AI-generated content
- **Multi-Model Workflows**: Orchestrate different AIs for complex tasks
- **Secure Deployment**: Self-host with complete data control

---

## 📊 Why Teams Choose plugged.in

| Feature | plugged.in | Traditional AI Chat | MCP Clients Alone |
|---------|------------|-------------------|-------------------|
| Persistent Memory | ✅ Full versioning | ❌ Session only | ❌ No storage |
| Multi-Model Support | ✅ All models | ⚠️ Single vendor | ✅ Multiple |
| Document Management | ✅ Complete CMS | ❌ None | ❌ None |
| Attribution Tracking | ✅ Full audit trail | ❌ None | ❌ None |
| Team Collaboration | ✅ Built-in | ❌ None | ❌ Limited |
| Self-Hostable | ✅ Yes | ⚠️ Varies | ✅ Yes |
| RAG Integration | ✅ Native | ⚠️ Limited | ❌ None |

---

## 🤝 Community & Support

- **GitHub Discussions**: [Join the conversation](https://github.com/orgs/VeriTeknik/discussions)
- **GitHub Issues**: [Bug reports and feature requests](https://github.com/VeriTeknik/pluggedin-app/issues)
- **Reddit**: [r/plugged_in](https://www.reddit.com/r/plugged_in/)
- **Twitter/X**: [@PluggedIntoAI](https://x.com/PluggedIntoAI)
- **Email**: team@plugged.in

### Contributing

We love contributions! See our [Contributing Guide](CONTRIBUTING.md) for details.

```bash
# Fork the repo, then:
git clone https://github.com/YOUR_USERNAME/pluggedin-app.git
cd pluggedin-app
pnpm install
pn

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [VeriTeknik](https://github.com/VeriTeknik)
- **Source:** [VeriTeknik/pluggedin-app](https://github.com/VeriTeknik/pluggedin-app)
- **License:** MIT
- **Homepage:** https://plugged.in

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-veriteknik-pluggedin-app
- Seller: https://agentstack.voostack.com/s/veriteknik
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
