Skip to main content
Glama
vadimsey

ChatGPT Orchestrator MCP Server

by vadimsey

ChatGPT Orchestrator MCP Server

Minimaler Remote-MCP-Server in Python für das folgende Schema:

ChatGPT -> MCP server -> main orchestrator -> helper agents

In der ersten Phase enthält der Server ein Tool:

  • run_orchestrator

  • Eingabe: goal: string

  • Ausgabe: einfacher JSON

Im Inneren befindet sich derzeit ein Platzhalter. Später kann dieser durch den Aufruf Ihres echten Hauptagenten ersetzt werden.

Warum FastMCP

FastMCP wurde gewählt, weil es ermöglicht, ein MCP-Tool mit einer normalen Python-Funktion zu beschreiben und sofort einen Remote-MCP-Endpunkt über HTTP zu starten. Für die Verbindung mit ChatGPT ist ein öffentlicher HTTPS-Endpunkt der Form /mcp erforderlich.

Related MCP server: impart-mcp

Projektstruktur

.
├── .gitignore
├── server.py
├── requirements.txt
├── Procfile
├── render.yaml
└── README.md

Lokaler Start

Anforderungen:

  • Python 3.11+

  • pip

1. Virtuelle Umgebung erstellen

PowerShell:

python -m venv .venv
.\.venv\Scripts\Activate.ps1

Falls unter Windows der Befehl python den Microsoft Store öffnet oder die Version nicht anzeigt, verwenden Sie:

py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1

macOS/Linux:

python3 -m venv .venv
source .venv/bin/activate

2. Abhängigkeiten installieren

pip install -r requirements.txt

3. Server starten

python server.py

Lokaler MCP-Endpunkt:

http://localhost:8000/mcp

Standardprüfung, ob der Server läuft:

http://localhost:8000/health

Wenn der Client einen Endpunkt mit einem Schrägstrich am Ende anfordert, verwenden Sie:

http://localhost:8000/mcp/

Lokale Überprüfung

Lassen Sie python server.py laufen. Führen Sie in einem zweiten Terminal Folgendes aus:

Invoke-RestMethod http://localhost:8000/health

Erwartete Antwort:

{
  "status": "ok"
}

Wichtig: Wenn Sie http://localhost:8000/mcp im Browser öffnen oder mit einem normalen curl ohne MCP-Header aufrufen, sehen Sie möglicherweise einen Fehler:

{
  "error": {
    "message": "Not Acceptable: Client must accept text/event-stream"
  }
}

Das ist für einen MCP-Endpunkt normal. Überprüfen Sie /health mit einem normalen Browser und /mcp mit einem MCP-Client.

@'
import asyncio
from fastmcp import Client

async def main():
    async with Client("http://localhost:8000/mcp") as client:
        tools = await client.list_tools()
        print("TOOLS:")
        for tool in tools:
            print("-", tool.name)

        result = await client.call_tool(
            "run_orchestrator",
            {"goal": "Create an MVP launch plan"}
        )
        print("RESULT:")
        print(result)

asyncio.run(main())
'@ | python

Erwartete Bedeutung der Antwort: Der Server zeigt das Tool run_orchestrator an und gibt ein JSON mit dem Text zurück, dass der Platzhalter die Aufgabe akzeptiert hat.

Sie können dies auch über den MCP Inspector überprüfen:

npx @modelcontextprotocol/inspector

Wählen Sie in der UI den Transport Streamable HTTP und die URL:

http://localhost:8000/mcp

Deployment auf Render

Variante über GitHub

  1. Erstellen Sie ein neues GitHub-Repository.

  2. Laden Sie diese Dateien dort hoch.

  3. Öffnen Sie Render.

  4. Klicken Sie auf New -> Web Service.

  5. Verbinden Sie das GitHub-Repository.

  6. Render liest normalerweise render.yaml automatisch.

  7. Bei manueller Konfiguration:

    • Runtime: Python

    • Build Command: pip install -r requirements.txt

    • Start Command: python server.py

  8. Klicken Sie auf Deploy.

Nach dem Deployment gibt Render eine URL in etwa dieser Form aus:

https://chatgpt-orchestrator-mcp.onrender.com

Der Production-MCP-Endpunkt lautet:

https://chatgpt-orchestrator-mcp.onrender.com/mcp

Production-Health-Endpunkt zur Überprüfung im Browser:

https://chatgpt-orchestrator-mcp.onrender.com/health

Genau diese URL muss in ChatGPT eingefügt werden.

Verbindung mit ChatGPT herstellen

  1. Öffnen Sie ChatGPT im Browser.

  2. Gehen Sie zu Settings.

  3. Öffnen Sie Apps & Connectors oder Connectors.

  4. Aktivieren Sie den Developer Mode, falls dieser noch nicht eingeschaltet ist:

    • Advanced settings

    • Developer mode

  5. Klicken Sie auf Create oder Create connector.

  6. Ausfüllen:

    • Name: Orchestrator

    • Description: Runs my main orchestrator agent through MCP.

    • Connector URL: https://YOUR-RENDER-SERVICE.onrender.com/mcp

  7. Speichern.

  8. Wählen Sie in einem neuen Chat diesen Connector/Tool aus und bitten Sie ChatGPT, den Orchestrator aufzurufen.

Beispiel für eine Testanfrage in ChatGPT

Используй Orchestrator и вызови run_orchestrator с goal:
"Составь пошаговый план запуска MVP моего продукта"

Die erwartete Antwort des Tools sieht derzeit etwa so aus:

{
  "status": "ok",
  "message": "Stub orchestrator accepted the goal.",
  "goal": "Составь пошаговый план запуска MVP моего продукта",
  "next_step": "Replace call_real_orchestrator() in server.py with your real agent call."
}

Wo der Platzhalter durch den echten Agenten ersetzt wird

Öffnen Sie server.py und suchen Sie die Funktion:

def call_real_orchestrator(goal: str) -> dict[str, Any]:

Derzeit gibt sie ein Test-JSON zurück. Ersetzen Sie später den Funktionskörper durch den echten Aufruf Ihres Hauptagenten.

Beispiel für eine zukünftige Ersetzung:

def call_real_orchestrator(goal: str) -> dict[str, Any]:
    result = my_main_agent.run(goal)
    return {
        "status": "ok",
        "goal": goal,
        "result": result,
    }

Wichtig: Erstellen Sie in der ersten Phase keinen separaten MCP-Server für jeden Hilfsagenten. Lassen Sie ChatGPT nur das Tool run_orchestrator sehen, und lassen Sie Ihren Hauptagenten intern entscheiden, welche Hilfsagenten aufgerufen werden sollen.

Zusammenfassende URLs

Lokal:

http://localhost:8000/mcp

Production-URL-Vorlage:

https://YOUR-RENDER-SERVICE.onrender.com/mcp

URL für ChatGPT:

https://YOUR-RENDER-SERVICE.onrender.com/mcp

Nützliche offizielle Dokumente

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vadimsey/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server