Commit graph

55 commits

Author SHA1 Message Date
Jeremiah Lowin
e036cba383
Add Pydantic-compatible input validation (#2073) 2025-10-14 11:49:30 -07:00
Jeremiah Lowin
1f11b5e641
Refactor mounting logic from managers to server (#2069) 2025-10-11 18:28:21 -04:00
William Easton
408415c174
Merge branch 'main' into content_block_handling 2025-09-07 10:17:41 -05:00
William Easton
fe4f31c2c7
Enable more type checking rules (#1775) 2025-09-07 11:11:44 -04:00
William Easton
64010ff276
Cleanup content conversion 2025-09-06 17:32:33 -05:00
William Easton
d7a74419b2
Preserve order in mixed text/image tool returns (#1704)
Co-authored-by: William Easton <strawgate@users.noreply.github.com>
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2025-09-06 14:22:29 -04:00
Jeremiah Lowin
a302385361
fix: eliminate pytest warnings (#1559)
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
Co-authored-by: Jeremiah Lowin <jlowin@users.noreply.github.com>
2025-08-21 07:49:42 -04:00
Jeremiah Lowin
26969e80c3
Add mounted_components_raise_on_load_error setting for debugging (#1534)
Co-authored-by: Jeremiah Lowin <jlowin@users.noreply.github.com>
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2025-08-18 13:42:33 -04:00
Jeremiah Lowin
19a4dd85d4
Ensure resource + template names are properly prefixed when importing/mounting (#1423) 2025-08-08 21:29:07 -04:00
William Easton
1b953820b3
[🐶] Transform MCP Server Tools (#1132)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-19 15:52:47 -04:00
Jeremiah Lowin
0600834da4 Fix single-element list unwrapping in tool content
Single-element lists like [1] were being incorrectly unwrapped to "1"
in unstructured content while multi-element lists remained as lists.
This created inconsistent behavior where the structure was lost for
single items.

This fix ensures lists always preserve their structure in unstructured
content regardless of length, making behavior consistent and predictable.

Also removes pretty-printing from JSON serialization for more compact
output across tools, prompts, and resources.

Fixes #1064

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 12:07:16 -04:00
Jeremiah Lowin
228425e309
Avoid propagating logs (#1042)
* Avoid propagating logs

* Set up caplog for non-root loggers

* Update tests
2025-07-04 12:22:11 -04:00
Jeremiah Lowin
ddb557ba30 Update for 'result' kwarg instead of 'value' 2025-06-27 15:44:46 -04:00
Jeremiah Lowin
d8dc28b9b2 Add structured content & update almost all tests 2025-06-27 15:40:52 -04:00
Jeremiah Lowin
7b9696405b Remove legacy json parsing
Because the server now validates inputs, its no longer viable to provide a JSON string where e.g. an array is expected, so we can entirely remove FastMCP's "legacy json parsing" support from 1.x.

This is a breaking change (for legacy opt-in behavior)
2025-06-26 18:19:43 -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
085c5b765b Update docs and tests 2025-06-19 17:06:54 -04:00
Jeremiah Lowin
607125abf8 Update tool manager 2025-06-19 11:04:50 -04:00
Jeremiah Lowin
46ab813de6 Deprecate top-level import 2025-06-14 09:12:21 -04:00
Jeremiah Lowin
d1549c3d35 Remove empty parens 2025-06-04 15:37:55 -04:00
Jeremiah Lowin
cc541d6eee Ensure tool serializer is applied 2025-06-04 12:47:12 -04:00
Jeremiah Lowin
7d520ec5d1 Use strict basemodel for Prompt; relax from_function deprecation 2025-06-04 10:46:48 -04:00
Jeremiah Lowin
6014e880ef Update test_tool_manager.py 2025-06-04 10:24:03 -04:00
Jeremiah Lowin
3a3c01708d Split Tool into Tool and FunctionTool 2025-06-04 10:19:14 -04:00
Jeremiah Lowin
f1e3713fc6 Update test typing 2025-05-31 20:41:18 -04:00
Jeremiah Lowin
010170337f Ensure that tools/templates/prompts are compatible with callable objects 2025-05-23 18:53:55 -04:00
Jeremiah Lowin
53b067b4e7 Make error masking configurable 2025-05-22 09:08:16 -04:00
Jeremiah Lowin
08d54ef65b
Merge pull request #437 from davenpi/feat/remove-tool
feat: add support for removing tools from server
2025-05-13 18:36:18 -04:00
davenpi
a6b7da4599 chore: unify tool not found error message 2025-05-13 16:54:16 -04:00
davenpi
d6f7dab9e6 feat: add support for removing tools from server 2025-05-13 16:39:04 -04:00
Jeremiah Lowin
6fa7c1704a Improve error handling for tools and resources 2025-05-13 14:19:55 -04:00
strawgate
a12edd7be5 fix recursive calls 2025-05-08 20:33:41 -05:00
Jeremiah Lowin
82aa53e09b Refactor context to avoid unecessary passing 2025-05-06 21:24:29 -04:00
Jeremiah Lowin
112b91f521 create a setting for legacy parsing 2025-05-06 13:21:38 -04:00
Jeremiah Lowin
c449f1d697 Handle args/kwargs appropriately for various objects 2025-05-04 15:00:26 -04:00
Jeremiah Lowin
c63fcc96ea Remove is_async attribute 2025-05-04 12:18:28 -04:00
Jeremiah Lowin
51a867c3af Replace custom parsing with TypeAdapter 2025-05-04 12:07:00 -04:00
Jeremiah Lowin
d10e426d03 Ensure that tool serialization has a graceful fallback 2025-05-03 12:30:41 -04:00
strawgate
d1eb1812f3 address PR feedback 2025-05-03 10:41:16 -05:00
strawgate
80f7487f36 Add an example of a custom serializer implementation 2025-05-03 06:48:50 -05:00
Jeremiah Lowin
517b5358dd
Merge pull request #290 from jlowin/json
use pydantic_core.to_json
2025-04-30 18:12:27 -04:00
Jeremiah Lowin
87031a62de Improve context injection type checks 2025-04-30 18:03:52 -04:00
Jeremiah Lowin
a9253d3111 use pydantic_core.to_json 2025-04-30 17:29:38 -04:00
Jeremiah Lowin
b81d1a11ec Indicate that Image class is for returns 2025-04-24 12:11:00 -04:00
Jeremiah Lowin
5ff93f6bd6 Add mount tests 2025-04-15 21:03:00 -04:00
Jeremiah Lowin
d27141a935 Refactor remote servers 2025-04-15 20:28:14 -04:00
Jeremiah Lowin
8d922d995a restore mcp tool generation to server 2025-04-15 13:54:33 -04:00
Jeremiah Lowin
9ec0be8665 Update test_tool_manager.py 2025-04-15 09:54:47 -04:00
Jeremiah Lowin
6fcd333e52 Update tool manager param to key 2025-04-15 09:52:31 -04:00
Jeremiah Lowin
6e309e1354 Fix bug with duplicate behavior == ignore 2025-04-15 09:33:23 -04:00