Skip to content

MCP tool calls hard-cap at 60s; warehouse queries abort #1

Description

@regutierrez

Summary

Executor MCP tool invocations abort at 60 seconds. There is no env, compose, or toolkit knob to raise that ceiling. Typical warehouse/db queries (Snowflake run_snowflake_query, Postgres via dbhub) often need longer and fail as transportFailure.

Observed error from the MCP SDK path (v1.6.8):

Error: MCP tool failed: The operation was aborted due to timeout

Live example: three parallel snowflake.org.blushift.run_snowflake_query calls through /mcp/toolkits/akkio died at ~60.3s and ~61.9s.

Where the 60s lives

v1.6.8 (ghcr.io/usefulsoftwareco/executor-selfhost:1.6.8, latest published tag 2026-09-05):

  • MCP plugin does connection.client.callTool({ name, arguments }) with no timeout
  • @modelcontextprotocol/sdk then applies DEFAULT_REQUEST_TIMEOUT_MSEC = 60000

main after UsefulSoftwareCo#1956 (unreleased):

  • SDK timer is set to MCP_SDK_TIMEOUT_BACKSTOP_MS = 2_147_483_647
  • real ceiling is still hardcoded MCP_ACTIVE_WORK_TIMEOUT_MS = 60_000 in packages/plugins/mcp/src/sdk/invoke.ts
  • that timer pauses only for elicitation, not for a long SQL statement

Abort message on main would be: MCP tool invocation exceeded its active-work deadline. Same 60s wall.

What does not control this

Knob What it actually bounds
EXECUTOR_SANDBOX_TIMEOUT_MS QuickJS sandbox (default 5 min). Inner MCP still dies at 60s.
GraphQL plugin timeout 110s in the same binary; MCP is separate
dbhub query_timeout tighter Postgres ceiling (e.g. 30s), not the MCP client
Pi / Flue / Slack client timeouts outer HTTP; Executor already aborted the inner tool

What we need

A caller- or host-configurable MCP invoke timeout, e.g.:

Default 60s can stay. Warehouse toolkits need a way to wait minutes, not one minute.

Workaround until then

Small bounded reads (LIMIT, short window, one query at a time). Do not raise EXECUTOR_SANDBOX_TIMEOUT_MS expecting it to help.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions