Problem
When following the Quick Start in examples/hugging_face_task/README.md and running ./run.sh locally, the script fails with a 503 Service Unavailable on the POST /apps call after the environment is populated:
[07:19:28] Configuring MCP servers...
[07:19:28] Servers: ['calendar_server', 'chat_server', 'code_execution_server', 'sheets_server', 'filesystem_server', 'mail_server', 'pdf_server', 'slides_server', 'docs_server']
...
httpx.HTTPStatusError: Server error '503 Service Unavailable' for url 'http://localhost:8080/apps'
Checking the container logs reveals that 5 servers fail their readiness check:
WARNING | Server 'mail_server' FAILED after 7 attempt(s) (303.0s): No tools found after 303.0s (last error: Timeout)
WARNING | Server 'calendar_server' FAILED after 7 attempt(s) (303.0s): No tools found after 303.0s (last error: Timeout)
WARNING | Server 'sheets_server' FAILED after 7 attempt(s) (303.0s): No tools found after 303.0s (last error: Timeout)
WARNING | Server 'docs_server' FAILED after 7 attempt(s) (303.0s): No tools found after 303.0s (last error: Timeout)
WARNING | Server 'code_execution_server' FAILED after 7 attempt(s) (303.0s): No tools found after 303.0s (last error: Timeout)
ERROR | MCP readiness check failed: 5 server(s) not ready (4 server(s) ready)
Root Cause
The 5 failing servers all depend on a private GitHub package mercor-mcp-shared (from https://github.com/Mercor-Intelligence/mercor-mcp-shared):
mcp_servers/mail/pyproject.toml
mcp_servers/calendar/pyproject.toml
mcp_servers/documents/pyproject.toml
mcp_servers/spreadsheets/pyproject.toml
mcp_servers/code/mcp_servers/code_execution_server/ (via the code build step)
The Dockerfile does support passing a github_token build secret for exactly this purpose:
RUN --mount=type=secret,id=github_token,required=false export UV_GITHUB_TOKEN= && if [ -n "$UV_GITHUB_TOKEN" ]; then git config ...; fi && ( cd /app/mcp_servers/mail/mcp_servers/mail_server && uv sync --all-extras || echo "WARNING: mail install failed, skipping" )
However, because the secret is required=false and the install step has || echo "WARNING: ... install failed, skipping", the Docker build succeeds silently when no token is provided. The user gets a working image where these 5 servers are effectively hollow — they start but expose no tools, causing the 5-minute readiness timeout.
The 4 servers that work (filesystem_server, chat_server, pdf_server, slides_server) have no dependency on mercor-mcp-shared and install fine without a token.
Environment
- OS: Linux (Ubuntu)
- Docker version: (standard)
- Ran without
GITHUB_TOKEN secret during docker build
Problem
When following the Quick Start in
examples/hugging_face_task/README.mdand running./run.shlocally, the script fails with a503 Service Unavailableon thePOST /appscall after the environment is populated:Checking the container logs reveals that 5 servers fail their readiness check:
Root Cause
The 5 failing servers all depend on a private GitHub package
mercor-mcp-shared(fromhttps://github.com/Mercor-Intelligence/mercor-mcp-shared):mcp_servers/mail/pyproject.tomlmcp_servers/calendar/pyproject.tomlmcp_servers/documents/pyproject.tomlmcp_servers/spreadsheets/pyproject.tomlmcp_servers/code/mcp_servers/code_execution_server/(via the code build step)The
Dockerfiledoes support passing agithub_tokenbuild secret for exactly this purpose:However, because the secret is
required=falseand the install step has|| echo "WARNING: ... install failed, skipping", the Docker build succeeds silently when no token is provided. The user gets a working image where these 5 servers are effectively hollow — they start but expose no tools, causing the 5-minute readiness timeout.The 4 servers that work (
filesystem_server,chat_server,pdf_server,slides_server) have no dependency onmercor-mcp-sharedand install fine without a token.Environment
GITHUB_TOKENsecret duringdocker build