langchain-ai
langchain
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
feat(langchain): mark the `langchain.mcp` namespace as beta Importing from `langchain.mcp` now raises a `LangChainBetaWarning`, so a caller learns the API may still change at the moment they reach for it. Warned from the package body rather than through `@beta`, which annotates a function or class and so only fires once something is called. The status belongs to the namespace as a whole, and importing a submodule directly runs this module first, so both `from langchain.mcp import MCPAdapter` and `from langchain.mcp.elicitation import ...` are covered. `LangChainBetaWarning` subclasses `DeprecationWarning`, which Python mutes outside `__main__`, but importing `langchain_core._api` installs a `default` filter for it specifically, so it surfaces under stock settings. Tests pin that it fires, that it stays silenceable, and that the public names still export.
sydney-runkle/langchain/simplify-mcp-adapter
31 minutes ago
feat(langchain): accept a `ClientGroup` as an `MCPAdapter` target A `ClientGroup` keeps one client per server instead of composing them behind a proxy, so each negotiates its own protocol era. That is the difference from an `MCPConfig` target, which settles on a single era for every server behind it: a fleet spanning the handshake and discover eras is now reachable through one adapter, with tools namespaced `{server}_{tool}`. Two differences from a single client had to be absorbed: `ClientGroup` refuses re-entry where `Client` is reference counted, so entering it unconditionally would break `get_tools()` inside `async with MCPAdapter(...)` and every tool call after it. `_connected` now enters a group only when its clients are not already connected, which is the readiness its own operations require. The interrupt-driven elicitation loop drives a session directly and speaks the server's own tool name, neither of which a group has, so a group's tool calls resolve their route first and drive the member client. Interrupt mode also rebuilds the group from clones, leaving the caller's clients unarmed — the rule a pre-built client already followed. `MCPAdapter.client` and the `client` parameter of `convert_mcp_tool_to_langchain_tool` widen to `Client | ClientGroup`.
sydney-runkle/langchain/simplify-mcp-adapter
46 minutes ago
release(langchain): 1.4.0a2 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
sydney-runkle/langchain/simplify-mcp-adapter
8 hours ago
fix(langchain): remove duplicate test dictionary key Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
mdrxy/fireworks/prompt-cache-middleware
21 hours ago
chore(fireworks): refresh lockfile Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
mdrxy/fireworks/prompt-cache-middleware
21 hours ago
chore(langchain): bump vcrpy test dependency minimum to `>=8.2.0` (#39942) Raises the minimum `vcrpy` version from `>=8.0.0` to `>=8.2.0` in the integration-test dependencies of `langchain-classic` and `langchain`, aligning them with `langchain-openai` (`>=8.2.0`) and `langchain-tests` (`>=8.2.1`), which already require newer versions. Made by [Open SWE](https://openswe.vercel.app/agents/cedc18ba-0856-5697-949e-3c6616845c60) --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
master
21 hours ago
fix(langchain): require full `fastmcp` for the `mcp` extra A multi-server `MCPConfig` mounts its backends on a router, which lives in the server half of FastMCP. The extra pinned `fastmcp-slim[client]`, so the documented multi-server example failed at connect time with "MCP configs with multiple servers require the full `fastmcp` package". The existing multi-server test only asserted on the transport it built, never dialing it, which is why this went unnoticed — so the new test drives two real stdio servers through one adapter. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
sydney-runkle/langchain/simplify-mcp-adapter
1 day ago
fix(langchain): name the content type MCP conversion could not handle `ContentBlock` is closed at type-check time, but only as closed as the installed `mcp`. A caller on a newer SDK could reach the fallback, where `assert_never` raised an `AssertionError` that reads as "impossible" rather than "your `mcp` is newer than this adapter". Both fallbacks now raise a `ValueError` naming the type that arrived, and the embedded-resource branch checks for `BlobResourceContents` instead of assuming anything that is not text carries a `blob` — which would have been an `AttributeError` on a resource kind the SDK adds later. Exhaustiveness is still enforced statically: mypy proves both lines unreachable, so the `unreachable` ignores become unused-ignore errors under `strict` the moment either union grows a member.
sydney-runkle/langchain/simplify-mcp-adapter
1 day ago
Latest Branches
CodSpeed Performance Gauge
0%
feat(langchain): `langchain.mcp` namespace, `MCPAdapter`
#39939
34 minutes ago
bd4f704
sydney-runkle/langchain/simplify-mcp-adapter
CodSpeed Performance Gauge
0%
feat(fireworks): add prompt caching middleware
#38823
21 hours ago
8c02938
mdrxy/fireworks/prompt-cache-middleware
CodSpeed Performance Gauge
0%
docs(langchain): runnable `langchain.mcp` examples
#39976
1 day ago
9e8cc53
sydney-runkle/langchain/mcp-examples
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs