Skip to main content
Glama
vadimsey

ChatGPT Orchestrator MCP Server

by vadimsey

ChatGPT Orchestrator MCP Server

Минимальный remote MCP server на Python для схемы:

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

На первом этапе сервер содержит один tool:

  • run_orchestrator

  • вход: goal: string

  • выход: простой JSON

Внутри сейчас стоит заглушка. Позже ее можно заменить на вызов вашего настоящего главного агента.

Почему FastMCP

FastMCP выбран потому, что он позволяет описать MCP tool обычной Python-функцией и сразу запустить remote MCP endpoint по HTTP. Для подключения в ChatGPT нужен публичный HTTPS endpoint вида /mcp.

Related MCP server: impart-mcp

Структура проекта

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

Локальный запуск

Требования:

  • Python 3.11+

  • pip

1. Создать виртуальное окружение

PowerShell:

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

Если на Windows команда python открывает Microsoft Store или не показывает версию, используйте:

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

macOS/Linux:

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

2. Установить зависимости

pip install -r requirements.txt

3. Запустить сервер

python server.py

Локальный MCP endpoint:

http://localhost:8000/mcp

Обычная проверка, что сервер жив:

http://localhost:8000/health

Если клиент просит endpoint со слэшем в конце, используйте:

http://localhost:8000/mcp/

Проверка локально

Оставьте python server.py запущенным. Во втором терминале выполните:

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

Ожидаемый ответ:

{
  "status": "ok"
}

Важно: если открыть http://localhost:8000/mcp в браузере или дернуть его обычным curl без MCP-заголовков, можно увидеть ошибку:

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

Это нормально для MCP endpoint. Проверяйте /health обычным браузером, а /mcp проверяйте MCP-клиентом.

@'
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

Ожидаемый смысл ответа: сервер покажет tool run_orchestrator и вернет JSON с текстом, что заглушка приняла задачу.

Можно также проверить через MCP Inspector:

npx @modelcontextprotocol/inspector

В UI выберите transport Streamable HTTP и URL:

http://localhost:8000/mcp

Деплой на Render

Вариант через GitHub

  1. Создайте новый GitHub-репозиторий.

  2. Загрузите туда эти файлы.

  3. Откройте Render.

  4. Нажмите New -> Web Service.

  5. Подключите GitHub-репозиторий.

  6. Render обычно сам прочитает render.yaml.

  7. Если настраиваете вручную:

    • Runtime: Python

    • Build Command: pip install -r requirements.txt

    • Start Command: python server.py

  8. Нажмите Deploy.

После деплоя Render выдаст URL примерно такого вида:

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

Production MCP endpoint будет:

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

Production health endpoint для проверки в браузере:

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

Именно этот URL нужно вставлять в ChatGPT.

Как подключить к ChatGPT

  1. Откройте ChatGPT в браузере.

  2. Перейдите в Settings.

  3. Откройте Apps & Connectors или Connectors.

  4. Включите Developer Mode, если он еще выключен:

    • Advanced settings

    • Developer mode

  5. Нажмите Create или Create connector.

  6. Заполните:

    • Name: Orchestrator

    • Description: Runs my main orchestrator agent through MCP.

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

  7. Сохраните.

  8. В новом чате выберите этот connector/tool и попросите ChatGPT вызвать оркестратор.

Пример тестового запроса в ChatGPT

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

Ожидаемый ответ от tool сейчас будет примерно:

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

Где заменить заглушку на реального агента

Откройте server.py и найдите функцию:

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

Сейчас она возвращает тестовый JSON. Позже замените ее тело на реальный вызов вашего главного агента.

Пример будущей замены:

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

Важно: не создавайте отдельный MCP server для каждого подручного агента на первом этапе. Пусть ChatGPT видит только один tool run_orchestrator, а уже ваш главный агент внутри решает, каких подручных вызывать.

Итоговые URL

Локально:

http://localhost:8000/mcp

Production URL-шаблон:

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

URL для ChatGPT:

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

Полезные официальные документы

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
ResponsivenessSyncing

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP-based tool orchestrator that exposes a single execute_task tool to Claude while internally managing 100+ tools through hierarchical navigation with a cheaper LLM, preventing context overflow from loading all tool definitions.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An agent orchestration layer that wraps expert agents as MCP tools, enabling integration with Claude Desktop, Cursor, and other MCP-compatible environments.
    4
    17
    9
    MIT
  • -
    license
    Not graded
    quality
    B
    maintenance
    Enables users to interact with a set of tools via an LLM agent, allowing natural language requests to be processed and executed through the MCP server.
    -

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