> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mcp-assistant.in/llms.txt
> Use this file to discover all available pages before exploring further.

# April 27, 2026

> Release notes for mcp-ts v1.5.3: AG-UI adapter reliability fixes and clearer meta-tool execution guidance to help LLMs use Tool Router correctly.

## Updates

### Clearer execution guidance for discovered tools

The [`mcp_get_tool_schema`](/core-concepts/meta-tools) meta-tool now returns explicit `executionInstructions` alongside each tool schema, telling the LLM exactly which tool to call next (`mcp_execute_tool`) and which `serverId` and `toolName` to pass. This prevents models from trying to invoke discovered tools directly when the [Tool Router](/core-concepts/tool-router) is in `search` mode, which would otherwise fail because only the meta-tools are actually registered.

The description of `mcp_get_tool_schema` was also updated to reinforce this flow: discover, read schema, then execute via `mcp_execute_tool`.

## Bug fixes

* **AG-UI UI stalling and `INCOMPLETE_STREAM` errors** — Fixed an issue in the [AG-UI adapter](/ai-adapters/agui) where streamed assistant text could be dropped and continuation runs could stall the UI. The middleware now correctly accumulates `TEXT_MESSAGE_CONTENT` events (in addition to chunked deltas) and uses the canonical AG-UI field names (`toolCalls`, `toolCallId`) when reconstructing assistant and tool messages for the next continuation.
* **LangGraph continuation loops with re-executed tools** — Fixed a regression where LangGraph snapshots that included historical tool calls would cause the [AG-UI adapter](/ai-adapters/agui) to re-execute MCP tools that had already completed in an earlier turn. The middleware now tracks resolved tool-call IDs from snapshot history and ignores tool calls that already have a matching tool result.
* **Snapshot-only final answers reaching the UI** — Fixed an over-eager filter that could suppress `MESSAGES_SNAPSHOT` events containing the final assistant answer when no streamed text had been seen. Snapshot-only answers now reach the UI; only true duplicates of an already-streamed message are filtered.
* **LangGraph crash on duplicated streamed tool arguments** — Some upstream agents emit the same `TOOL_CALL_ARGS` delta more than once, producing concatenated JSON like `{"q":"x"}{"q":"x"}` in the assistant history. The [AG-UI adapter](/ai-adapters/agui) now parses and re-serializes tool-call arguments before adding the assistant message to the run, so LangGraph continuations no longer crash when reading history.
