Closes #26529. When an MCP server returns a tool whose \`outputSchema\` contains a broken \`$ref\` (e.g. Google Stitch's \`#/$defs/ScreenInstance\`), the SDK's typed \`listTools()\` validator throws and opencode marks the ENTIRE server as failed — losing every other valid tool the server exposes. Catch the schema-reference errors and retry with a tolerant schema (\`looseObject\` + \`outputSchema: z.unknown().optional()\`) via the raw \`request\` path so the bad tool's schema is accepted as opaque while the others load normally. Equivalent fix shape to #26530 (nicolascancino) — kept his approach since it's correct. Bundles our reproducer test from \`kit/issue-reproducers\` so the regression is locked in. Verified red → green → red → green: - pre-fix: server marked \`failed\` - post-fix: server stays \`connected\`, valid tool present |
||
|---|---|---|
| .. | ||
| bin | ||
| migration | ||
| script | ||
| specs | ||
| src | ||
| test | ||
| .gitignore | ||
| AGENTS.md | ||
| BUN_SHELL_MIGRATION_PLAN.md | ||
| bunfig.toml | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| git | ||
| package.json | ||
| parsers-config.ts | ||
| README.md | ||
| sst-env.d.ts | ||
| tsconfig.json | ||