Commit graph

54 commits

Author SHA1 Message Date
Jeremiah Lowin
6584750667 Fix external schema reference handling in OpenAPI parser
Previously, external schema references (URLs) in OpenAPI schemas were
silently passed through and only failed during JSON schema validation
with confusing "failed to match exactly one schema" errors.

This change:
- Detects external references in _replace_ref_with_defs() and raises clear error messages
- Updates exception handlers to propagate external reference errors while preserving other error handling
- Adds comprehensive test coverage for external reference detection
- Provides helpful error messages explaining that FastMCP only supports local schema references

Fixes #926

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 21:25:06 -04:00
Jeremiah Lowin
8506f78453 Fix event loop conflict in inspect CLI command
Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-21 20:04:39 -04:00
Jeremiah Lowin
6a3a3077b7 Add fastmcp inspect command with detailed server analysis
- Add comprehensive server inspection utility supporting both FastMCP 1.x and 2.x
- Create detailed info dataclasses for tools, prompts, resources, and templates
- Implement CLI command with path:object notation and JSON output
- Add version reporting (fastmcp_version, mcp_version, server_version)
- Include comprehensive unit tests for utilities and CLI

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-21 16:40:54 -04:00
Jeremiah Lowin
337c2f8db5
Merge pull request #897 from owtaylor/openapi-recursive-components 2025-06-20 18:43:27 -04:00
Owen W. Taylor
14d1b8a94d openapi: Rewrite recursive #/components/schemas/ references
When a schema referenced another schema as #/components/schemas/...
that wasn't properly rewritten into #/$defs/..
2025-06-20 14:34:47 -04:00
Owen W. Taylor
bbf8165636 openapi: Improve pruning of unused defs
Defs that are used only by other unused defs were counted as
used. Fix this by tracing what defs use other defs recursively.
2025-06-20 14:34:41 -04:00
Jeremiah Lowin
fbe2fc3533 Add transport handling for trailing slashes 2025-06-20 13:12:23 -04:00
Jeremiah Lowin
18ae625fef Update docs and test 2025-06-20 13:06:48 -04:00
Goro
4c60119767 Add missing tests 2025-06-16 08:10:34 +02:00
Goro
57e0b03711 Run pre-commit and fix typing issues 2025-06-16 07:12:41 +02:00
Goro
d2b2243957 Add file utility type and tests 2025-06-16 00:23:11 +02:00
Jeremiah Lowin
06dcff3b3b Add tests 2025-06-14 09:22:29 -04:00
Jeremiah Lowin
6dc2bd7ca2 Merge branch 'main' into settings 2025-06-10 12:02:39 -04:00
Jeremiah Lowin
47b2c58134
Merge branch 'main' into transform-tools-2 2025-06-09 17:24:23 -04:00
Jeremiah Lowin
6fbb555962 Support remote auth in mcpconfig 2025-06-07 21:39:57 -04:00
Jeremiah Lowin
aaa09ca7a3 Remove open-ended and server-specific settings 2025-06-07 20:20:04 -04:00
Jeremiah Lowin
23617c9c72 Use ellipsis default 2025-06-07 16:58:59 -04:00
William Easton
93a7255f7a
Make the type checker less sad 2025-06-05 23:02:40 -05:00
Jeremiah Lowin
31fd9abee0 Remove DecoratedFunction 2025-06-05 09:18:39 -04:00
Jeremiah Lowin
d1549c3d35 Remove empty parens 2025-06-04 15:37:55 -04:00
Jeremiah Lowin
a8c309f59f Make sure tests are atomic 2025-06-04 10:29:25 -04:00
ShiWei
82a987b900 add tests for _replace_ref_with_defs 2025-06-04 09:23:37 +08:00
ShiWei
6baa906813 replace nested requestBody's #/components/ with 2025-06-04 08:54:55 +08:00
Jeremiah Lowin
f1e3713fc6 Update test typing 2025-05-31 20:41:18 -04:00
Jeremiah Lowin
794ef3f114 Match functions and methods 2025-05-23 19:00:54 -04:00
Jeremiah Lowin
213abc4244 Pass client headers through to OpenAPI client 2025-05-23 12:38:24 -04:00
Jeremiah Lowin
d618f9151b add transport to stdio server in mcpconfig, with default 2025-05-22 11:25:25 -04:00
Jeremiah Lowin
fa1c94ccdc Support creating clients from mcpconfig 2025-05-20 20:48:16 -04:00
Jeremiah Lowin
f5cddc3219 Formalize MCP Config 2025-05-20 17:43:32 -04:00
Jeremiah Lowin
44a7f10ee6 prune titles from jsonschemas 2025-05-14 15:28:16 -04:00
Jeremiah Lowin
e4eaa9890b ensure all json schemas are compressed 2025-05-14 14:20:18 -04:00
Jeremiah Lowin
ff318e655d Add reprs for OpenAPI objects 2025-05-14 13:42:20 -04:00
Jeremiah Lowin
7c257a481f
Merge pull request #388 from didier-durand/add-test-cache
Adding tests for TimedCache
2025-05-09 18:08:23 -04:00
Jeremiah Lowin
3ccf27930f Fix typing and static issues 2025-05-09 18:06:51 -04:00
Didier Durand
31f07d8ddf Adding tests for TimedCache 2025-05-09 18:15:47 +02:00
Didier Durand
f8130cc22f Adding a few tests to Image type 2025-05-09 18:00:00 +02:00
Jeremiah Lowin
112b91f521 create a setting for legacy parsing 2025-05-06 13:21:38 -04:00
Jeremiah Lowin
55e62a0c63 Update test_types.py 2025-05-04 14:34:37 -04:00
Jeremiah Lowin
49d7bc92ff Update test_types.py 2025-05-04 14:32:52 -04:00
Jeremiah Lowin
d8c881bf21 Add tests 2025-05-04 14:31:21 -04:00
Jeremiah Lowin
51a867c3af Replace custom parsing with TypeAdapter 2025-05-04 12:07:00 -04:00
Jeremiah Lowin
87031a62de Improve context injection type checks 2025-04-30 18:03:52 -04:00
Jeremiah Lowin
b6ef8d2346 Add test for missing annotation 2025-04-25 10:27:26 -04:00
cutekibry
c8dface36a fix: unintended type convert
The function tries to convert `str`` into `dict` without validate
if it is suitable for the type annotation.

This will cause unintended type converting.

Refs: #251
2025-04-25 15:24:12 +08:00
Jeremiah Lowin
d27141a935 Refactor remote servers 2025-04-15 20:28:14 -04:00
Jeremiah Lowin
d2474d558c Only apply log config to FastMCP loggers 2025-04-14 15:45:05 -04:00
Jeremiah Lowin
56801435ac Support openapi 3.0 and 3.1 2025-04-13 22:38:37 -04:00
Jeremiah Lowin
3ea0685a17 Expand support for various method interactions 2025-04-13 21:39:19 -04:00
Jeremiah Lowin
79190e40e9 Ensure that openapi tags are transferred to MCP objects 2025-04-12 12:40:57 -04:00
zzstoatzz
16af43e272 use type 2025-04-11 03:42:00 -05:00