The MCP SDK supports URL mode elicitation via session.elicit_url(), but
the mcp-use Context only exposed form mode via ctx.elicit(). This adds a
clean ctx.elicit_url(message, url) wrapper so Python server authors
don't need to drop down to the raw session API.
- Auto-generates elicitation_id if not provided
- Tracks telemetry as "elicit_url"
- Forwards related_request_id from context
- Includes docstring with usage example
- 6 unit tests covering delegation, actions, telemetry, and ID generation
* fix(python): expose client capabilities to MCP servers
Add list_roots_callback support to Python connectors to properly
advertise the roots capability during MCP initialization handshake.
Previously, the Python library was not exposing any client capabilities
because the list_roots_callback was not being passed to ClientSession.
This fix ensures the roots capability is always advertised, bringing
the Python library in line with the TypeScript implementation.
Changes:
- Add roots and list_roots_callback params to BaseConnector
- Add get_roots() and set_roots() methods for managing roots
- Pass list_roots_callback to ClientSession in all connectors
- Export Root type from connectors module
- Update unit tests to expect list_roots_callback parameter
Closes MCP-1063
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(python): add roots and list_roots_callback params to connectors
- Add roots and list_roots_callback parameters to StdioConnector,
HttpConnector, and SandboxConnector constructors
- Add comprehensive unit tests for client capabilities exposure
- Tests verify roots capability, get_roots(), set_roots(), and
that all callbacks are correctly passed to ClientSession
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: fix import sorting and update API documentation
- Fix import sorting in test_client_capabilities.py (ruff)
- Regenerate API documentation for updated connector classes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(python): add list_roots() method to server Context
Allow MCP servers to request the list of roots from connected clients
via ctx.list_roots(). This follows the same pattern as ctx.sample()
and ctx.elicit() for server-to-client requests.
* feat(python): add roots params to MCPClient and config
- Add roots and list_roots_callback parameters to MCPClient.__init__,
from_dict(), and from_config_file() methods
- Update create_connector_from_config() to pass roots params to all
connector types (Stdio, HTTP, Sandbox)
- Allows clients to configure roots at the MCPClient level and have
them propagate to all sessions
* test(python): add get_client_roots tool to primitive server
Add a tool that demonstrates the roots capability by requesting and
returning the list of roots from the connected client. Used for
integration testing of the roots feature.
* test(python): add integration tests for roots capability
Add comprehensive integration tests for the roots feature:
- test_roots_capability: Verify server can request/receive roots
- test_roots_empty_by_default: Verify empty roots when not provided
- test_roots_with_custom_callback: Verify custom callback precedence
- test_set_roots_updates_server_view: Verify dynamic root updates
* test(python): update unit tests for roots parameters
Update mock assertions in test_client.py to expect the new roots
and list_roots_callback parameters in create_connector_from_config
calls.
* ci(python): add roots to primitive tests and README badge
- Add roots to CI workflow primitive test matrix
- Add roots to PR comment report primitives list
- Add Roots badge to README Primitives row
* feat(docs): enhance MCP client and server documentation for roots feature
- Added `roots` and `list_roots_callback` parameters to MCP client initialization documentation.
- Updated `create_connector_from_config` documentation to include new parameters.
- Introduced `list_roots` method documentation in server context, detailing its usage and return values.
- Improved overall clarity and completeness of API reference for better developer guidance.
* feat(python): add get_client_roots tool to context example
- Introduced a new tool, `get_client_roots`, to the context example, demonstrating how to retrieve and display the list of roots exposed by the client.
- Updated documentation to include the new tool and its functionality, enhancing the example's coverage of context features.
* feat(docs): add roots documentation for client and server
- Introduced new documentation for the `roots` feature, detailing how clients can expose file system roots to MCP servers and how servers can access these roots.
- Added examples for configuring roots in the MCP client and using the `list_roots()` method in the server context.
- Enhanced overall clarity and usability of the documentation to support developers in implementing the roots functionality.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: pietrozullo <pietro.zullo@gmail.com>
* chore: add example server pretty print JSON RPC for transparency
* updated telemetry module
* chore: agent side tel - langchain adapter - client tel
* server side tel:
* update API reference
* python transports and primitive reports are publishes only if not skipped
* remove wrongly generate files
* properly typed middleware
* remove examples
* feat(docs): add middleware and session management documentation
- Introduced new documentation for middleware, detailing hooks, minimal examples, and best practices for integrating middleware in MCP servers.
- Added a session management guide explaining session ID handling, usage patterns, and examples for managing per-client state in MCP servers.
- Updated to include links to the new middleware and session management pages.
* generate docs
* remove few events
* adapter tel
* adapter tel
* api ref docs update
* google adapter fix
* fix version
* fix event naming
* server example is streamable and echo tool fix
* removed initialize middleware hook, initialize requests are not passed thorugh normal handlers
* api ref
* beta on middleware
* feat: server first implementation
* docs: docs for server and images
* chore: locked langchain dependencies in pyproject.toml (#321)
* python/release/1.3.13
* catch uvicorn logs && log session id
* fix debug logic
* docs: logging update
* fix: icon of elicitation
* fix installation paths for local clones
* docs: minor restructuring
* docs: reorganization, killed non existing pages
* docs: beta tag on server
* chore: example servers
* feat: inspector autopopulated and client only
* feat: enhance MCP logging system with customizable formats and improved middleware
* feat: implement weather alert and forecast tools in FastMCP example server
* mcp path configurable
* fix inspector
* export as FastMCP too
* chore: update fastmcp migration example
* lock inspector version
* type runner
* unhide docs and remove dangers
* migration diff
* docs and context example
* export context
* logging improvement
* pretty JSON RPC
* autoConnect url param in inspecotr
* move logging
* type check
* Server Router
* show response logs
* fallback tool name to function name in router registration
* compatibility export
* Introduced ty and prek as type checker and precommit engine respectively - moved ruff config in pyproject toml
* add ty check
* ty runs only on staged files
* ty configuration fix
* move startup info in logging
* remove bug from action
* update claude rules
* fix resource serialization
* comments on inspector errors
* abstracted runner transports
* remove redunant call for network
* fix ip getter
* add inspector mcp path
* response limit logging
* disable ty check in action
* moved transport type to types
* support sse
* show transport type in logs
* change default transport
* refactored tests to use mcp server
* removed fastmcp
* file restructuring
* test table
* sampling, elicitation, tool disabling enabling
* deprecte sse server side
* simplified report
* fix action
* remove sse deprecated test
* move tests files to allow for server integration tests
* docs
* reorg integration test files
* api-reference-doxs
* fix broken links
* telemetry
* remove feature useage from scarf