Skip to content

Unified MCP gateway server that aggregates multiple backend providers into a single connection point for AI assistants like Claude.

License

Neverdecel/startmcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

startmcp

Unified MCP gateway server that aggregates multiple backend providers into a single connection point for AI assistants.

MCP Protocol Python 3.12+ License: MIT

🎯 What is startmcp?

startmcp is an MCP gateway server that connects AI assistants (like Claude) to multiple data sources through a single, unified interface.

The Problem

AI assistants need to connect to multiple MCP servers (Atlassian, GitHub, databases, etc.), requiring separate configurations for each provider.

The Solution

startmcp acts as a gateway that aggregates all your providers into one MCP server:

Before (Multiple Connections):          After (Single Gateway):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AI Assistantβ”‚                         β”‚ AI Assistantβ”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
       β”‚                                       β”‚
   β”Œβ”€β”€β”€β”΄β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”                 β”‚
   β”‚       β”‚       β”‚       β”‚                  β”‚
β”Œβ”€β”€β–Όβ”€β”  β”Œβ”€β–Όβ”€β”€β”  β”Œβ”€β–Όβ”€β”€β”  β”Œβ”€β–Όβ”€β”€β”         β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Atl.β”‚  β”‚GH  β”‚  β”‚ DB β”‚  β”‚ etcβ”‚         β”‚  startmcp  β”‚
β”‚MCP β”‚  β”‚MCP β”‚  β”‚MCP β”‚  β”‚MCP β”‚         β”‚   Gateway  β”‚
β””β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                                             β”‚
                                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”
                                   β”‚         β”‚        β”‚     β”‚
                                β”Œβ”€β”€β–Όβ”€β”   β”Œβ”€β”€β–Όβ”€β”€β”  β”Œβ”€β”€β–Όβ”€β” β”Œβ”€β–Όβ”€β”€β”
                                β”‚Atl.β”‚   β”‚ GH  β”‚  β”‚ DB β”‚ β”‚etc β”‚
                                β”‚MCP β”‚   β”‚ MCP β”‚  β”‚MCP β”‚ β”‚MCP β”‚
                                β””β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜

✨ Key Features

  • 🎯 Single MCP Server - One connection for all your providers
  • πŸ”€ Smart Routing - Tools route to the correct backend automatically
  • 🏷️ Hybrid Namespacing - Natural names when unique, prefixed only on conflicts
  • πŸ” OAuth 2.1 Support - Browser-based authentication
  • πŸ§™ Interactive Wizard - Beautiful CLI setup experience
  • πŸ“¦ Plugin Architecture - Easy to add custom providers
  • ⚑ Near-Native Performance - Minimal routing overhead (~5ms)

πŸš€ Quick Start

Installation

# Clone the repository
git clone https://github.com/yourusername/startmcp.git
cd startmcp

# Install with pip
pip install -e .

# Verify installation
mcp --help

Setup

Run the interactive wizard:

mcp init

The wizard will:

  1. Show available providers by category
  2. Guide you through authentication (browser opens for OAuth)
  3. Verify the connection works
  4. Save configuration to config.yaml

Start the Gateway

mcp serve --stdio

The gateway will:

  • Load your config.yaml
  • Connect to all enabled providers
  • Aggregate tools from each provider
  • Start the stdio MCP server
  • Listen for requests from your AI assistant

Connect Your AI Assistant

For Claude Desktop, add to ~/.config/claude/config.json:

{
  "mcpServers": {
    "startmcp": {
      "command": "mcp",
      "args": ["serve", "--stdio"]
    }
  }
}

Restart Claude Desktop, and you'll have access to all your providers' tools!

πŸ—οΈ Architecture

startmcp implements a gateway pattern for MCP:

  1. Tool Aggregation - Collects tools from all providers
  2. Conflict Detection - Identifies tool name collisions
  3. Hybrid Namespacing - Keeps natural names when possible:
    • search_issues β†’ Routes to Atlassian (unique name)
    • create_pr β†’ Routes to GitHub (unique name)
    • atlassian:list_projects β†’ Explicit routing (conflict with GitHub)
    • github:list_projects β†’ Explicit routing (conflict with Atlassian)
  4. Smart Routing - Directs each tool call to the correct provider
  5. Helpful Errors - Suggests correct tool names on ambiguity

See Architecture Overview for details.

πŸ“¦ Available Providers

🏒 Enterprise

  • Atlassian Suite - Jira, Confluence, Compass (OAuth via mcp-remote)

🚧 Coming Soon

  • GitHub - Repositories, issues, PRs
  • GitLab - Projects, merge requests
  • PostgreSQL - Database queries
  • MongoDB - Document operations
  • And more...

πŸ› οΈ CLI Commands

# Interactive setup wizard
mcp init

# List all available providers
mcp providers list

# List only enabled providers
mcp providers list --enabled

# Start the gateway server
mcp serve --stdio

# Reconfigure setup
mcp init --reconfigure

πŸ“ Project Structure

startmcp/
β”œβ”€β”€ mcp/                        # Core framework
β”‚   β”œβ”€β”€ protocol.py            # MCP protocol models
β”‚   β”œβ”€β”€ client.py              # MCP client
β”‚   β”œβ”€β”€ provider.py            # Provider base class
β”‚   β”œβ”€β”€ transport/             # SSE and stdio transports
β”‚   β”œβ”€β”€ server/                # MCP server implementation
β”‚   β”œβ”€β”€ gateway.py             # Gateway orchestrator
β”‚   β”œβ”€β”€ aggregator.py          # Tool aggregation
β”‚   β”œβ”€β”€ router.py              # Tool/resource routing
β”‚   β”œβ”€β”€ conflict_resolver.py   # Conflict detection
β”‚   β”œβ”€β”€ registry.py            # Provider discovery
β”‚   └── cli/                   # CLI and wizard
β”œβ”€β”€ provider_mcps/             # Provider implementations
β”‚   β”œβ”€β”€ enterprise/            # Atlassian, etc.
β”‚   β”œβ”€β”€ dev_tools/             # GitHub, GitLab, etc.
β”‚   β”œβ”€β”€ data/                  # Databases
β”‚   β”œβ”€β”€ cloud/                 # AWS, GCP, Azure
β”‚   └── web/                   # Web services
β”œβ”€β”€ tests/                     # Unit and integration tests
β”œβ”€β”€ docs/                      # Documentation
└── config.yaml               # Your configuration

πŸ”§ Configuration

After running mcp init, your config.yaml will look like:

enabled_providers:
  - atlassian

logging:
  level: INFO
  format: json

timeouts:
  connection: 30
  request: 60

Provider-specific settings can be added:

atlassian:
  default_project: "PROJ"
  cloud_id: "your-cloud-id"

πŸ§‘β€πŸ’» Creating Custom Providers

Create a new provider by extending MCPProvider:

# provider_mcps/custom/my_provider/provider.py
from mcp.provider import MCPProvider
from mcp.categories import ProviderCategory

class MyProvider(MCPProvider):
    name = "my_provider"
    display_name = "My Custom Provider"
    category = ProviderCategory.CUSTOM
    transport_type = "sse"  # or "stdio"

    async def create_transport(self):
        # Return configured transport
        pass

See Creating Providers Guide for details.

πŸ“š Documentation

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

πŸ“ Changelog

See CHANGELOG.md for version history and release notes.

πŸ“„ License

MIT License - see LICENSE for details.

πŸ™ Acknowledgments


Made with ❀️ for the AI engineering community

About

Unified MCP gateway server that aggregates multiple backend providers into a single connection point for AI assistants like Claude.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages