Commit graph

88 commits

Author SHA1 Message Date
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
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
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
Jeremiah Lowin
ae960e2f5a Update tests for new names 2025-05-23 17:16:32 -04:00
Jeremiah Lowin
e0ae84c75f Use lowercase name for headers 2025-05-23 16:02:42 -04:00
Jeremiah Lowin
de666be70d Update test_openapi.py 2025-05-23 15:40:03 -04:00
Jeremiah Lowin
b8e918a862 Ensure headers are passed through proxy servers 2025-05-23 15:39:45 -04:00
Jeremiah Lowin
213abc4244 Pass client headers through to OpenAPI client 2025-05-23 12:38:24 -04:00
Jeremiah Lowin
4e6b1bf611
Merge branch 'main' into mask-errors 2025-05-23 08:36:10 -04:00
Jeremiah Lowin
451fc3bfc2 Merge branch 'main' into clientconfig 2025-05-22 11:23:52 -04:00
Jeremiah Lowin
06b9b98b6c Raise an error if a Client is created with no servers in config 2025-05-22 11:22:45 -04:00
Jeremiah Lowin
53b067b4e7 Make error masking configurable 2025-05-22 09:08:16 -04:00
Jeremiah Lowin
1afe73c136 feat: support FastMCP v1 server transport 2025-05-21 17:42:26 -04:00
Jeremiah Lowin
fa1c94ccdc Support creating clients from mcpconfig 2025-05-20 20:48:16 -04:00
Jeremiah Lowin
02cb6f8291 Add config inference test 2025-05-20 17:45:13 -04:00
Jeremiah Lowin
e16cb61bc1 Improve client documentation 2025-05-20 11:44:23 -04:00
Jeremiah Lowin
4eb5c3245b
Merge branch 'main' into initialize-result 2025-05-20 10:45:50 -04:00