mcp-templates


Namemcp-templates JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/Data-Everything/mcp-server-templates
SummaryDeploy MCP server templates with zero configuration
upload_time2025-07-30 13:52:08
maintainerNone
docs_urlNone
authorData Everything
requires_python>=3.10
licenseNone
keywords mcp model-context-protocol ai deployment docker templates
VCS
bugtrack_url
requirements rich pyyaml fastmcp requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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.

---
## πŸš€ 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**: `python -m 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`:**
```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 |
|---------|-------------|
| `python -m mcp_template list` | List all deployments |
| `python -m mcp_template deploy <template>` | Deploy template with defaults |
| `python -m mcp_template deploy <template> --no-pull` | Deploy without pulling image (use local) |
| `python -m mcp_template status <deployment>` | View deployment status |
| `python -m mcp_template delete <deployment>` | Delete deployment |
| `python -m mcp_template create <template-id>` | Create new template |

### Configuration Options

**1. Check Template Configuration:**
```bash
# View template.json to see available config options
cat templates/file-server/template.json
```

**2. Deploy with Config File:**
```bash
# JSON config file
python -m mcp_template deploy file-server --config-file ./config.json

# YAML config file
python -m 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)

```bash
# Configuration schema properties (recommended for server settings)
python -m 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)
python -m 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
python -m 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:

```bash
# Config schema properties (nested configuration)
python -m 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)
python -m 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:**

```bash
# Array modifications with automatic type conversion
python -m mcp_template deploy demo \
  --override "tools__0__enabled=false" \
  --override "tools__1__timeout=30.5" \
  --override "metadata__tags=[\"custom\",\"modified\"]"

# Complex nested structure creation
python -m mcp_template deploy demo \
  --override "config__database__connection__host=localhost" \
  --override "config__database__connection__port=5432" \
  --override "config__security__enabled=true"

# JSON object overrides
python -m mcp_template deploy demo \
  --override "metadata__custom={\"key\":\"value\",\"nested\":{\"prop\":true}}"
```

**6. Deploy with Environment Variables:**
```bash
python -m 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):**
```bash
python -m 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`):**
```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`):**
```yaml
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 `python -m 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

```bash
# 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

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

# Run in development mode
python -m mcp_template list
```

### Testing

```bash
# 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

```bash
# Build documentation
make docs

# Serve documentation locally
make docs-serve

# Clean documentation build
make docs-clean
```

---
## πŸ“š Documentation Hub

### Core Documentation

- **[Documentation Index](docs/index.md)**: Central hub for all documentation
- **[Configuration Strategy](docs/CONFIGURATION_FINAL_RECOMMENDATIONS.md)**: Configuration design decisions
- **[Template Development Guide](docs/template-development-guide.md)**: Creating new templates
- **[Testing Guide](docs/TESTING.md)**: Testing strategies and tools

### 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

```bash
# 1. Install from PyPI
pip install mcp-templates

# 2. List available deployments
python -m mcp_template list

# 3. Deploy with defaults
python -m mcp_template deploy file-server

# 4. Deploy with custom config and skip image pull
python -m mcp_template deploy file-server --config-file ./my-config.json --no-pull

# 5. View deployment status
python -m mcp_template status file-server-deployment

# 6. Delete when done
python -m mcp_template delete file-server-deployment
```

### Template Discovery

```bash
# List all available templates
python -m mcp_template create --help

# Create new template interactively
python -m 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](./LICENSE) and [ATTRIBUTION](./ATTRIBUTION.md) 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](CONTRIBUTING.md) for detailed contribution guidelines.

---
## πŸ“ž Support

- **Issues**: [GitHub Issues](https://github.com/Data-Everything/mcp-server-templates/issues)
- **Discussions**: [GitHub Discussions](https://github.com/Data-Everything/mcp-server-templates/discussions)
- **Community Slack**: [Join mcp-platform workspace](https://join.slack.com/t/mcp-platform/shared_invite/zt-39z1p559j-8aWEML~IsSPwFFgr7anHRA)
- **Documentation**: [docs/index.md](docs/index.md)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Data-Everything/mcp-server-templates",
    "name": "mcp-templates",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "mcp, model-context-protocol, ai, deployment, docker, templates",
    "author": "Data Everything",
    "author_email": "tooling@dataeverything.com",
    "download_url": "https://files.pythonhosted.org/packages/3b/bf/67d3e6867b7845e0ab03216637c07645097f200b08fb1244689f1d2980e0/mcp_templates-0.1.1.tar.gz",
    "platform": null,
    "description": "# MCP Server Templates\n\nProduction-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.\n\n---\n## \ud83d\ude80 How It Works\n\n**Architecture Overview:**\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510      \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510      \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  CLI Tool  \u2502\u2500\u2500\u25b6\u2500\u2500\u25b6\u2502 DeploymentManager  \u2502\u2500\u2500\u25b6\u2500\u2500\u25b6\u2502 Backend (Docker/K8s/Mock)  \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518      \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518      \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n      \u2502                    \u2502                           \u2502\n      \u25bc                    \u25bc                           \u25bc\n  TemplateDiscovery   Template Config           Container/Pod/Mock\n      \u2502                    \u2502\n      \u25bc                    \u25bc\n  ConfigMapping      Environment Variables\n```\n\n**Configuration Flow:**\n1. **Template Defaults** \u2192 2. **Config File** \u2192 3. **CLI Options** \u2192 4. **Environment Variables**\n\n- **CLI Tool**: `python -m mcp_template` with comprehensive config support\n- **DeploymentManager**: Unified interface for Docker, Kubernetes, or Mock backends\n- **TemplateDiscovery**: Auto-discovers templates with config schema validation\n- **ConfigMapping**: Generic mapping system supporting nested JSON/YAML configs\n- **Multi-source Configuration**: File-based, CLI options, and environment variables\n\n---\n## \ud83d\udce6 Template Structure\n\nEach template must include:\n\n- `template.json` \u2014 Metadata and config schema with environment mappings\n- `Dockerfile` \u2014 Container build instructions\n- `README.md` \u2014 Usage and description\n- (Optional) `USAGE.md`, `requirements.txt`, `src/`, `tests/`, `config/`\n\n**Example `template.json`:**\n```json\n{\n  \"name\": \"File Server MCP\",\n  \"description\": \"Secure file system access for AI assistants...\",\n  \"version\": \"1.0.0\",\n  \"author\": \"Data Everything\",\n  \"category\": \"File System\",\n  \"tags\": [\"filesystem\", \"files\", \"security\"],\n  \"docker_image\": \"dataeverything/mcp-file-server\",\n  \"docker_tag\": \"latest\",\n  \"ports\": {\n    \"8080\": 8080\n  },\n  \"command\": [\"python\", \"server.py\"],\n  \"transport\": {\n    \"default\": \"stdio\",\n    \"supported\": [\"stdio\", \"http\"],\n    \"port\": 8080\n  },\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"allowed_directories\": {\n        \"type\": \"array\",\n        \"env_mapping\": \"MCP_ALLOWED_DIRS\",\n        \"env_separator\": \":\",\n        \"default\": [\"/data\"],\n        \"description\": \"Allowed directories for file access\"\n      },\n      \"read_only_mode\": {\n        \"type\": \"boolean\",\n        \"env_mapping\": \"MCP_READ_ONLY\",\n        \"default\": false,\n        \"description\": \"Enable read-only mode\"\n      },\n      \"log_level\": {\n        \"type\": \"string\",\n        \"env_mapping\": \"MCP_LOG_LEVEL\",\n        \"default\": \"info\",\n        \"description\": \"Logging level (debug, info, warning, error)\"\n      }\n    },\n    \"required\": [\"allowed_directories\"]\n  }\n}\n```\n\n---\n## \ud83d\udee0\ufe0f CLI Usage\n\n### Basic Commands\n\n| Command | Description |\n|---------|-------------|\n| `python -m mcp_template list` | List all deployments |\n| `python -m mcp_template deploy <template>` | Deploy template with defaults |\n| `python -m mcp_template deploy <template> --no-pull` | Deploy without pulling image (use local) |\n| `python -m mcp_template status <deployment>` | View deployment status |\n| `python -m mcp_template delete <deployment>` | Delete deployment |\n| `python -m mcp_template create <template-id>` | Create new template |\n\n### Configuration Options\n\n**1. Check Template Configuration:**\n```bash\n# View template.json to see available config options\ncat templates/file-server/template.json\n```\n\n**2. Deploy with Config File:**\n```bash\n# JSON config file\npython -m mcp_template deploy file-server --config-file ./config.json\n\n# YAML config file\npython -m mcp_template deploy file-server --config-file ./config.yml\n```\n\n**3. Deploy with CLI Configuration Options:**\n\nThere are **two types** of CLI configuration:\n\n- **`--config`**: For `config_schema` properties (becomes environment variables)\n- **`--override`**: For template data modifications (modifies template structure directly)\n\n```bash\n# Configuration schema properties (recommended for server settings)\npython -m mcp_template deploy file-server \\\n  --config read_only_mode=true \\\n  --config max_file_size=50 \\\n  --config log_level=debug\n\n# Template data overrides (for metadata, tools, custom fields)\npython -m mcp_template deploy file-server \\\n  --override \"metadata__version=2.0.0\" \\\n  --override \"metadata__author=MyName\" \\\n  --override \"tools__0__enabled=false\"\n\n# Combined usage with custom name\npython -m mcp_template deploy file-server \\\n  --name my-file-server \\\n  --no-pull \\\n  --config read_only_mode=true \\\n  --override \"metadata__description=Custom file server\"\n```\n\n**4. Double Underscore Notation for Nested Configuration:**\n\nBoth `--config` and `--override` support double underscore notation for nested structures:\n\n```bash\n# Config schema properties (nested configuration)\npython -m mcp_template deploy file-server \\\n  --config security__read_only=true \\\n  --config security__max_file_size=50 \\\n  --config logging__level=debug\n\n# Template data overrides (nested modifications)\npython -m mcp_template deploy file-server \\\n  --override \"metadata__version=2.0.0\" \\\n  --override \"config__custom_setting=value\" \\\n  --override \"tools__0__description=Modified tool\" \\\n  --override \"servers__0__config__host=remote.example.com\"\n```\n\n**5. Advanced Override Examples:**\n\n```bash\n# Array modifications with automatic type conversion\npython -m mcp_template deploy demo \\\n  --override \"tools__0__enabled=false\" \\\n  --override \"tools__1__timeout=30.5\" \\\n  --override \"metadata__tags=[\\\"custom\\\",\\\"modified\\\"]\"\n\n# Complex nested structure creation\npython -m mcp_template deploy demo \\\n  --override \"config__database__connection__host=localhost\" \\\n  --override \"config__database__connection__port=5432\" \\\n  --override \"config__security__enabled=true\"\n\n# JSON object overrides\npython -m mcp_template deploy demo \\\n  --override \"metadata__custom={\\\"key\\\":\\\"value\\\",\\\"nested\\\":{\\\"prop\\\":true}}\"\n```\n\n**6. Deploy with Environment Variables:**\n```bash\npython -m mcp_template deploy file-server \\\n  --env MCP_READ_ONLY=true \\\n  --env MCP_MAX_FILE_SIZE=50 \\\n  --env MCP_LOG_LEVEL=debug\n```\n\n**7. Mixed Configuration (precedence: env > cli > file > defaults):**\n```bash\npython -m mcp_template deploy file-server \\\n  --config-file ./base-config.json \\\n  --config log_level=warning \\\n  --override \"metadata__version=1.5.0\" \\\n  --env MCP_READ_ONLY=true\n```\n\n### Configuration vs Override Usage Guide\n\n| Use Case | Recommended Method | Example |\n|----------|-------------------|---------|\n| Server settings (logging, security, performance) | `--config` | `--config log_level=debug` |\n| Nested server configuration | `--config` with `__` | `--config security__read_only=true` |\n| Template metadata changes | `--override` | `--override \"metadata__version=2.0.0\"` |\n| Tool modifications | `--override` | `--override \"tools__0__enabled=false\"` |\n| Custom fields addition | `--override` | `--override \"custom_field=value\"` |\n| Complex nested structures | `--override` with `__` | `--override \"config__db__host=localhost\"` |\n\n### Configuration File Examples\n\n**JSON Configuration (`config.json`):**\n```json\n{\n  \"security\": {\n    \"allowedDirs\": [\"/data\", \"/workspace\"],\n    \"readOnly\": false,\n    \"maxFileSize\": 100,\n    \"excludePatterns\": [\"**/.git/**\", \"**/node_modules/**\"]\n  },\n  \"logging\": {\n    \"level\": \"info\",\n    \"enableAudit\": true\n  },\n  \"performance\": {\n    \"maxConcurrentOperations\": 10,\n    \"timeoutMs\": 30000\n  }\n}\n```\n\n**YAML Configuration (`config.yml`):**\n```yaml\nsecurity:\n  allowedDirs:\n    - \"/data\"\n    - \"/workspace\"\n  readOnly: false\n  maxFileSize: 100\n  excludePatterns:\n    - \"**/.git/**\"\n    - \"**/node_modules/**\"\n\nlogging:\n  level: info\n  enableAudit: true\n\nperformance:\n  maxConcurrentOperations: 10\n  timeoutMs: 30000\n```\n\n---\n## \ud83d\udc33 Docker Images & Backends\n\n### Supported Backends\n\n- **Docker** (default): Uses local Docker daemon or nerdctl/containerd\n- **Kubernetes**: Coming soon - will deploy to K8s clusters\n- **Mock**: For testing and development\n\n### Image Management\n\nTemplates automatically build and tag images as:\n- Format: `dataeverything/mcp-{template-name}:latest`\n- Custom images: Specify in `template.json` with `docker_image` field\n- Auto-pull: Images are pulled automatically during deployment\n\n---\n## \ud83c\udfd7\ufe0f Architecture & Extensibility\n\n### Core Components\n\n- **Backend Abstraction**: Easily extend with Kubernetes, cloud providers\n- **CLI + Library**: Use as command-line tool or import as Python library\n- **Platform Integration Ready**: Same codebase powers MCP Platform commercial UI\n- **Configuration System**: Generic mapping supporting any template structure\n- **Type Conversion**: Automatic conversion based on JSON schema types\n\n### Adding New Templates\n\n1. Create `templates/{name}/` directory\n2. Add `template.json` with config schema and environment mappings\n3. Add `Dockerfile` for container build\n4. Test with `python -m mcp_template {name} --show-config`\n\n### Adding New Backends\n\n1. Inherit from base deployment service interface\n2. Implement `deploy_template()`, `list_deployments()`, etc.\n3. Register in `DeploymentManager._get_deployment_backend()`\n\n---\n## \ud83e\uddea Testing & Development\n\n### Running Tests\n\n```bash\n# Install development dependencies\npip install -r requirements-dev.txt\n\n# Run all tests\npytest\n\n# Run specific test categories\npytest tests/test_configuration.py  # Configuration system tests\npytest tests/test_deployment_*.py   # Deployment tests\npytest tests/test_all_templates.py  # Template validation tests\n```\n\n### Test Configuration Files\n\nSample configuration files are available in `examples/config/`:\n- `file-server-config.json`: Example file-server configuration\n- Additional template configs as they're added\n\n### Development Setup\n\n```bash\n# Clone and setup\ngit clone <repo-url>\ncd mcp-server-templates\npip install -e .\n\n# Run in development mode\npython -m mcp_template list\n```\n\n### Testing\n\n```bash\n# Run all tests\nmake test\n\n# Run tests for all templates\nmake test-templates\n\n# Run tests for a specific template\nmake test-template TEMPLATE=file-server\n\n# Run unit tests only\nmake test-unit\n\n# Run integration tests\nmake test-integration\n```\n\n### Documentation\n\n```bash\n# Build documentation\nmake docs\n\n# Serve documentation locally\nmake docs-serve\n\n# Clean documentation build\nmake docs-clean\n```\n\n---\n## \ud83d\udcda Documentation Hub\n\n### Core Documentation\n\n- **[Documentation Index](docs/index.md)**: Central hub for all documentation\n- **[Configuration Strategy](docs/CONFIGURATION_FINAL_RECOMMENDATIONS.md)**: Configuration design decisions\n- **[Template Development Guide](docs/template-development-guide.md)**: Creating new templates\n- **[Testing Guide](docs/TESTING.md)**: Testing strategies and tools\n\n### Template-Specific Docs\n\nEach template includes:\n- `README.md`: Overview and basic usage\n- `USAGE.md`: Detailed configuration and examples\n- `tests/`: Template-specific test suites\n\n---\n## \ud83d\ude80 Getting Started\n\n### Quick Start\n\n```bash\n# 1. Install from PyPI\npip install mcp-templates\n\n# 2. List available deployments\npython -m mcp_template list\n\n# 3. Deploy with defaults\npython -m mcp_template deploy file-server\n\n# 4. Deploy with custom config and skip image pull\npython -m mcp_template deploy file-server --config-file ./my-config.json --no-pull\n\n# 5. View deployment status\npython -m mcp_template status file-server-deployment\n\n# 6. Delete when done\npython -m mcp_template delete file-server-deployment\n```\n\n### Template Discovery\n\n```bash\n# List all available templates\npython -m mcp_template create --help\n\n# Create new template interactively\npython -m mcp_template create my-custom-template\n```\n\n---\n## License\n\nThis project is licensed under the **Elastic License 2.0**.\n\nYou may use, deploy, and modify it freely in your organization or personal projects.\nYou **may not** resell, rehost, or offer it as a commercial SaaS product without a commercial license.\n\nSee [LICENSE](./LICENSE) and [ATTRIBUTION](./ATTRIBUTION.md) for details.\n\n---\n## \ud83e\udd1d Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution guidelines.\n\n---\n## \ud83d\udcde Support\n\n- **Issues**: [GitHub Issues](https://github.com/Data-Everything/mcp-server-templates/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/Data-Everything/mcp-server-templates/discussions)\n- **Community Slack**: [Join mcp-platform workspace](https://join.slack.com/t/mcp-platform/shared_invite/zt-39z1p559j-8aWEML~IsSPwFFgr7anHRA)\n- **Documentation**: [docs/index.md](docs/index.md)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Deploy MCP server templates with zero configuration",
    "version": "0.1.1",
    "project_urls": {
        "Bug Reports": "https://github.com/Data-Everything/mcp-server-templates/issues",
        "Documentation": "https://github.com/Data-Everything/mcp-server-templates#readme",
        "Homepage": "https://github.com/Data-Everything/mcp-server-templates",
        "Source": "https://github.com/Data-Everything/mcp-server-templates"
    },
    "split_keywords": [
        "mcp",
        " model-context-protocol",
        " ai",
        " deployment",
        " docker",
        " templates"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "152d3c5d57c2fdec50609e7dca07de060063013929fd3aba60efd13d8eb1d56b",
                "md5": "0672f63e5c0e9f0d211a1cdc7c195a26",
                "sha256": "77864658b4d2c8715dc913e3c3988ae74927b5e044477dd6ba6f1920d3d78a9a"
            },
            "downloads": -1,
            "filename": "mcp_templates-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0672f63e5c0e9f0d211a1cdc7c195a26",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 131000,
            "upload_time": "2025-07-30T13:52:06",
            "upload_time_iso_8601": "2025-07-30T13:52:06.441596Z",
            "url": "https://files.pythonhosted.org/packages/15/2d/3c5d57c2fdec50609e7dca07de060063013929fd3aba60efd13d8eb1d56b/mcp_templates-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3bbf67d3e6867b7845e0ab03216637c07645097f200b08fb1244689f1d2980e0",
                "md5": "0d2cf8d652b49a58c30117d58efb66a5",
                "sha256": "7ba6a301b1566a6a46071c9a063a76f2b32f7d1d93cf0a26f2ca83d953530428"
            },
            "downloads": -1,
            "filename": "mcp_templates-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "0d2cf8d652b49a58c30117d58efb66a5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 107061,
            "upload_time": "2025-07-30T13:52:08",
            "upload_time_iso_8601": "2025-07-30T13:52:08.153808Z",
            "url": "https://files.pythonhosted.org/packages/3b/bf/67d3e6867b7845e0ab03216637c07645097f200b08fb1244689f1d2980e0/mcp_templates-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-30 13:52:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Data-Everything",
    "github_project": "mcp-server-templates",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "rich",
            "specs": [
                [
                    ">=",
                    "13.0.0"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "fastmcp",
            "specs": [
                [
                    ">=",
                    "2.10.0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.25.0"
                ]
            ]
        }
    ],
    "lcname": "mcp-templates"
}
        
Elapsed time: 1.44173s