Commit graph

103 commits

Author SHA1 Message Date
Jeremiah Lowin
8099201979
Use platformdirs for settings.home (#2213)
Changes settings.home from `Path.home() / ".fastmcp"` to use platformdirs.user_data_dir(), following platform conventions (~/Library/Application Support on macOS, ~/.local/share on Linux, %APPDATA% on Windows).
2025-10-22 16:06:46 -04:00
William Easton
c833fff63c
Bump to 0.2.6 2025-10-21 11:38:07 -05:00
Jeremiah Lowin
3321644ad3
Replace subprocess tests with in-process async servers (#2006)
* Use anyio as testing backend

* Remove asyncio markers

* Update streamable http tests

* Replace all subprocess tests

* Replace anyio task groups with asyncio context managers in tests

- Convert run_server_async from anyio task group pattern to asyncio.create_task with async context manager
- Remove task_group fixture from conftest
- Update all test fixtures to use async with run_server_async pattern
- Remove TaskGroup imports from all test files
- Tests now work with pytest-asyncio instead of pytest-anyio

* Update test_github_provider_integration.py
2025-10-19 10:47:54 -04:00
Jeremiah Lowin
4a9f02c87c
Upgrade to MCP 1.17+ with RFC 9728 compliance (#2122)
* Upgrade to MCP 1.17+ with RFC 9728 compliance

Updates FastMCP to require MCP 1.17+ and implements RFC 9728-compliant
OAuth protected resource metadata URL handling.

The key change is that .well-known/oauth-protected-resource endpoints
are now registered at path-aware locations. For example, if an MCP
server is mounted at /mcp, the metadata endpoint is now at
/.well-known/oauth-protected-resource/mcp instead of
/.well-known/oauth-protected-resource.

This ensures proper OAuth discovery for path-based resource servers
and aligns with the MCP SDK's implementation of RFC 9728 §3.1.

Changes include:
- Update minimum MCP version from 1.12.4 to 1.17.0
- Use build_resource_metadata_url() for RFC 9728 compliance
- Configure CI to test with latest package versions (--upgrade)
- Update tests for path-aware metadata URLs
- Add icons field to Tool model (introduced in MCP 1.17)

* Fix RemoteAuthProvider integration tests for RFC 9728

* Fix parameterized test for nested base URL paths
2025-10-17 09:29:23 -04:00
William Easton
5831c4bb60
PR Clean-up 2025-10-16 21:56:55 -05:00
William Easton
67a19afe89
Merge branch 'main' into responsecachingmiddleware 2025-10-14 16:59:53 -05:00
William Easton
cc6df567da
bump kv to 0.2.2 2025-10-14 13:54:47 -05:00
William Easton
af6b55a4ff
Update dependencies 2025-10-10 19:36:40 -04:00
William Easton
28370827dc
Merge branch 'main' into responsecachingmiddleware 2025-10-10 17:37:34 -04:00
William Easton
de0c39c1b3
Add raise on validation error and set uniform collection names 2025-10-08 23:40:58 -04:00
William Easton
598dfb9a9a
Merge branch 'main' into switch-kvstore 2025-10-05 09:15:26 -05:00
William Easton
4b85b0c3ff
Mark github tests as flaky 2025-10-03 21:25:35 -05:00
William Easton
a9ee0b577a
Merge branch 'main' into switch-kvstore 2025-09-29 17:12:09 -05:00
Jeremiah Lowin
e8673b4d8b
Fix Python 3.13 websockets deprecation warning (#1949) 2025-09-29 15:24:20 -04:00
William Easton
55ac070a59
Merge branch 'main' into switch-kvstore 2025-09-28 21:35:46 -05:00
William Easton
ccd12c4b1b
Refactor for key-value 0.2.0 2025-09-28 21:35:22 -05:00
Christian Clauss
d6aa980ff5
Fix typos discovered by codespell (#1922) 2025-09-26 12:02:28 -04:00
William Easton
294a191cf9
bump kv store adapter to fix pydantic bug 2025-09-24 20:45:08 -05:00
William Easton
2f8ec7628c
Small PR cleanup 2025-09-24 18:18:32 -05:00
William Easton
dee2bb51d9
Switch to DiskStore KV implementation 2025-09-24 18:07:57 -05:00
William Easton
84eea7c708
Automatically Create inline Snapshots (#1779)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-09-19 13:35:58 -04:00
Daniel Campos Olivares
867438eda8
fix: Increase default 3s timeout on Pytest (#1866) 2025-09-19 12:52:18 -04:00
William Easton
a9113d0c9a
Refactor cache, add Elasticsearch cache backend as a contrib module with docs 2025-09-18 13:47:42 -05:00
William Easton
84b3e0ff60
Adding response caching with tests 2025-09-17 19:10:18 -05:00
William Easton
09369b5555
Add disk cache 2025-09-16 22:47:49 -05:00
William Easton
fe4f31c2c7
Enable more type checking rules (#1775) 2025-09-07 11:11:44 -04:00
Jeremiah Lowin
05b611b68d
Make openai depedency optional (#1701) 2025-09-02 15:13:37 -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
302eb9c3f5
Remove invalid-argument-type ignore and fix type errors (#1588)
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-22 20:19:22 -04:00
William Easton
d32a2b953e
Fallback to a Completions API when Sampling is not available (#1145) 2025-08-21 07:49:29 -04:00
nate nowack
77b425c47d
switch from pyright to ty (#1545) 2025-08-19 17:22:52 -04:00
William Easton
8d14c0916c
Improve stdio and mcp_config clean-up (#1444) 2025-08-15 11:03:44 -04:00
Jeremiah Lowin
f8f05ca395
Clean up complexity from PR #1426 (#1435) 2025-08-10 21:55:17 -04:00
Jeremiah Lowin
18533951ad
Pin mcp SDK under 2.0 to avoid breaking changes (#1428) 2025-08-10 09:10:18 -04:00
Yann Jouanin
456b22ecf4
Enable Protected Resource Metadata to provide resource_name and resou… (#1371)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-08-10 09:01:12 -04:00
Jeremiah Lowin
558c7d2a66
Fix OpenAPI transitive references and performance (#1372) (#1426) 2025-08-09 20:53:51 -04:00
Jeremiah Lowin
b46d4934a8
Add comprehensive OAuth 2.1 authentication system with WorkOS integration (#1327) 2025-08-01 17:06:55 -04:00
Jeremiah Lowin
c40149d970
Ensure validation errors are raised when masked (#1330) 2025-08-01 17:06:27 -04:00
William Easton
3be8f5ea93
Add UV Transport (#1270)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-28 15:41:36 -04:00
Jeremiah Lowin
4a38784194
Introduce experimental OpenAPI parser with improved performance and maintainability (#1209) 2025-07-21 16:17:36 -04:00
Jeremiah Lowin
30912c69c6 Run integration tests as separate CI job on Ubuntu only
- Add pytest marker for integration tests
- Configure automatic marking for tests/integration_tests/ folder via pytest hook
- Split CI workflow into two jobs: regular tests (all platforms) and integration tests (Ubuntu only)
- Integration tests can now be retried independently if they fail
2025-07-19 15:21:34 -04:00
Jeremiah Lowin
e9fa9fcf0d Add --copy flag for fastmcp version 2025-07-06 21:10:45 -04:00
Jeremiah Lowin
919d7e35ef Refactor from typer to cyclopts 2025-07-06 20:37:35 -04:00
Jeremiah Lowin
f9a698dcf9
Add MCP json output from CLI (#1056) 2025-07-06 10:23:50 -04:00
Jeremiah Lowin
d8dc28b9b2 Add structured content & update almost all tests 2025-06-27 15:40:52 -04:00
Jeremiah Lowin
35d04d645f Update pyproject.toml 2025-06-26 09:26:07 -04:00
Jeremiah Lowin
0def5c30aa Bump dependencies 2025-06-20 06:35:48 -04:00
Jeremiah Lowin
f1f57f977b Bump mcp 1.9.4 2025-06-14 14:16:04 -04:00
Jeremiah Lowin
c623b5110d Fix linting 2025-06-07 21:01:09 -04:00
Jeremiah Lowin
84b9b2a85f Add optional dep 2025-06-05 09:44:54 -04:00