Skip to content

VeriTeknik/registry-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Registry Proxy

Version License PostgreSQL

Overview

Enhanced MCP Registry Proxy with PostgreSQL backend, rating system, and admin synchronization with the official MCP Registry at registry.modelcontextprotocol.io.

🎯 What's New in v1.0.0

✨ Major Features

  • PostgreSQL Migration: Complete migration from MongoDB to PostgreSQL for better performance and ACID compliance
  • Rating & Review System: 5-star ratings and written reviews for MCP servers
  • Admin Sync: Synchronize with official registry.modelcontextprotocol.io
  • Security Hardening: SQL injection prevention, input validation, authentication middleware
  • Enhanced Admin UI: Server management, status control, search & filter, pagination
  • Performance Optimizations: Database indexes, connection pooling, efficient caching

See CHANGELOG for complete release notes.

Directory Structure

.
├── proxy/                   # Main proxy service (Go)
├── admin/                   # Admin web interface (Go + JavaScript)
├── main/                    # Deployment infrastructure
│   ├── docker-compose.yml   # PostgreSQL, Traefik, services
│   └── enhancement_schema.sql # Database schema
├── registry/                # Upstream MCP Registry (submodule)
└── docs/                    # Documentation

Active Services

1. Main Infrastructure (/main)

The central deployment directory containing:

  • docker-compose.yml: Core infrastructure services

    • Traefik (reverse proxy with SSL)
    • PostgreSQL (primary database)
    • Proxy Service (Enhanced MCP Registry API)
    • Admin Service (Management interface)
  • Scripts:

    • start-all.sh - Starts all services
    • stop-all.sh - Stops all services
  • Configuration:

    • traefik/acme.json - Let's Encrypt SSL certificates

2. MCP Registry (/registry)

Clean fork of the official MCP registry from modelcontextprotocol/registry.

  • Purpose: Provides the official registry API
  • Modifications: Minimal, to stay compatible with upstream
  • API: Available at https://registry.plugged.in

Architecture

┌─────────────────┐
│   Internet      │
└────────┬────────┘
         │
    ┌────▼────┐
    │ Traefik │ (SSL, Routing, Load Balancing)
    └────┬────┘
         │
    ┌────▼─────────────────────────────────┐
    │   Proxy Service (Port 8090)          │
    │   • Server listings & search          │
    │   • Rating & review system            │
    │   • Stats & analytics                 │
    │   • Sync with official registry       │
    └────┬──────────────────────────────────┘
         │
    ┌────▼─────────────────────────────────┐
    │   Admin Service (Port 8091)          │
    │   • Server management UI              │
    │   • Sync preview & execution          │
    │   • Status management                 │
    │   • Import/Export tools               │
    └────┬──────────────────────────────────┘
         │
    ┌────▼──────────┐
    │  PostgreSQL   │ (Primary Database)
    │   • servers   │ (Server metadata with versioning)
    │   • server_stats  │ (Ratings, installs, reviews)
    │   • server_ratings │ (Individual user ratings)
    │   • server_reviews │ (User reviews)
    └───────────────┘

Service URLs

Getting Started

Starting Services

cd /home/pluggedin/main
./start-all.sh

Stopping Services

cd /home/pluggedin/main
./stop-all.sh

Checking Service Status

docker ps

Database

PostgreSQL is the primary database (migrated from MongoDB in v1.0.0):

  • Container: postgres
  • Port: 5432
  • Database: pluggedin
  • User: postgres

Database Schema

Core Tables:

  • servers - Server metadata with versioning support
  • server_stats - Installation counts, ratings, and analytics
  • server_ratings - Individual user ratings (1-5 stars)
  • server_reviews - Written reviews with timestamps

Accessing PostgreSQL

# Connect to database
docker exec -it postgres psql -U postgres -d pluggedin

# View servers
SELECT server_name, version, status FROM servers WHERE is_latest = true LIMIT 10;

# View ratings
SELECT server_id, AVG(rating) as avg_rating, COUNT(*) as total_ratings
FROM server_ratings GROUP BY server_id;

Migration from MongoDB

See POSTGRES_MIGRATION_PLAN.md for complete migration guide.

SSL Certificates

SSL certificates are managed by Traefik using Let's Encrypt:

  • Location: /home/pluggedin/main/traefik/acme.json
  • Domains: Automatically provisioned for configured hosts
  • Renewal: Automatic

Development Workflow

Updating Registry

  1. Pull upstream changes:

    cd /home/pluggedin/registry
    git fetch upstream
    git merge upstream/main
  2. Rebuild if needed:

    docker compose -f docker-compose.local.yml build
  3. Restart services:

    cd /home/pluggedin/main
    ./stop-all.sh
    ./start-all.sh

Troubleshooting

Services not starting

  1. Check Docker logs:

    docker logs <container-name>
  2. Verify networks exist:

    docker network ls
  3. Check port conflicts:

    netstat -tulpn | grep -E '(80|443|8080|27017)'

SSL Certificate Issues

  1. Check Traefik logs:

    docker logs traefik
  2. Verify DNS points to server

  3. Check acme.json permissions (should be 600)

Future Architecture

The plan is to evolve toward:

┌──────────────┐     ┌─────────────────┐     ┌──────────────┐
│ plugged.in   │────▶│ Community API   │────▶│ Community DB │
│ Frontend     │     │ (Your Backend)  │     │ (Your Data)  │
└──────┬───────┘     └─────────────────┘     └──────────────┘
       │                                                       
       ▼                                                       
┌──────────────┐                                              
│ MCP Registry │ (Official registry.modelcontextprotocol.io)  
└──────────────┘                                              

This separation allows:

  • Independent development of community features
  • Easy migration when official registry launches
  • Clean upstream compatibility

Deprecated Services

Analytics Service (/registry-obsolete/analytics)

Previously provided search and analytics features. Deprecated due to:

  • High maintenance overhead
  • Complex infrastructure (Elasticsearch, Kibana, Redis)
  • Upstream registry evolving rapidly

Data and code archived for reference.

Security Notes

  • All services run in Docker containers
  • MongoDB is not exposed externally (only via Docker network)
  • SSL/TLS enforced for all public endpoints
  • Traefik dashboard only accessible locally

Maintenance

Daily

  • Monitor service health
  • Check disk space for MongoDB

Weekly

  • Review Docker logs for errors
  • Update Docker images if needed

Monthly

  • Review and update dependencies
  • Check SSL certificate renewal
  • Backup MongoDB data

📝 Release Notes

v1.0.0 - PostgreSQL Migration & Production Ready (2025-10-28)

Major Features:

  • Complete PostgreSQL migration with optimized schema
  • Rating & review system for MCP servers
  • Admin sync with official registry
  • Comprehensive security hardening
  • Enhanced admin interface

Breaking Changes:

  • MongoDB no longer supported (PostgreSQL required)
  • New environment variables required (see .env.example)
  • Admin authentication now mandatory

See full release notes for details.

Contact

For issues or questions:


Version: 1.0.0 Last Updated: October 28, 2025 License: MIT

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors