Commit graph

102 commits

Author SHA1 Message Date
Jeremiah Lowin
ef742d9400
Ensure multi-client configurations use new ProxyClient (#1045)
* Validate elicitation responses are dicts

* Ensure advanced MCP features are forwarded through proxy

* Use proxy client in tests
2025-07-05 11:57:03 -04:00
Jeremiah Lowin
a52c28c319 Ensure tests use stateless mode 2025-07-03 19:55:49 -04:00
Jeremiah Lowin
aab1f74810 response_type is None 2025-06-30 13:12:25 -04:00
Jeremiah Lowin
eaf27c710d Support "no response" elicitation requests 2025-06-30 13:03:57 -04:00
Jeremiah Lowin
ed331e717b Improve early error handling for stdio transport 2025-06-28 21:37:48 -04:00
Jeremiah Lowin
ebc721bdf1 Fix tests 2025-06-28 20:19:08 -04:00
Jeremiah Lowin
ecfbf5de00 Support implicit Elicitation acceptance 2025-06-28 20:15:23 -04:00
Jeremiah Lowin
a34fb9e3bb Support constrained choice 2025-06-28 14:59:31 -04:00
Jeremiah Lowin
3805ac9b44 Provide a response type to client 2025-06-28 09:47:14 -04:00
Jeremiah Lowin
45d9814374 Handler must be async; add to sessionkwargs 2025-06-28 08:32:48 -04:00
Jeremiah Lowin
11d2bacbb4 Merge branch 'main' into elicitation 2025-06-28 08:26:55 -04:00
Jeremiah Lowin
d8dc28b9b2 Add structured content & update almost all tests 2025-06-27 15:40:52 -04:00
Jeremiah Lowin
38036b1f42 Add automatic MCP list change notifications and client message handling
Implements comprehensive notification system for tools, resources, and prompts with automatic client updates and flexible message handlers.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24 22:33:06 -04:00
Jeremiah Lowin
987dd85826 Update test_streamable_http.py 2025-06-22 20:08:36 -04:00
Jeremiah Lowin
ffe0c92d63 Alias streamable-http as http 2025-06-22 20:00:11 -04:00
Jeremiah Lowin
76e3df1bc1 Add "http" as an alias for streamable-http 2025-06-22 18:55:07 -04:00
Jeremiah Lowin
c685c30b8d
Merge branch 'protocol-update' into elicitation 2025-06-22 13:46:08 -04:00
Jeremiah Lowin
73e1aa2112 Apply pre-commit formatting changes
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 10:29:15 -04:00
Jeremiah Lowin
a7f14d90a4 Implement client-side argument serialization with focused tests
- Add pydantic_core.to_json() serialization for non-string prompt arguments
- Update type annotations to accept dict[str, Any] instead of dict[str, str]
- Add focused tests covering specific scenarios:
  * Client always serializes non-string args regardless of server types
  * Integration with server-side type conversion
  * Client serialization error with specific PydanticSerializationError
  * Server deserialization error with specific McpError match

This ensures MCP protocol compliance while maintaining developer experience
with typed arguments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 10:18:48 -04:00
Jeremiah Lowin
18ae625fef Update docs and test 2025-06-20 13:06:48 -04:00
Jeremiah Lowin
c0d3313ac6 Implement elicitation feature for FastMCP following sampling pattern
Added comprehensive elicitation support including:
- Client-side handler infrastructure following sampling pattern
- Server-side Context.elicit() method with type safety and validation
- Support for primitive types (str, int, float, bool) with automatic wrapping
- Support for dataclasses and other complex types
- Pattern matching with AcceptedElicitation, DeclinedElicitation, CancelledElicitation
- Comprehensive atomic test coverage for all scenarios

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 09:47:53 -04:00
Jeremiah Lowin
725c061d66 Fix import prefix behavior 2025-06-19 15:19:31 -04:00
Miki Yutani
60dada7026 Fix code formatting for pre-commit hooks 2025-06-16 13:08:44 +09:00
Miki Yutani
42121b2767 Add version parameter to FastMCP constructor 2025-06-16 12:38:15 +09:00
Alexander Seeliger
ec24a07060 chore: fix format 2025-06-15 18:25:55 +02:00
Alexander Seeliger
68567e5b59 chore: revert change 2025-06-15 18:12:14 +02:00
Alexander Seeliger
64bf0a4112 chore: clean up tests 2025-06-15 18:11:43 +02:00
Alexander Seeliger
92d3cffa53 chore: remove other tests 2025-06-15 17:52:13 +02:00
Alexander Seeliger
bdc3e395e1 fix: missing related_request_id for report_progress 2025-06-15 17:47:09 +02:00
Jeremiah Lowin
a1955eb5cd Remove old client test; ensure server starts on every test 2025-06-14 14:16:18 -04:00
Jeremiah Lowin
c9c10a55d8 Try expanding timeout because test error 2025-06-14 10:46:20 -04:00
Jeremiah Lowin
1866c17400 Update tests 2025-06-10 17:08:23 -04:00
Jeremiah Lowin
bc59a4fbf5 Ensure client is only initialized once 2025-06-08 14:48:05 -04:00
Jeremiah Lowin
6d36171f38 Fix passing token string to client auth 2025-06-07 21:39:50 -04:00
Jeremiah Lowin
099d340208 Update tests for prompts 2025-06-04 16:37:41 -04:00
Jeremiah Lowin
18615bc48b Remove empty parens 2025-06-04 15:41:28 -04:00
Jeremiah Lowin
d1549c3d35 Remove empty parens 2025-06-04 15:37:55 -04:00
Jeremiah Lowin
d7824f1414 Move nested server 2025-06-01 09:35:42 -04:00
Jeremiah Lowin
8fb709c98c Simplify code for running servers in processes 2025-06-01 09:35:06 -04:00
Jeremiah Lowin
3e2fbb606b
Merge branch 'main' into fix-typing 2025-05-31 20:47:12 -04:00
Jeremiah Lowin
f1e3713fc6 Update test typing 2025-05-31 20:41:18 -04:00
Jeremiah Lowin
ad8182eed0 Create http utility 2025-05-31 19:33:50 -04:00
Jeremiah Lowin
2390fb4da6 clean up test inits 2025-05-31 19:32:08 -04:00
Jeremiah Lowin
814a6e4419 Add concurrency test 2025-05-31 18:08:43 -04:00
Jeremiah Lowin
1d131a8c96 Create test_oauth.py 2025-05-30 21:17:56 -04:00
Jeremiah Lowin
975f151a9b Reset session after closing 2025-05-28 22:02:03 -04:00
Jeremiah Lowin
9bbd417129 Add keep_alive param to reuse subprocess 2025-05-28 21:46:40 -04:00
Jeremiah Lowin
ee059b02b6 Update test_openapi.py 2025-05-28 18:38:16 -04:00
Jeremiah Lowin
d311a2b878 Ensure behavior-affecting headers are excluded 2025-05-28 18:30:33 -04:00
Jeremiah Lowin
307a3b908a Ensure content-length is always stripped from client headers 2025-05-24 07:38:34 -04:00