Commit graph

2,324 commits

Author SHA1 Message Date
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
marvin-context-protocol[bot]
39aebcf578
chore: Update SDK documentation (#2129)
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2025-10-18 12:15:23 -04:00
Jeremiah Lowin
1cb30a4e42
Delete warning_box_test.html (#2136) 2025-10-18 11:50:34 -04:00
Jeremiah Lowin
9e78d755c2
Support custom server name, icons, and link in OAuth Proxy consent page (#2135)
* 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

* Customize consent screen

* Use server website link if available

* Anchor link shouldnt have trailing slash

* Remove 'a FastMCP server named' from consent page message

* Update docs
2025-10-18 11:49:26 -04:00
Omer Aharonian
5ce67f756b
transform NotFoundError to standard MCP error (#2133) 2025-10-18 11:46:57 -04:00
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
330eaed11f
OAuth proxy issues its own tokens (#2109)
* OAuth proxy issues its own tokens

Implement token factory pattern where proxy issues FastMCP JWTs
instead of forwarding upstream tokens. Tokens are minimal references
(JTI) that map to encrypted upstream credentials stored server-side.

* Update run-tests.yml

* Update secret generation and docs

* Add upgrade guide
2025-10-17 14:31:53 -04:00
Jeremiah Lowin
d472e30765
Support mounting OAuth-protected servers under path prefixes (#2119)
* Add issuer_url parameter to OAuth providers for mounting scenarios

* Add get_well_known_routes

* Update docs

* Improve docs and tests

* Trigger CI

* Fix conditional test execution for Windows
2025-10-17 11:44:49 -04:00
Jeremiah Lowin
d4837b41c5
Disable parallel test execution on Windows (#2128) 2025-10-17 11:28:42 -04:00
Jeremiah Lowin
4f5aebe59b
Update version badge for azure auth docs (#2120)
* Update version badge for azure auth docs

* Revert "Update version badge for azure auth docs"

This reverts commit 8b0537e295.
2025-10-17 09:38:59 -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
83adbc0a79
Merge pull request #1845 from jlowin/responsecachingmiddleware
Add Response Caching Middleware
2025-10-16 22:12:31 -05:00
William Easton
f5d770e801
update lock 2025-10-16 22:00:57 -05:00
William Easton
831a5dd070
Unwind tool result changes 2025-10-16 21:59:55 -05:00
William Easton
b713b5e4d0
Merge branch 'main' into responsecachingmiddleware 2025-10-16 21:59:20 -05:00
William Easton
5831c4bb60
PR Clean-up 2025-10-16 21:56:55 -05:00
marvin-context-protocol[bot]
ef4afe4061
chore: Update SDK documentation (#1950)
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2025-10-16 21:18:01 -04:00
Jeremiah Lowin
91653d2c1e
Add security policy (#2117) 2025-10-16 18:04:43 -04:00
Jeremiah Lowin
2f841c356e
Document container limitations for Image/Audio/File objects (#2118) 2025-10-16 18:03:29 -04:00
Jeremiah Lowin
52e9af1214
Add RFC 7662 token introspection provider (#2074) 2025-10-16 10:57:06 -04:00
Andrew McLachlan
98fb0a6115
Fix missing import in Tool Transformation docs. (#2108) 2025-10-15 17:49:19 -07:00
Romaric Parmentier
586a7515df
chore(auth): add client_storage property to aws provider (#2107) 2025-10-15 17:18:53 -07:00
Jeremiah Lowin
5988873601
Fix log handler to accept any JSON-serializable data type (#2102) 2025-10-15 10:20:04 -07:00
Jeremiah Lowin
a0d1c7fb69
Remove obsolete claude.py with Windows path bug (#2101) 2025-10-15 07:04:46 -07:00
Jeremiah Lowin
453454711f
Add auto-close workflow for issues needing MRE (#2100) 2025-10-15 06:54:28 -07:00
Jeremiah Lowin
b45499292f
Fix nullable enum validation in OpenAPI converter (#2093) 2025-10-15 06:30:30 -07:00
Jeremiah Lowin
be73143960
Clarify context is scoped to single MCP request (#2099) 2025-10-15 06:00:03 -07:00
Jeremiah Lowin
c17f96d4e2
Update docs (#2094) 2025-10-14 16:38:21 -07:00
Jeremiah Lowin
59aabe2741
Fix experimental parser missing top-level response schemas (#2087) (#2092) 2025-10-14 15:31:30 -07:00
William Easton
67a19afe89
Merge branch 'main' into responsecachingmiddleware 2025-10-14 16:59:53 -05:00
William Easton
462085bd89
Bump kv dependency to 0.2.2
bump kv dependency to 0.2.2
2025-10-14 16:59:19 -05:00
William Easton
ea9b2de8f8
Merge branch 'main' into bump-kv 2025-10-14 16:52:24 -05:00
Jeremiah Lowin
5f8461b7f0
Remove shell=True from Windows subprocess calls (#2091) 2025-10-14 12:30:46 -07:00
Jeremiah Lowin
2a20f54617
Escape all HTML to prevent XSS attack (#2090) 2025-10-14 12:30:21 -07:00
Roee Hershko
541822f07f
add azp claim (#1945)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-10-14 12:00:28 -07:00
William Easton
5d13deffc9
Merge branch 'main' into bump-kv 2025-10-14 13:55:42 -05:00
William Easton
cc6df567da
bump kv to 0.2.2 2025-10-14 13:54:47 -05:00
William Easton
5d195878c4
Switch Lifespan to being a Server Lifespan (#2013)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-10-14 11:49:53 -07:00
Jeremiah Lowin
e036cba383
Add Pydantic-compatible input validation (#2073) 2025-10-14 11:49:30 -07:00
William Easton
1ec2bd7d92
Also push client messages (info/warn/debug) to server debug log (#2063)
Co-authored-by: William Easton <strawgate@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-10-14 11:38:26 -07:00
Chris Guidry
7f4119dcf6
Fix asyncio error when running FastMCP 1.x servers (#2084)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-14 11:24:51 -07:00
dependabot[bot]
55b60bceba
Bump astral-sh/setup-uv from 6 to 7 (#2080) 2025-10-14 12:29:20 -04:00
William Easton
3f223a6e29
Add warnings regarding memory store
Add warnings regarding memory store
2025-10-13 20:03:58 -05:00
William Easton
d50badc2bc
Merge branch 'main' into oauth-warnings 2025-10-13 12:03:10 -05:00
William Easton
22d9293839
Fixes for Middleware type hints 2025-10-13 12:02:39 -05:00
William Easton
7e87316817
Missed one 2025-10-13 10:23:23 -05:00
William Easton
6ea6351d57
PR Feedback 2025-10-13 09:47:13 -05:00
William Easton
557e404f52
Merge branch 'main' into oauth-warnings 2025-10-12 21:35:15 -04:00
William Easton
aa85f5e4ba
Merge branch 'main' into claude/issue-2055-20251010-2356 2025-10-12 21:34:49 -04:00
William Easton
16ebb666d6
stop subscripting list init 2025-10-12 21:34:29 -04:00