ta
TanStack
GitHub
ai
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
ai
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
feat/mcp-tool-annotations
ae411b7c feat(ai-mcp): type metadata.mcp on the tools() return type `ServerTool.metadata` is `Record<string, any> | undefined`, so `tool.metadata.mcp` did not compile and its fields were `any` — reading the forwarded MCP title/annotations needed a hand-written annotation that TS could not check. Every `tools()` path (single client, explicit `tools([...defs])`, and the `createMCPClients` pool) now returns `McpServerTool`s: structurally still `ServerTool`s, but with `metadata.mcp` statically present and typed as `McpToolMetadata`. So `tool.metadata.mcp.annotations?.readOnlyHint` infers on its own and a misspelled field is a compile error. - `McpToolMetadata.serverToolName` / `.title` are now required, since both are always stamped — no more fallback for a value that is never missing. - The explicit path rebuilds the bound tool instead of mutating it, because assigning `metadata` cannot narrow the declared type. - Docs, tests, and the e2e route drop their annotations and read straight through; new type-level tests cover all four paths plus the typo case.
by Alem Tuzlak
A
Succeeded
feat/mcp-tool-annotations
ae411b7c Merge fdc175495e230e22e0658d54c830fbb0056f89e9 into 59aa8b5049549246227c8f2cf736ce50d05205a5
by Surya Ashish
S
Previous
Next