ChatGPT Orchestrator MCP Server
ChatGPT 오케스트레이터 MCP 서버
다음 구조를 위한 최소한의 Python 기반 원격 MCP 서버:
ChatGPT -> MCP server -> main orchestrator -> helper agents첫 번째 단계에서 서버는 하나의 도구를 포함합니다:
run_orchestrator입력:
goal: string출력: 단순 JSON
내부에는 현재 스텁이 포함되어 있습니다. 나중에 이를 실제 메인 에이전트 호출로 대체할 수 있습니다.
FastMCP를 사용하는 이유
FastMCP는 일반 Python 함수로 MCP 도구를 정의하고 HTTP를 통해 원격 MCP 엔드포인트를 즉시 실행할 수 있기 때문에 선택되었습니다. ChatGPT에 연결하려면 /mcp와 같은 공개 HTTPS 엔드포인트가 필요합니다.
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.ps1Windows에서 python 명령어가 Microsoft Store를 열거나 버전을 표시하지 않는 경우 다음을 사용하세요:
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1macOS/Linux:
python3 -m venv .venv
source .venv/bin/activate2. 의존성 설치
pip install -r requirements.txt3. 서버 실행
python server.py로컬 MCP 엔드포인트:
http://localhost:8000/mcp서버가 작동 중인지 확인하는 일반적인 방법:
http://localhost:8000/health클라이언트가 슬래시로 끝나는 엔드포인트를 요청하는 경우 다음을 사용하세요:
http://localhost:8000/mcp/로컬 테스트
python server.py를 실행 상태로 두세요. 두 번째 터미널에서 다음을 실행합니다:
Invoke-RestMethod http://localhost:8000/health예상 응답:
{
"status": "ok"
}중요: 브라우저에서 http://localhost:8000/mcp를 열거나 MCP 헤더 없이 일반 curl로 요청하면 오류가 발생할 수 있습니다:
{
"error": {
"message": "Not Acceptable: Client must accept text/event-stream"
}
}이는 MCP 엔드포인트에서 정상적인 동작입니다. 브라우저에서는 /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예상 응답 의미: 서버가 run_orchestrator 도구를 표시하고 스텁이 작업을 수락했다는 텍스트가 포함된 JSON을 반환합니다.
MCP Inspector를 통해서도 확인할 수 있습니다:
npx @modelcontextprotocol/inspectorUI에서 Streamable HTTP 전송 방식을 선택하고 URL을 입력하세요:
http://localhost:8000/mcpRender에 배포
GitHub를 통한 방법
새 GitHub 저장소를 만듭니다.
이 파일들을 업로드합니다.
Render를 엽니다.
New->Web Service를 클릭합니다.GitHub 저장소를 연결합니다.
Render는 일반적으로
render.yaml을 자동으로 읽습니다.수동으로 설정하는 경우:
Runtime:
PythonBuild Command:
pip install -r requirements.txtStart Command:
python server.py
Deploy를 클릭합니다.
배포 후 Render는 다음과 같은 형식의 URL을 제공합니다:
https://chatgpt-orchestrator-mcp.onrender.com프로덕션 MCP 엔드포인트는 다음과 같습니다:
https://chatgpt-orchestrator-mcp.onrender.com/mcp브라우저 확인용 프로덕션 상태(health) 엔드포인트:
https://chatgpt-orchestrator-mcp.onrender.com/healthChatGPT에 입력해야 할 URL은 바로 이것입니다.
ChatGPT에 연결하는 방법
브라우저에서 ChatGPT를 엽니다.
Settings로 이동합니다.Apps & Connectors또는Connectors를 엽니다.개발자 모드가 꺼져 있다면 켭니다:
Advanced settingsDeveloper mode
Create또는Create connector를 클릭합니다.다음을 입력합니다:
Name:
OrchestratorDescription:
Runs my main orchestrator agent through MCP.Connector URL:
https://YOUR-RENDER-SERVICE.onrender.com/mcp
저장합니다.
새 채팅에서 이 커넥터/도구를 선택하고 ChatGPT에게 오케스트레이터를 호출하도록 요청합니다.
ChatGPT 테스트 요청 예시
Используй Orchestrator и вызови run_orchestrator с goal:
"Составь пошаговый план запуска MVP моего продукта"현재 도구로부터 예상되는 응답은 다음과 같습니다:
{
"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 서버를 만들지 마세요. ChatGPT가 run_orchestrator 도구 하나만 인식하게 하고, 내부의 메인 에이전트가 어떤 보조 에이전트를 호출할지 결정하게 하세요.
최종 URL
로컬:
http://localhost:8000/mcp프로덕션 URL 템플릿:
https://YOUR-RENDER-SERVICE.onrender.com/mcpChatGPT용 URL:
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.
This server cannot be installed
Maintenance
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
LLM Orchestration Agent (Mcp)
Hosted MCP runtime where the agent is the operator: sign up by tool call, publish your own tools.
MCP-Native LLM Orchestration Agent
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn 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
- AlicenseAqualityDmaintenanceAn agent orchestration layer that wraps expert agents as MCP tools, enabling integration with Claude Desktop, Cursor, and other MCP-compatible environments.4179MIT
- FlicenseNot gradedqualityCmaintenanceEnables LLM-powered agents to securely communicate with and orchestrate downstream microservices via FastAPI endpoints exposed as MCP tools.-
- AlicenseNot gradedqualityBmaintenanceEnables multi-model leader-worker agent orchestration, workflow execution, and deterministic validation via structured MCP tools.16Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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