MCP Platform MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
pip install -e ".[dev]"
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "PYTHONPATH=${PYTHONPATH}" mcp-platform-48ad -- node "<FULL_PATH_TO_MCP>/dist/index.js"

Replace <FULL_PATH_TO_MCP>/dist/index.js with the actual folder you prepared in step 1.

Required:PYTHONPATH
README.md

A scalable MCP-based execution platform for HR, ERP, and DevOps domains.

MCP Platform

A scalable MCP-based execution platform that allows users to interact via a chat UI, with an LLM (via LlamaIndex) interpreting intent and controlled execution of application-specific actions via MCP.

Architecture Overview

┌─────────────┐
│   Chat UI   │  React-based frontend
└──────┬──────┘
       │
       ▼
┌─────────────────────────────┐
│  Orchestrator (AI Gateway)  │  FastAPI - Conversation management, LLM orchestration
└──────┬──────────────────────┘
       │
       ├────────────────────┐
       ▼                    ▼
┌─────────────┐      ┌─────────────┐
│     LLM     │      │ MCP Client  │
│ (LlamaIndex)│      │             │
└─────────────┘      └──────┬──────┘
                            │
                            ▼
                     ┌─────────────┐
                     │ MCP Server  │  Tool registry, auth, audit, routing
                     └──────┬──────┘
                            │
          ┌─────────────────┼─────────────────┐
          ▼                 ▼                 ▼
    ┌───────────┐    ┌───────────┐    ┌───────────┐
    │    HR     │    │    ERP    │    │  DevOps   │
    │  Domain   │    │  Domain   │    │  Domain   │
    └───────────┘    └───────────┘    └───────────┘

Key Principles

  • Separation of Concerns: Each component has a single responsibility
  • Domain Isolation: Applications are isolated with no cross-domain calls
  • Configuration-Driven: New domains added via configuration, not code changes
  • LLM is Advisory, MCP is Authoritative: LLM suggests actions, MCP enforces them

Components

Frontend (Chat UI)

  • Captures user input
  • Displays assistant responses
  • No business logic
  • No direct LLM or MCP access

Orchestrator (AI Gateway)

  • Manages conversation state
  • Interfaces with LLM via LlamaIndex
  • Supplies tool definitions to LLM
  • Parses structured tool calls
  • Invokes MCP Client

MCP Server

  • Registers and exposes MCP tools
  • Enforces authorization
  • Routes calls to application domains
  • Audits all executions
  • No LLM or UI logic

Application Domains

Each domain contains:

  • Tool definitions (namespaced, e.g., hr.get_employee)
  • Adapter implementation
  • Permission model
  • Configuration

Included domains:

  • HR: Employee lookup, department info
  • ERP: Invoices, inventory management
  • DevOps: Kubernetes operations, logs, scaling

Quick Start

Prerequisites

  • Python 3.10+
  • Node.js 18+
  • Docker (optional)

Local Development

  1. Clone and setup:
cd mcp_poc
cp .env.example .env
# Edit .env with your LLM API keys
  1. Install Python dependencies:
pip install -e ".[dev]"
  1. Start MCP Server (terminal 1):
export PYTHONPATH=$PWD/src
python -m mcp_server.main
  1. Start Orchestrator (terminal 2):
export PYTHONPATH=$PWD/src
python -m orchestrator.main
  1. Start Frontend (terminal 3):
cd frontend
npm install
npm run dev
  1. Open browser: http://localhost:3000

Using Docker

# Build and run all services
docker-compose up --build

# Access:
# - Frontend: http://localhost:3000
# - Orchestrator API: http://localhost:8000
# - MCP Server API: http://localhost:8001

Testing with Mock LLM

For testing without LLM API keys, use the mock provider:

# config/settings.yaml
llm:
  provider: mock

API Endpoints

Orchestrator (port 8000)

Endpoint Method Description
/health GET Health check
/chat POST Send chat message
/conversations GET List conversations
/conversations/{id} GET Get conversation history
/conversations/{id} DELETE Delete conversation
/tools GET List available tools

MCP Server (port 8001)

Endpoint Method Description
/health GET Health check
/tools GET List registered tools
/tools/{name} GET Get tool details
/execute POST Execute a tool
/domains GET List registered domains

Tool Examples

HR Domain

# Get employee information
hr.get_employee(employee_id="E001")

# Search employees
hr.search_employees(department="Engineering", query="developer")

# List departments
hr.list_departments()

ERP Domain

# Get invoice
erp.get_invoice(invoice_id="INV-001")

# Create invoice
erp.create_invoice(
    customer="Acme Corp",
    items=[{"description": "Service", "quantity": 1, "unit_price": 1000}]
)

# Check low stock
erp.check_low_stock(category="Components")

DevOps Domain

# List pods
devops.list_pods(namespace="production")

# Get pod logs
devops.get_pod_logs(pod_name="api-server-xyz")

# Scale deployment
devops.scale_deployment(deployment_name="api-server", replicas=3)

Adding a New Domain

  1. Create domain directory:
src/domains/mydomain/
├── __init__.py
└── config.yaml (optional)
  1. Implement adapter

Tools (9)

hr.get_employeeGet employee information by ID
hr.search_employeesSearch for employees by department and query
hr.list_departmentsList all available departments
erp.get_invoiceRetrieve invoice details by ID
erp.create_invoiceCreate a new invoice for a customer
erp.check_low_stockCheck for low stock items in a category
devops.list_podsList Kubernetes pods in a namespace
devops.get_pod_logsRetrieve logs for a specific pod
devops.scale_deploymentScale a deployment to a specific number of replicas

Environment Variables

PYTHONPATHrequiredPath to the source directory

Configuration

claude_desktop_config.json
{"mcpServers": {"mcp-platform": {"command": "python", "args": ["-m", "mcp_server.main"]}}}

Try it

Find the employee details for E001.
Check if there is any low stock in the Components category.
List all pods currently running in the production namespace.
Scale the api-server deployment to 3 replicas.
Create an invoice for Acme Corp for 1 unit of Service at 1000.

Frequently Asked Questions

What are the key features of MCP Platform?

Domain isolation for HR, ERP, and DevOps applications. Configuration-driven architecture for adding new domains. Authoritative tool execution enforced by MCP. Integrated chat UI for LLM-based intent interpretation. Audit logging for all tool executions.

What can I use MCP Platform for?

Automating HR employee lookups via natural language. Managing ERP inventory and invoicing through chat. Performing DevOps tasks like scaling deployments and checking logs. Building domain-specific AI assistants with strict authorization.

How do I install MCP Platform?

Install MCP Platform by running: pip install -e ".[dev]"

What MCP clients work with MCP Platform?

MCP Platform works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Platform docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare