Commit graph

3,289 commits

Author SHA1 Message Date
dependabot[bot]
25166afe98
Bump actions/checkout from 5 to 6 (#2474)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 16:50:49 -05:00
marvin-context-protocol[bot]
fd0297014f
chore: Update SDK documentation (#2365)
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2025-11-22 12:30:09 -05:00
Akshay Parihar
a57a155c2e
Scalekit provider updates (#2413)
* sk-provider updates - aud not enforce, scopes enforce if present

* updating env_prefix, adding debug logs

* updating docs

* ruff formatting

* not changing prefix for backward compatiblity

* backward compatibility changes

* give more preference to base_url than mcp_url if both passed

* updating docs

* refactor

* updating example server

* updating readme of example

* updating docs

* updating tests to reflect what should ideally go in the parameter
2025-11-22 12:22:13 -05:00
Kevin J Gao
05db547d86
feat: Made Changes to DescopeProvider to Support New Well Known URLs (#2392)
* added new DescopeProvider for Agentic Identity Hub

* fixed formatting with ruff

* made coderabbit change

* changed wording in descope.mdx

* added backwards compatibility

* ran ruff

* added scopes_supported to protected metadata resource

* empty commit to re-run tests
2025-11-22 12:20:50 -05:00
William Easton
08a0503f63
Merge pull request #2437 from jlowin/latest-py-key-value
Bump py-key-value-aio to 0.3.0
2025-11-22 11:10:13 -06:00
William Easton
16562c918e
Merge branch 'main' into latest-py-key-value 2025-11-22 11:07:28 -06:00
Jeremiah Lowin
e37951eb5d
Merge pull request #2446 from Shengshenlan/patch-1
Update http.mdx
2025-11-22 12:04:49 -05:00
Jeremiah Lowin
3592af524a
Merge pull request #2462 from Neet-Nestor/main
Fix Azure OAuth token refresh with unprefixed scopes
2025-11-22 12:04:04 -05:00
Jeremiah Lowin
f06193850a
Merge pull request #2440 from jlowin/fix-exclude-args-serialization
Fix exclude_args with non-serializable types
2025-11-22 12:02:29 -05:00
Nestor Qin
4d7af38d3f
Merge branch 'main' into main 2025-11-20 15:34:35 -08:00
Nestor Qin
2852f2cb13 Use lazy logging 2025-11-20 15:31:40 -08:00
Nestor Qin
119bf445ea Resolve comments 2025-11-20 15:16:50 -08:00
Nestor Qin
463652a878 Add unit tests 2025-11-20 15:08:50 -08:00
Nestor Qin
9e28da11f2 fix Azure token refresh issue 2025-11-19 19:02:31 +00:00
William Easton
b3bce0c231
Merge pull request #2442 from jlowin/patch-test-failure-analysis
Update martian-test-failure.yml
2025-11-18 08:41:24 -06:00
Shengshenlan
8b546fd294
Update http.mdx
add a hint
2025-11-18 17:10:50 +08:00
William Easton
73d0f6abf0
Update martian-test-failure.yml 2025-11-17 18:34:31 -06:00
William Easton
6a462827a4
Merge branch 'main' into latest-py-key-value 2025-11-17 12:12:58 -06:00
William Easton
1b5e3cb272
Actually update lockfile, ignore caching diskstore cleanup 2025-11-17 12:03:24 -06:00
Jeremiah Lowin
52100b08ff Fix exclude_args with non-serializable types
Fixes issue #2431 where exclude_args fails when excluded parameters have
non-serializable types (e.g., ServerSession). The fix excludes parameters
from function annotations before Pydantic tries to serialize them.

Also adds deprecation notice that exclude_args will be deprecated in
FastMCP 2.14 in favor of dependency injection.
2025-11-17 12:25:43 -05:00
Jeremiah Lowin
dd876b5833
Merge pull request #2439 from jlowin/oidc-proxy-extra-params
Add extra_authorize_params and extra_token_params to OIDCProxy
2025-11-17 12:23:11 -05:00
Jeremiah Lowin
24204cdafc
Merge pull request #2438 from jlowin/google-provider-refresh-token-defaults
Add refresh token support defaults to GoogleProvider
2025-11-17 11:58:58 -05:00
Jeremiah Lowin
e0f0f816b7 Add extra_authorize_params and extra_token_params to OIDCProxy 2025-11-17 11:57:58 -05:00
Jeremiah Lowin
be90d6eb60
Merge pull request #2432 from jlowin/dependabot/github_actions/actions/setup-python-6
Bump actions/setup-python from 5 to 6
2025-11-17 11:56:37 -05:00
Jeremiah Lowin
cf7ae12a65
Merge pull request #2433 from jlowin/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-11-17 11:56:10 -05:00
Jeremiah Lowin
ea31747572 Add refresh token support defaults to GoogleProvider
Set access_type=offline and prompt=consent by default to ensure
refresh tokens are returned by Google. Also expose extra_authorize_params
so users can customize authorization behavior.
2025-11-17 11:54:00 -05:00
William Easton
64c3796d31
Bump py-key-value versions 2025-11-17 10:49:11 -06:00
dependabot[bot]
e5c6f04e0f
Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 04:25:24 +00:00
dependabot[bot]
065a4d520b
Bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 04:25:13 +00:00
Jeremiah Lowin
b5f88bfe42
Merge pull request #2426 from jlowin/simplify-object-schema-check v2.13.1
Simplify _is_object_schema helper
2025-11-15 12:39:04 -05:00
Jeremiah Lowin
e9667b6624 Fix test regex pattern for updated error message 2025-11-15 12:32:37 -05:00
Jeremiah Lowin
0af1c78cc9 Simplify _is_object_schema helper function 2025-11-15 12:27:37 -05:00
Jeremiah Lowin
e6936d0bf1
Merge pull request #2422 from jlowin/exclude-mcp-1.21.1-add-scope-validation
Exclude MCP SDK 1.21.1 and add scope validation to InMemoryOAuthProvider
2025-11-15 12:22:44 -05:00
Jeremiah Lowin
533cfb66fa
Merge pull request #2424 from jlowin/fix-bug-report-dI2C9
Fix self-referencing types not being recognized as object schemas
2025-11-15 12:21:21 -05:00
Jeremiah Lowin
f6635aa15b Fix type errors in oauth_proxy and test_auth_integration
- Add null checks for client_id before using in OAuthTransaction, AuthorizationCode, AccessToken, RefreshToken
- Add null check for redirect_uris before len() call
- Import AuthorizeError from mcp.server.auth.provider
2025-11-15 12:21:15 -05:00
Jeremiah Lowin
3826f1a240 Fix typos and formatting 2025-11-15 12:21:15 -05:00
Jeremiah Lowin
c7f4ff2cbe Add scope validation to InMemoryOAuthProvider and remove debug breakpoint
- Add scope validation to InMemoryOAuthProvider.register_client() to match MCP SDK behavior
- Ensures unit tests catch scope-related bugs like the MCP SDK 1.21.1 issue
- Remove debug breakpoint from OAuth client redirect_handler
2025-11-15 12:21:15 -05:00
Jeremiah Lowin
ec38507f9b Exclude MCP SDK 1.21.1 and update OAuth client tests
- Exclude MCP SDK 1.21.1 due to bug adding metadata URL to scopes
- Update OAuth client tests to use valid scopes
2025-11-15 12:21:15 -05:00
Jeremiah Lowin
e3ed74b794
docs: fix run_server_async documentation (#2423)
Remove incorrect task_group parameter and AnyIO references. Update to show correct async context manager usage matching actual implementation.

Fixes #2395

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Jeremiah Lowin <jlowin@users.noreply.github.com>
2025-11-15 12:07:22 -05:00
Jeremiah Lowin
d40f22b3e6 Fix type errors in oauth_proxy and test_auth_integration
- Add null checks for client_id before using in OAuthTransaction, AuthorizationCode, AccessToken, RefreshToken
- Add null check for redirect_uris before len() call
- Import AuthorizeError from mcp.server.auth.provider
2025-11-15 12:06:33 -05:00
Jeremiah Lowin
6df54c0729 Fix typos and formatting 2025-11-15 12:04:51 -05:00
Jeremiah Lowin
1895f86323 Add scope validation to InMemoryOAuthProvider and remove debug breakpoint
- Add scope validation to InMemoryOAuthProvider.register_client() to match MCP SDK behavior
- Ensures unit tests catch scope-related bugs like the MCP SDK 1.21.1 issue
- Remove debug breakpoint from OAuth client redirect_handler
2025-11-15 12:02:28 -05:00
Jeremiah Lowin
a98838c158 Exclude MCP SDK 1.21.1 and update OAuth client tests
- Exclude MCP SDK 1.21.1 due to bug adding metadata URL to scopes
- Update OAuth client tests to use valid scopes
2025-11-15 11:58:14 -05:00
Kiran Thakkar
ab683f178b
OCI Provider with Docs (#2389)
* OCI Provider with Docs

* Addressing feedback and adding improvements

* Addressing feedback and adding improvements

* Fixed Step Typo and Images

* Fixed Language Identifier

* Fixed Code Check Issues

* Fixed Identity Propagation Trust Command

* Renamed ociprovider to oci and fixed documentation

* Renamed ociprovider to oci

* Fixed Config URL

* Fixed TokenExchange variable

* Fixed Environment Variables

* Fixed Environment Variables

* Fixed Ruff Check

* Fixed Code Rabbit Comments

* Fixed Code Rabbit Comments
2025-11-15 11:04:47 -05:00
Jeremiah Lowin
bc076cba12
Handle request_context availability during MCP initialization (#2400)
The on_initialize hook (2.13.0) runs before the MCP session is established, causing request_context
to be unavailable. Changed request_context to return None instead of raising, allowing middleware to
check availability and use HTTP helpers when needed. Updated docs to guide this pattern.

Closes #2393
2025-11-15 10:50:24 -05:00
ChristophNetsch
67f9329b83
fix(OpenAPIParser): Fix missing $defs for response schemas in experimental OpenAPI parser (#2398)
* fix(OpenAPIParser): Fix missing  for response schemas in experimental OpenAPI parser

* chore: run linting

---------

Co-authored-by: Christoph Netsch <netsch@alpamayo.ch>
2025-11-15 10:50:00 -05:00
William Easton
be9c27fec4
Claude triage for test failures (#2407) 2025-11-15 10:35:27 -05:00
William Easton
8e0c6c8685
docs: clarify pytest-asyncio dependency and asyncio mode configuration (#2399)
* docs: clarify pytest-asyncio dependency and asyncio mode configuration

Added a Prerequisites section to the testing documentation explaining:
- pytest-asyncio is required for async test functions and fixtures
- Recommended configuration: asyncio_mode = 'auto' in pyproject.toml
- This eliminates need for @pytest.mark.asyncio decorators

Resolves #2372

Co-authored-by: William Easton <strawgate@users.noreply.github.com>

* feat: add testing_demo example with comprehensive test suite

Add a standalone example project demonstrating FastMCP testing patterns:
- Tools, resources, and prompts with full test coverage
- pytest-asyncio configuration in pyproject.toml
- 18 passing tests showing async fixtures, parametrized tests, and more
- Documentation explaining testing best practices

Co-authored-by: William Easton <strawgate@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: William Easton <strawgate@users.noreply.github.com>
2025-11-15 10:34:29 -05:00
EdenTrainorCDL
dffaa0bfce
fix(oauth_proxy): 🐛 add _extra_token_params as kwargs in refresh_token call (#2387)
custom oauth providers sometimes require extra parameters in their token calls, hence the need for the _extra_token_params in the inital token request. This PR includes those extra token params in the token refresh request too.
2025-11-15 10:33:51 -05:00
Sean McGrath
f7c89e2630
fix: upstream token cache expires when refresh expires (#2410)
* fix: upstream token cache expires when refresh expires

* fix: handle case where no refresh token provided
2025-11-15 10:32:34 -05:00