Commit graph

103 commits

Author SHA1 Message Date
Jeremiah Lowin
6f627b58fd
Implement icon support (#2121)
* Implement icon support in fastmcp

* Fix icon feature tests

- Update snapshot for ResourceTemplate to include icons field
- Remove OAuth mounting tests (belong to PR #2119, not this feature)

* Update docs
2025-10-17 17:28:08 -04:00
Jeremiah Lowin
1f11b5e641
Refactor mounting logic from managers to server (#2069) 2025-10-11 18:28:21 -04:00
William Easton
93c41e815c
Merge branch 'main' into switch-kvstore 2025-10-09 09:20:55 -04:00
Jeremiah Lowin
b1458c6082
Default to FastMCP version when server version not specified (#2022)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: William Easton <strawgate@users.noreply.github.com>
2025-10-08 19:57:30 -04:00
William Easton
fc2a5c3b8b
Merge branch 'main' into switch-kvstore 2025-09-29 20:17:05 -05:00
Jeremiah Lowin
3a21e7b9b2
Fix path resolution in install commands (#1951) 2025-09-29 20:04:12 -04:00
William Easton
55ac070a59
Merge branch 'main' into switch-kvstore 2025-09-28 21:35:46 -05:00
Jeremiah Lowin
b96e6ebbb2
Use lowercase namespace for fastmcp logger (#1791) 2025-09-26 12:13:02 -04:00
William Easton
dee2bb51d9
Switch to DiskStore KV implementation 2025-09-24 18:07:57 -05:00
Jeremiah Lowin
a41600d838
Fix: Remove JSON schema title metadata while preserving parameters named 'title' (#1872) 2025-09-23 10:19:34 -04:00
Jeremiah Lowin
7176d4f293
Add persistent storage for OAuth client registrations (#1879) 2025-09-21 10:56:08 -04:00
William Easton
fe4f31c2c7
Enable more type checking rules (#1775) 2025-09-07 11:11:44 -04:00
Jeremiah Lowin
66da6d2f6a
Clean up uvenvironment and ensure uv run --with fastmcp is used by install commands (#1769) 2025-09-06 14:21:56 -04:00
Jeremiah Lowin
ea47d232bc
Refactor Environment to support multiple runtime types (#1673) 2025-08-29 22:29:35 -04:00
Jeremiah Lowin
6d46192659
Internal refactor: fastmcp config to mcp server config (#1672) 2025-08-29 21:37:39 -04:00
Jeremiah Lowin
536ccde9e8
Consolidate CLI config parsing and prevent infinite loops (#1660) 2025-08-29 09:43:39 -04:00
Jeremiah Lowin
f4ab2e8127
Enhance inspect command with structured output and format options (#1481) 2025-08-26 10:39:28 -04:00
Jeremiah Lowin
465e4033e7
Improve fastmcp.json environment configuration and project-based deployments (#1631) 2025-08-25 22:09:27 -04:00
William Easton
94b1eb9d6e
feat: introduce inline snapshots (#1605)
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-08-25 10:08:55 -04:00
Jeremiah Lowin
9c5c4f5113
Consolidate server loading logic into FileSystemSource (#1614) 2025-08-24 20:50:25 -04:00
Jeremiah Lowin
1f3f82d245
Implement typed source system for FastMCP configuration (#1607) 2025-08-24 16:32:37 -04:00
Jeremiah Lowin
afedabeaf0
Fix and centralize CLI path resolution (#1590) 2025-08-23 15:37:00 -04:00
Jeremiah Lowin
19a4dd85d4
Ensure resource + template names are properly prefixed when importing/mounting (#1423) 2025-08-08 21:29:07 -04:00
633WHU
8e12eddbb6
Add comprehensive tests for utilities.components module (#1395) 2025-08-08 11:33:33 -04:00
Jeremiah Lowin
586210d499
Fix server_version field in inspect manifest (#1383) 2025-08-06 11:23:34 -04:00
William Easton
d4fc44feb4
Fix method-bound tools (#1360) 2025-08-04 09:41:05 -04:00
William Easton
cae431c001
Remove unused TimedCache (#1303) 2025-07-31 23:10:08 -04:00
Jeremiah Lowin
52a0fc078a
Fix nullable field handling in OpenAPI to JSON Schema conversion (#1279)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-28 20:31:23 -04:00
Jeremiah Lowin
d04840560a
Support string annotations (#1255) 2025-07-24 14:28:58 -04:00
Jeremiah Lowin
72fb8d4ce9
Ensure default fields are not marked nullable (#1224) 2025-07-22 09:14:15 -04:00
Jeremiah Lowin
d6bd800d88
Optimize OpenAPI parser performance with single-pass schema processing (#1214) 2025-07-21 21:29:56 -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
Magnus
912bba2385
fix: replace oneOf with anyOf in OpenAPI schemas to handle overlapping unions (#1119)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-11 13:31:45 -04:00
Dimitri Barbot
f977e480ca
Fix max recursion error when pruning OpenAPI definitions (#1092)
* Fix max recursion error when pruning open api definitions

* Remove mutable default parameter in def_is_referenced function
2025-07-08 17:21:58 -04:00
Jeremiah Lowin
6c9263001b
Add output schema support for OpenAPI tools (#1073)
* Add output schema support for OpenAPI tools

Implement automatic output schema extraction from OpenAPI responses for
FastMCP tools, addressing issue #1070. Tools generated from OpenAPI specs
now have meaningful output schemas instead of null, improving agent
efficiency when working with structured API responses.

- Add extract_output_schema_from_responses() function to parse response schemas
- Enhance OpenAPITool to accept and use output schemas with proper wrapping
- Automatically wrap non-object responses to comply with MCP requirements
- Include schema definitions and compress unused ones
- Add comprehensive test suite covering object, array, and primitive responses
- Update existing tests to handle structured output with proper typing
- Maintain backward compatibility for specs without response schemas

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

Co-Authored-By: Claude <noreply@anthropic.com>

* Move output schema tests to dedicated test file

Reorganize output schema tests into test_openapi_output_schemas.py to keep
the main test_openapi.py file focused and smaller, as requested. Added two
additional tests for schema definitions handling.

- Move all extract_output_schema_from_responses() tests to new file
- Add tests for schema definitions inclusion
- Remove output schema imports from main test file

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-07 12:51:01 -04:00
Jeremiah Lowin
e50f4ae965
Add Cursor support via CLI integration (#1052)
* Add Cursor support

* Use url-safe encoding
2025-07-05 20:30:47 -04:00
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
e182231fc8
Add path expansion to image/audio/file (#1038)
* Add path expansion to image/audio/file

* Make path tests platform agnostic
2025-07-04 09:51:30 -04:00
Jeremiah Lowin
9b9c0fce2c Merge branch 'main' into elicitation 2025-06-28 15:08:16 -04:00
Jeremiah Lowin
3805ac9b44 Provide a response type to client 2025-06-28 09:47:14 -04:00
Jeremiah Lowin
79c086febe
Merge branch 'main' into auth 2025-06-28 08:16:16 -04:00
Jeremiah Lowin
e22267142e
Merge pull request #901 from jlowin/output-schema
MCP 6/18/25: Add output schema to tools
2025-06-28 08:16:06 -04:00
Jeremiah Lowin
3598e947b2 Update test_mcp_config.py 2025-06-28 08:15:43 -04:00
Jeremiah Lowin
db24c85359 Update all tests 2025-06-27 21:41:37 -04:00
Aditya Bansal
f524652f25 Add OpenAPI extensions support to HTTPRoute
- Add extensions field to HTTPRoute class to store x-* fields
  - Extract extensions from operation's model_extra in parser
  - Add test to verify extensions are properly parsed
2025-06-27 15:27:36 -07:00
Jeremiah Lowin
d8dc28b9b2 Add structured content & update almost all tests 2025-06-27 15:40:52 -04:00
Jeremiah Lowin
1e29149d5f Merge branch 'main' into output-schema 2025-06-26 19:30:35 -04:00
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
0142bb2af1
Merge branch 'protocol-update' into output-schema 2025-06-22 13:46:26 -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