Repository navigation
feat(mcp): clear retryable errors + cold-start note for hosted clients - #20
Open
abrahamperz wants to merge 1 commit into
Open
abrahamperz wants to merge 1 commit into
abrahamperz wants to merge 1 commit into
Conversation
A plain exception from a tool handler reached MCP clients as an opaque "error executing tool" (what a cold-start / slow-target failure looked like). Now: - _call() wraps every hosted tool: non-ToolError exceptions are re-raised as ToolError with the reason + a retry hint; ToolErrors pass through. - Server instructions note that the first call after idle may need a retry while the function cold-starts. - Tests cover both _call branches. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué
Que el cliente del MCP sepa reintentar cuando una llamada falla por cold-start o un sitio lento, en vez de recibir el genérico "error executing tool".
Por qué
Hoy, cualquier excepción normal en un handler llega al cliente enmascarada como "error executing tool fetch_markdown" (el propio código ya lo comenta en
_guarded). Eso fue justo lo que vimos al probar tras el deploy: la 1ª llamada (cold start) falló con ese mensaje opaco, y el reintento funcionó.Cambios
_call()envuelve los 6 tools hospedados: una excepción que no seaToolErrorse re-lanza comoToolErrorcon la razón + "retry once" (amable con cold-start). LosToolError(SSRF, seed errors) pasan sin tocar._call.Notas
🤖 Generated with Claude Code