Skip to content

feat(mcp-adapters): checkpoint elicitation with LangGraph interrupts - #11644

Open
Baihao Wang (byhow) wants to merge 6 commits into
codex/mcp-direct-continuationfrom
codex/mcp-graph-elicitation
Open

Baihao Wang (byhow) wants to merge 6 commits into
codex/mcp-direct-continuationfrom
codex/mcp-graph-elicitation

Conversation

@byhow

@byhow Baihao Wang (byhow) commented Sep 15, 2026

Copy link
Copy Markdown

What changes?

Modern MCP tools pause checkpointed LangGraph runs for form or URL input by default. Each invocation has its own interrupt scope, including parallel calls to the same tool. Resume answers must match the pending question keys and schemas; invalid answers reissue the questions with a validation message so callers can correct them on the same thread. The public interrupt exposes questions; effective arguments and opaque server continuation data stay in checkpointed request rounds, with automatic task retries disabled.

Graph/direct execution is selected when the tool is invoked, so tools discovered outside a graph can later run inside one. Modern requests advertise form and URL elicitation support. Graph calls require connection-level headers; direct calls retain per-call overrides. Legacy servers keep their configured callbacks.

How was it tested?

  • 401 tests passed after merging feat(mcp-adapters): handle direct tool continuations #11643's review fixes, with two existing skips. Package/example type checks, ESM/CommonJS builds, attw, publint, lint and formatting passed.
  • Real local servers cover reconstructed adapters, multi-round form/URL input, invalid answers, accept/decline/cancel, state-only responses, cancellation and round limits.
  • Hook and capability checks cover invocation-time graph selection, retained arguments, rejected graph header overrides and automatic legacy negotiation.
  • Regression tests first reproduced swapped answers between parallel calls and threads stuck after malformed answers, then passed with invocation isolation and answer correction. Initial server calls and hooks are not repeated.

Scope and limits

Third replacement slice of #11615, stacked on #11643. Detailed interrupt/resume guidance is preserved in the separate langchain-ai/docs draft. No OAuth additions, dependency or CI changes.

Revision-specific public SDK elicitation validators remain a prerequisite for the major release. The SDK continuation and request-metadata overrides remain maintenance dependencies. A crash between a server action and checkpoint persistence can repeat that action; checkpointing does not guarantee exactly-once execution. This integration covers tool elicitation, not sampling or prompt/resource interruption.

@changeset-bot

changeset-bot Bot commented Sep 15, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 3e12ad4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@langchain/mcp-adapters Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@byhow
Baihao Wang (byhow) marked this pull request as ready for review September 15, 2026 01:08

@open-swe open-swe Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Open SWE Review: No issues found

Open SWE reviewed this PR and found no potential bugs to report.

Open in WebView Open SWE trace

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant