Sumanshu Arora

Sumanshu Arora

MCP aggregator with many existing NCP templates and allows running external MCP servers too

Category
Visit Server

README

MCP Server Templates

Production-ready Model Context Protocol (MCP) server templates with a unified deployment architecture and comprehensive configuration support. Easily deploy, manage, and extend AI server templates with flexible configuration options matching commercial platform capabilities.

⚡ Features

Get ready to supercharge your MCP journey! The MCP Platform is packed with electrifying features that make server deployment a thrill ride:

🚀 Current Features

  • 🖱️ One-Click Docker Deployment: Launch MCP servers instantly with pre-built templates—no hassle, just pure speed.
  • 🔎 Smart Tool Discovery: Automatically finds and showcases every tool your server can offer. No more guesswork!
  • 💻 Slick CLI Management: Command-line magic for easy, powerful control over all deployments.
  • 🤝 Bring Your Own MCP Server: Plug in your own MCP server and run it on our network—even with limited features!
  • 🐳 Effortless Docker Image Integration: Add any existing MCP Docker image to the templates library with minimal setup and unlock all the platform’s cool benefits.
  • ⚡ Boilerplate Template Generator: Instantly create new MCP server projects with a CLI-powered generator—kickstart your next big idea!
  • 🛠️ Multiple Ways to Set Configuration: Flex your setup with config via JSON, YAML, environment variables, CLI config, or CLI override options—total flexibility for every workflow!

🌈 Planned Features

  • 🦸 MCP Sidekick (Coming Soon): Your friendly AI companion, making every MCP server compatible with any AI tool or framework.
  • 🛸 Kubernetes Support: Deploy to Kubernetes clusters with ease, scaling your MCP servers effortlessly.

Release Timeline: All this and more dropping mid-August 2025—don’t miss out!

Want the full scoop? Check out the docs for more features & details!


🚀 How It Works

Architecture Overview:

┌────────────┐      ┌────────────────────┐      ┌────────────────────────────┐
│  CLI Tool  │──▶──▶│ DeploymentManager  │──▶──▶│ Backend (Docker/K8s/Mock)  │
└────────────┘      └────────────────────┘      └────────────────────────────┘
      │                    │                           │
      ▼                    ▼                           ▼
  TemplateDiscovery   Template Config           Container/Pod/Mock
      │                    │
      ▼                    ▼
  ConfigMapping      Environment Variables

Configuration Flow:

  1. Template Defaults → 2. Config File → 3. CLI Options → 4. Environment Variables
  • CLI Tool: mcp-template with comprehensive config support
  • DeploymentManager: Unified interface for Docker, Kubernetes, or Mock backends
  • TemplateDiscovery: Auto-discovers templates with config schema validation
  • ConfigMapping: Generic mapping system supporting nested JSON/YAML configs
  • Multi-source Configuration: File-based, CLI options, and environment variables

📦 Template Structure

Each template must include:

  • template.json — Metadata and config schema with environment mappings
  • Dockerfile — Container build instructions
  • README.md — Usage and description
  • (Optional) USAGE.md, requirements.txt, src/, tests/, config/

Example template.json:

{
  "name": "File Server MCP",
  "description": "Secure file system access for AI assistants...",
  "version": "1.0.0",
  "author": "Data Everything",
  "category": "File System",
  "tags": ["filesystem", "files", "security"],
  "docker_image": "dataeverything/mcp-file-server",
  "docker_tag": "latest",
  "ports": {
    "8080": 8080
  },
  "command": ["python", "server.py"],
  "transport": {
    "default": "stdio",
    "supported": ["stdio", "http"],
    "port": 8080
  },
  "config_schema": {
    "type": "object",
    "properties": {
      "allowed_directories": {
        "type": "array",
        "env_mapping": "MCP_ALLOWED_DIRS",
        "env_separator": ":",
        "default": ["/data"],
        "description": "Allowed directories for file access"
      },
      "read_only_mode": {
        "type": "boolean",
        "env_mapping": "MCP_READ_ONLY",
        "default": false,
        "description": "Enable read-only mode"
      },
      "log_level": {
        "type": "string",
        "env_mapping": "MCP_LOG_LEVEL",
        "default": "info",
        "description": "Logging level (debug, info, warning, error)"
      }
    },
    "required": ["allowed_directories"]
  }
}

🛠️ CLI Usage

Basic Commands

Command Description
mcp-template list List all deployments
mcp-template deploy <template> Deploy template with defaults
mcp-template deploy <template> --no-pull Deploy without pulling image (use local)
mcp-template status <deployment> View deployment status
mcp-template delete <deployment> Delete deployment
mcp-template create <template-id> Create new template

Configuration Options

1. Check Template Configuration:

# View template.json to see available config options
cat templates/file-server/template.json

2. Deploy with Config File:

# JSON config file
mcp-template deploy file-server --config-file ./config.json

# YAML config file
mcp-template deploy file-server --config-file ./config.yml

3. Deploy with CLI Configuration Options:

There are two types of CLI configuration:

  • --config: For config_schema properties (becomes environment variables)
  • --override: For template data modifications (modifies template structure directly)
# Configuration schema properties (recommended for server settings)
mcp-template deploy file-server \
  --config read_only_mode=true \
  --config max_file_size=50 \
  --config log_level=debug

# Template data overrides (for metadata, tools, custom fields)
mcp-template deploy file-server \
  --override "metadata__version=2.0.0" \
  --override "metadata__author=MyName" \
  --override "tools__0__enabled=false"

# Combined usage with custom name
mcp-template deploy file-server \
  --name my-file-server \
  --no-pull \
  --config read_only_mode=true \
  --override "metadata__description=Custom file server"

4. Double Underscore Notation for Nested Configuration:

Both --config and --override support double underscore notation for nested structures:

# Config schema properties (nested configuration)
mcp-template deploy file-server \
  --config security__read_only=true \
  --config security__max_file_size=50 \
  --config logging__level=debug

# Template data overrides (nested modifications)
mcp-template deploy file-server \
  --override "metadata__version=2.0.0" \
  --override "config__custom_setting=value" \
  --override "tools__0__description=Modified tool" \
  --override "servers__0__config__host=remote.example.com"

5. Advanced Override Examples:

# Array modifications with automatic type conversion
mcp-template deploy demo \
  --override "tools__0__enabled=false" \
  --override "tools__1__timeout=30.5" \
  --override "metadata__tags=[\"custom\",\"modified\"]"

# Complex nested structure creation
mcp-template deploy demo \
  --override "config__database__connection__host=localhost" \
  --override "config__database__connection__port=5432" \
  --override "config__security__enabled=true"

# JSON object overrides
mcp-template deploy demo \
  --override "metadata__custom={\"key\":\"value\",\"nested\":{\"prop\":true}}"

6. Deploy with Environment Variables:

mcp-template deploy file-server \
  --env MCP_READ_ONLY=true \
  --env MCP_MAX_FILE_SIZE=50 \
  --env MCP_LOG_LEVEL=debug

7. Mixed Configuration (precedence: env > cli > file > defaults):

mcp-template deploy file-server \
  --config-file ./base-config.json \
  --config log_level=warning \
  --override "metadata__version=1.5.0" \
  --env MCP_READ_ONLY=true

Configuration vs Override Usage Guide

Use Case Recommended Method Example
Server settings (logging, security, performance) --config --config log_level=debug
Nested server configuration --config with __ --config security__read_only=true
Template metadata changes --override --override "metadata__version=2.0.0"
Tool modifications --override --override "tools__0__enabled=false"
Custom fields addition --override --override "custom_field=value"
Complex nested structures --override with __ --override "config__db__host=localhost"

Configuration File Examples

JSON Configuration (config.json):

{
  "security": {
    "allowedDirs": ["/data", "/workspace"],
    "readOnly": false,
    "maxFileSize": 100,
    "excludePatterns": ["**/.git/**", "**/node_modules/**"]
  },
  "logging": {
    "level": "info",
    "enableAudit": true
  },
  "performance": {
    "maxConcurrentOperations": 10,
    "timeoutMs": 30000
  }
}

YAML Configuration (config.yml):

security:
  allowedDirs:
    - "/data"
    - "/workspace"
  readOnly: false
  maxFileSize: 100
  excludePatterns:
    - "**/.git/**"
    - "**/node_modules/**"

logging:
  level: info
  enableAudit: true

performance:
  maxConcurrentOperations: 10
  timeoutMs: 30000

🐳 Docker Images & Backends

Supported Backends

  • Docker (default): Uses local Docker daemon or nerdctl/containerd
  • Kubernetes: Coming soon - will deploy to K8s clusters
  • Mock: For testing and development

Image Management

Templates automatically build and tag images as:

  • Format: dataeverything/mcp-{template-name}:latest
  • Custom images: Specify in template.json with docker_image field
  • Auto-pull: Images are pulled automatically during deployment

🏗️ Architecture & Extensibility

Core Components

  • Backend Abstraction: Easily extend with Kubernetes, cloud providers
  • CLI + Library: Use as command-line tool or import as Python library
  • Platform Integration Ready: Same codebase powers MCP Platform commercial UI
  • Configuration System: Generic mapping supporting any template structure
  • Type Conversion: Automatic conversion based on JSON schema types

Adding New Templates

  1. Create templates/{name}/ directory
  2. Add template.json with config schema and environment mappings
  3. Add Dockerfile for container build
  4. Test with mcp-template {name} --show-config

Adding New Backends

  1. Inherit from base deployment service interface
  2. Implement deploy_template(), list_deployments(), etc.
  3. Register in DeploymentManager._get_deployment_backend()

🧪 Testing & Development

Running Tests

# Install development dependencies
pip install -r requirements-dev.txt

# Run all tests
pytest

# Run specific test categories
pytest tests/test_configuration.py  # Configuration system tests
pytest tests/test_deployment_*.py   # Deployment tests
pytest tests/test_all_templates.py  # Template validation tests

Test Configuration Files

Sample configuration files are available in examples/config/:

  • file-server-config.json: Example file-server configuration
  • Additional template configs as they're added

Development Setup

# Clone and setup
git clone <repo-url>
cd mcp-server-templates
pip install -e .

# Run in development mode
mcp-template list

Testing

# Run all tests
make test

# Run tests for all templates
make test-templates

# Run tests for a specific template
make test-template TEMPLATE=file-server

# Run unit tests only
make test-unit

# Run integration tests
make test-integration

Documentation

# Build documentation
make docs

# Serve documentation locally
make docs-serve

# Clean documentation build
make docs-clean

📚 Documentation Hub

Core Documentation

Template-Specific Docs

Each template includes:

  • README.md: Overview and basic usage
  • USAGE.md: Detailed configuration and examples
  • tests/: Template-specific test suites

🚀 Getting Started

Quick Start

# 1. Install from PyPI
pip install mcp-templates

# 2. List available deployments
mcp-template list

# 3. Deploy with defaults
mcp-template deploy file-server

# 4. Deploy with custom config and skip image pull
mcp-template deploy file-server --config-file ./my-config.json --no-pull

# 5. View deployment status
mcp-template status file-server-deployment

# 6. Delete when done
mcp-template delete file-server-deployment

Template Discovery

# List all available templates
mcp-template create --help

# Create new template interactively
mcp-template create my-custom-template

License

This project is licensed under the Elastic License 2.0.

You may use, deploy, and modify it freely in your organization or personal projects. You may not resell, rehost, or offer it as a commercial SaaS product without a commercial license.

See LICENSE and ATTRIBUTION for details.


🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed contribution guidelines.


📞 Support

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured