Merge pull request #971 from Lidang-Jiang/fix/codex-mcp-startup-timeout

fix(codex): add startup_timeout_sec to MCP servers to prevent first-run timeouts
This commit is contained in:
Affaan Mustafa
2026-03-28 19:42:39 -04:00
committed by GitHub
2 changed files with 14 additions and 6 deletions

View File

@@ -38,10 +38,12 @@ notify = [
[mcp_servers.github] [mcp_servers.github]
command = "npx" command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"] args = ["-y", "@modelcontextprotocol/server-github"]
startup_timeout_sec = 30
[mcp_servers.context7] [mcp_servers.context7]
command = "npx" command = "npx"
args = ["-y", "@upstash/context7-mcp@latest"] args = ["-y", "@upstash/context7-mcp@latest"]
startup_timeout_sec = 30
[mcp_servers.exa] [mcp_servers.exa]
url = "https://mcp.exa.ai/mcp" url = "https://mcp.exa.ai/mcp"
@@ -49,14 +51,17 @@ url = "https://mcp.exa.ai/mcp"
[mcp_servers.memory] [mcp_servers.memory]
command = "npx" command = "npx"
args = ["-y", "@modelcontextprotocol/server-memory"] args = ["-y", "@modelcontextprotocol/server-memory"]
startup_timeout_sec = 30
[mcp_servers.playwright] [mcp_servers.playwright]
command = "npx" command = "npx"
args = ["-y", "@playwright/mcp@latest", "--extension"] args = ["-y", "@playwright/mcp@latest", "--extension"]
startup_timeout_sec = 30
[mcp_servers.sequential-thinking] [mcp_servers.sequential-thinking]
command = "npx" command = "npx"
args = ["-y", "@modelcontextprotocol/server-sequential-thinking"] args = ["-y", "@modelcontextprotocol/server-sequential-thinking"]
startup_timeout_sec = 30
# Additional MCP servers (uncomment as needed): # Additional MCP servers (uncomment as needed):
# [mcp_servers.supabase] # [mcp_servers.supabase]

View File

@@ -83,20 +83,23 @@ function dlxServer(name, pkg, extraFields, extraToml) {
} }
/** Each entry: key = section name under mcp_servers, value = { toml, fields } */ /** Each entry: key = section name under mcp_servers, value = { toml, fields } */
const DEFAULT_MCP_STARTUP_TIMEOUT_SEC = 30;
const DEFAULT_MCP_STARTUP_TIMEOUT_TOML = `startup_timeout_sec = ${DEFAULT_MCP_STARTUP_TIMEOUT_SEC}`;
const ECC_SERVERS = { const ECC_SERVERS = {
supabase: dlxServer('supabase', '@supabase/mcp-server-supabase@latest', { startup_timeout_sec: 20.0, tool_timeout_sec: 120.0 }, 'startup_timeout_sec = 20.0\ntool_timeout_sec = 120.0'), supabase: dlxServer('supabase', '@supabase/mcp-server-supabase@latest', { startup_timeout_sec: 20.0, tool_timeout_sec: 120.0 }, 'startup_timeout_sec = 20.0\ntool_timeout_sec = 120.0'),
playwright: dlxServer('playwright', '@playwright/mcp@latest'), playwright: dlxServer('playwright', '@playwright/mcp@latest', { startup_timeout_sec: DEFAULT_MCP_STARTUP_TIMEOUT_SEC }, DEFAULT_MCP_STARTUP_TIMEOUT_TOML),
'context7-mcp': dlxServer('context7-mcp', '@upstash/context7-mcp'), 'context7-mcp': dlxServer('context7-mcp', '@upstash/context7-mcp@latest', { startup_timeout_sec: DEFAULT_MCP_STARTUP_TIMEOUT_SEC }, DEFAULT_MCP_STARTUP_TIMEOUT_TOML),
exa: { exa: {
fields: { url: 'https://mcp.exa.ai/mcp' }, fields: { url: 'https://mcp.exa.ai/mcp' },
toml: `[mcp_servers.exa]\nurl = "https://mcp.exa.ai/mcp"` toml: `[mcp_servers.exa]\nurl = "https://mcp.exa.ai/mcp"`
}, },
github: { github: {
fields: { command: 'bash', args: ['-lc', GH_BOOTSTRAP] }, fields: { command: 'bash', args: ['-lc', GH_BOOTSTRAP], startup_timeout_sec: DEFAULT_MCP_STARTUP_TIMEOUT_SEC },
toml: `[mcp_servers.github]\ncommand = "bash"\nargs = ["-lc", ${JSON.stringify(GH_BOOTSTRAP)}]` toml: `[mcp_servers.github]\ncommand = "bash"\nargs = ["-lc", ${JSON.stringify(GH_BOOTSTRAP)}]\n${DEFAULT_MCP_STARTUP_TIMEOUT_TOML}`
}, },
memory: dlxServer('memory', '@modelcontextprotocol/server-memory'), memory: dlxServer('memory', '@modelcontextprotocol/server-memory', { startup_timeout_sec: DEFAULT_MCP_STARTUP_TIMEOUT_SEC }, DEFAULT_MCP_STARTUP_TIMEOUT_TOML),
'sequential-thinking': dlxServer('sequential-thinking', '@modelcontextprotocol/server-sequential-thinking') 'sequential-thinking': dlxServer('sequential-thinking', '@modelcontextprotocol/server-sequential-thinking', { startup_timeout_sec: DEFAULT_MCP_STARTUP_TIMEOUT_SEC }, DEFAULT_MCP_STARTUP_TIMEOUT_TOML)
}; };
// Append --features arg for supabase after dlxServer builds the base // Append --features arg for supabase after dlxServer builds the base