Jeremiah Lowin
a139a06005
sync: bring published-docs to main @ v3.3.0
2026-05-14 22:09:39 -04:00
Jeremiah Lowin
3a9717e6be
Publish docs for v3.2.0 ( #3713 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Jeremiah Lowin <jlowin@users.noreply.github.com>
Co-authored-by: Marvin Context Protocol <41898282+Marvin Context Protocol@users.noreply.github.com>
Co-authored-by: voidborne-d <voidborne-d@users.noreply.github.com>
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: d 🔹 <258577966+voidborne-d@users.noreply.github.com>
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
Co-authored-by: nightcityblade <nightcityblade@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Bill Easton <strawgate@users.noreply.github.com>
Co-authored-by: Sumanshu Nankana <sumanshunankana@gmail.com>
Co-authored-by: Eric Robinson <ericrobinson@indeed.com>
Co-authored-by: Martim Santos <martimfasantos@gmail.com>
Co-authored-by: d 🔹 <liusway405@gmail.com>
Co-authored-by: Matthieu B <66959271+mtthidoteu@users.noreply.github.com>
Co-authored-by: Sascha Buehrle <47737812+saschabuehrle@users.noreply.github.com>
Co-authored-by: Hakancan <142545736+hkc5@users.noreply.github.com>
Co-authored-by: nightcityblade <jackchen@haloailabs.com>
Co-authored-by: Matt Hallowell <17804673+mhallo@users.noreply.github.com>
Co-authored-by: nate nowack <thrast36@gmail.com>
Co-authored-by: Bill Easton <williamseaston@gmail.com>
Co-authored-by: Marcus Shu <46469249+shulkx@users.noreply.github.com>
Co-authored-by: Rushabh Doshi <radoshi@gmail.com>
Co-authored-by: AIKAWA Shigechika <shige@aikawa.jp>
Co-authored-by: Jeremy Simon <simonjer805@gmail.com>
Co-authored-by: Miguel Miranda Dias <7780875+pandego@users.noreply.github.com>
Co-authored-by: Anthony James Padavano <padavano.anthony@gmail.com>
Co-authored-by: Mostafa Kamal <hiremostafa@gmail.com>
Fix auto-close MRE script posting comment without closing (#3386 )
Fix WorkOS token scope verification bypass 🤖 Generated with Codex (#3407 )
Fix initialize McpError fallthrough 🤖 Generated with Codex (#3413 )
Fix transform arg collisions with passthrough params (#3431 )
Fix get_* returning None when latest version is disabled (#3439 )
Fix get_* returning None when latest version is disabled (#3421 )
Fix server lifespan overlap teardown (#3415 )
Fix $ref output schema object detection regression (#3420 )
resolved annotations (#3429 )
Fix async partial callables rejected by iscoroutinefunction (#3438 )
Fix async partial callables rejected by iscoroutinefunction (#3423 )
fix: add version to components (#3458 )
fix: use intent-based flag for OIDC scope patch in load_access_token (#3465 )
Fixes #3461
fix: normalize Google scope shorthands and surface valid_scopes (#3477 )
fix: resolve ty 0.0.23 type-checking errors and bump pin (#3481 )
fix: shield lifespan teardown from cancellation (#3480 )
fix: forward custom_route endpoints from mounted servers (#3462 )
fix updates _get_additional_http_routes() to traverse providers,
Fixes #3457
fix: remove hardcoded version from CLI help text (#3456 )
fix: monty 0.0.8 compatibility, drop external_functions from constructor (#3468 )
fix: task test teardown hanging 5s per test (#3499 )
Closes #3498
fix: validate workspace path is a directory before cursor install (#3440 )
Fixes #3426
fix: handle re.error from malformed URI templates in build_regex (#3501 )
fix: reject empty/OIDC-only required_scopes in AzureProvider (#3503 )
fix: restrict $ref resolution to local refs only (SSRF/LFI) (#3502 )
fix warnings and timeouts (#3504 )
close upgrade check issue when build passes (#3505 )
Closes #3484
fix: URL-encode path params to prevent SSRF/path traversal (GHSA-vv7q-7jx5-f767) (#3507 )
fix: prevent path traversal in skill download (#3493 )
fix: prefer IdP-granted scopes over client-requested scopes in OAuthProxy (#3492 )
fix: remove unrelated transform and http.py changes from PR scope
fix: remove forced follow_redirects from httpx_client_factory calls (#3496 )
fix: stop passing follow_redirects to httpx_client_factory
fix: restore follow_redirects=True for custom httpx client factories
Closes #3509
fix: CSRF double-submit cookie check in consent flow (#3519 )
fix: validate server names in install commands (#3522 )
fix: use raw strings for regex in pytest.raises match (#3523 )
fix: reject refresh tokens used as Bearer access tokens (#3524 )
fix: route ResourcesAsTools/PromptsAsTools through server middleware (#3495 )
fix: resolve Pyright "Module is not callable" on @tool, @resource, @prompt decorators (#3540 )
fix: filter warnings by message in KEY_PREFIX test (#3549 )
fix: suppress output schema for ToolResult subclass annotations (#3548 )
fix: increase sleep duration in proxy cache tests (#3567 )
fix: store absolute token expiry to prevent stale expires_in on reload (#3572 )
fix: preserve tool properties named 'title' during schema compression (#3582 )
Fix loopback redirect URI port matching per RFC 8252 §7.3 (#3589 )
Fix app tool routing: visibility check and middleware propagation (#3591 )
Fix query parameter serialization to respect OpenAPI explode/style settings (#3595 )
Fix dev apps form: union types, textarea support, JSON parsing (#3597 )
fix(google): replace deprecated /oauth2/v1/tokeninfo with /oauth2/v3/userinfo (#3603 )
fix: resolve EntraOBOToken dependency injection through MultiAuth (#3609 )
fix(docs): correct misleading stateless_http header (#3622 )
fix: filesystem provider import machinery (#3626 )
Closes #3625 (issues 2, 3, 6)
fix: recover StdioTransport after subprocess exits (#3630 )
fix(server): preserve mounted tool task metadata (#3632 )
fix: scope deprecation warning filter to FastMCPDeprecationWarning (#3649 )
fix imports, add PrefabAppConfig (#3650 )
fix: resolve CurrentFastMCP/ctx.fastmcp to child server in mounted background tasks (#3651 )
Fix blocking docs issues: chart imports, Select API, Rx consistency (#3652 )
closed by default (#3657 )
Fix prompt caching middleware missing wrap/unwrap round-trip (#3666 )
fix: serialize object query params per OpenAPI style/explode rules (#3662 )
Fixes #2857
fix: HTTP request headers not accessible in background task workers (#3631 )
fix: restore HTTP headers in worker execution path for background tasks (#3681 )
fix: strip discriminator after dereferencing schemas (#3682 )
fix: remove stale ty:ignore directives for ty 0.0.26 (#3684 )
Fix docs gaps in app provider pages (#3690 )
fix: dev apps log panel UX improvements (#3698 )
fix dev server empty string args (#3700 )
2026-03-30 16:48:30 -04:00
Jeremiah Lowin
610551c7b6
Split large test files to comply with loq line limit ( #3328 )
2026-02-28 11:21:11 -05:00
Bill Easton
b2f5551d22
Fix Field() handling in prompts ( #3050 )
...
Co-authored-by: Bill Easton <strawgate@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
2026-02-01 21:28:44 -05:00
Jeremiah Lowin
1b723f302d
Decorators return functions instead of component objects ( #2856 )
2026-01-12 21:58:07 -05:00
Jeremiah Lowin
fc19f1f8de
Add task_meta parameter to read_resource() for explicit task control ( #2750 )
2025-12-26 12:59:01 -05:00
Jeremiah Lowin
648684d2bb
Introduce ResourceResult as canonical resource return type ( #2734 )
2025-12-25 21:21:55 -05:00
Jeremiah Lowin
d6654a2379
Add supports_tasks() method to replace string mode checks ( #2664 )
...
* Add supports_tasks() method to replace string mode checks
Consolidates task config mode checks into a readable method on TaskConfig.
Instead of `task_config.mode == "forbidden"` or `task_config.mode != "forbidden"`,
code now uses `task_config.supports_tasks()` for clearer intent.
Updated 20 instances across the codebase and added type assertions in tests
to resolve type checker warnings.
* Update test to match new error message
2025-12-21 15:41:46 -05:00
Jeremiah Lowin
5f3bb05f99
Revert "Revert "Refactor resource behavior and add meta support ( #2598 )" ( #2609 )" ( #2611 )
...
This reverts commit 1efc4bc3ff .
2025-12-14 21:36:40 -05:00
Jeremiah Lowin
1efc4bc3ff
Revert "Refactor resource behavior and add meta support ( #2598 )" ( #2609 )
...
This reverts commit 12f2422e18 .
2025-12-13 15:02:18 -05:00
Jeremiah Lowin
12f2422e18
Refactor resource behavior and add meta support ( #2598 )
...
* feat: make ResourceContent the canonical internal type for resources
Add Resource._read() private method that always returns ResourceContent,
maintaining backwards compatibility for custom resources returning str/bytes
from read(). Includes deprecation warning when str/bytes is returned.
* fix: address review feedback for ResourceContent
- Remove ResourceContent from root exports (import from fastmcp.resources)
- Fix FunctionResource.read() return type to str | bytes | ResourceContent
- Decode base64 blobs in proxy when receiving from remote servers
- Preserve meta in ProxyResource cached content
* fix: add empty result guards in proxy resource reads
2025-12-13 11:45:38 -05:00
Jeremiah Lowin
0cf12fa30c
Add regression tests for functools.wraps + Context ( #2524 ) ( #2566 )
...
Follow-up to PR #2563 which fixed the signature handling in
create_function_without_params. These tests ensure the fix
works end-to-end for all object types that support Context injection.
2025-12-06 12:32:39 -05:00
Jeremiah Lowin
07750efaab
Fix type errors for ty 0.0.1-alpha.31 upgrade ( #2561 )
...
* Fix type errors for ty 0.0.1-alpha.31 upgrade
Add type ignores and fixes for ty's stricter checking:
- Path(None) guards in cli.py
- isinstance checks for ElicitRequestFormParams (URL elicitation support)
- TODO(ty) comments for match/isinstance narrowing bugs
- Method override type ignores for generic covariance
- Starlette Middleware typing workarounds
- Dynamic type construction ignores in json_schema_type.py
* Fix remaining type errors for ty 0.0.1-alpha.31
- Add asserts for optional attribute access in tests
- Add type ignores for dynamic httpx transport internals
- Add TODO(ty) comments for `in` operator on str|bytes
- Add TODO(ty) comments for Starlette Middleware typing
- Use cast for prompt.fn async validation in server.py
* Upgrade ty to 0.0.1-alpha.31
Fixes additional test file type errors discovered after upgrade.
2025-12-05 21:29:14 -05:00
Jeremiah Lowin
35a8c32f61
Add RFC 6570 query parameter support to resource templates ( #1971 )
2025-09-30 16:28:09 -04:00
William Easton
fe4f31c2c7
Enable more type checking rules ( #1775 )
2025-09-07 11:11:44 -04:00
Jeremiah Lowin
38036b1f42
Add automatic MCP list change notifications and client message handling
...
Implements comprehensive notification system for tools, resources, and prompts with automatic client updates and flexible message handlers.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24 22:33:06 -04:00
Jeremiah Lowin
2e31b2704b
Update tests
2025-06-19 14:05:19 -04:00
Jeremiah Lowin
956488635e
Add support for tag-based include/exclude
2025-06-07 18:38:29 -04:00
Jeremiah Lowin
6b308a6651
Formalize template/functiontemplate
2025-06-04 11:29:59 -04:00
Jeremiah Lowin
3a0faf5fcf
Formalize resource/functionresource replationship
2025-06-04 11:06:59 -04:00
Jeremiah Lowin
010170337f
Ensure that tools/templates/prompts are compatible with callable objects
2025-05-23 18:53:55 -04:00
Jeremiah Lowin
e7e301815f
Handle template errors
2025-05-13 14:33:11 -04:00
Jeremiah Lowin
82aa53e09b
Refactor context to avoid unecessary passing
2025-05-06 21:24:29 -04:00
Jeremiah Lowin
c449f1d697
Handle args/kwargs appropriately for various objects
2025-05-04 15:00:26 -04:00
Jeremiah Lowin
517b5358dd
Merge pull request #290 from jlowin/json
...
use pydantic_core.to_json
2025-04-30 18:12:27 -04:00
Jeremiah Lowin
87031a62de
Improve context injection type checks
2025-04-30 18:03:52 -04:00
Jeremiah Lowin
a9253d3111
use pydantic_core.to_json
2025-04-30 17:29:38 -04:00
Jeremiah Lowin
713864aa9a
Ensure servers expose template wildcards
2025-04-25 14:25:17 -04:00
Jeremiah Lowin
d73e87b053
Add resource template tests
2025-04-25 12:55:32 -04:00
Jeremiah Lowin
f2c5f0d708
Update test_resource_template.py
2025-04-24 15:07:06 -04:00
Jeremiah Lowin
4e076c7c8f
Add wildcard params
2025-04-24 15:01:36 -04:00
Jeremiah Lowin
d27141a935
Refactor remote servers
2025-04-15 20:28:14 -04:00
Jeremiah Lowin
67fbb4c3e8
Ensure quoted URIs work; fix proxy template issue
2025-04-15 12:54:58 -04:00
Jeremiah Lowin
4de2469d29
Improve matching logic for quoted chars
2025-04-15 11:31:10 -04:00
Jeremiah Lowin
c2ca6e1fa2
Fix matching logic
2025-04-15 11:06:51 -04:00
Jeremiah Lowin
649329351b
permit optional resource template args
2025-04-15 01:17:59 -04:00
Jeremiah Lowin
96485c8dfe
restore 1.x code
...
Attempting to subclass and monkeypatch was becoming too difficult; inflexibility between low-level types and the requirements of new high-level APIs requires the potential for breaking changes, even if they don't face users.
2025-04-09 11:54:42 -04:00
Jeremiah Lowin
ca810729d7
Use upstream FastMCP
2025-04-01 18:35:57 -04:00
Jeremiah Lowin
fae91fa2f6
Fix tests
2024-12-03 13:58:29 -05:00
Jeremiah Lowin
83eb81ff7f
Handle URL tests
2024-12-03 12:54:25 -05:00
Jeremiah Lowin
5eec0b0d1d
func → fn everywhere
2024-11-30 16:53:18 -05:00
Jeremiah Lowin
55d7cd1488
Add template support
2024-11-30 10:29:34 -05:00