marvin-context-protocol[bot]
e98e04fb83
chore: Update SDK documentation ( #2932 )
...
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2026-01-19 10:16:14 -05:00
Jeremiah Lowin
4e663593b8
Refactor LocalProvider into mixin modules ( #2936 )
2026-01-19 10:16:01 -05:00
Jeremiah Lowin
c99e0c6351
Refactor OAuthProxy into focused modules ( #2935 )
2026-01-19 10:10:07 -05:00
Jeremiah Lowin
352ff82eab
Refactor Client class into mixins and add timeout utilities ( #2933 )
2026-01-19 09:54:47 -05:00
Jeremiah Lowin
323dc1ef63
Allow marvin-context-protocol bot in label triage workflow ( #2934 )
2026-01-19 09:53:19 -05:00
Jeremiah Lowin
71d6f49e14
Bump dependencies ( #2931 )
2026-01-19 08:38:48 -05:00
marvin-context-protocol[bot]
36876c5148
chore: Update SDK documentation ( #2930 )
...
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2026-01-19 08:31:18 -05:00
Jeremiah Lowin
b25ac3f5fa
Move session visibility logic to enabled.py ( #2924 )
2026-01-19 08:29:23 -05:00
marvin-context-protocol[bot]
5c457f2ef4
chore: Update SDK documentation ( #2922 )
...
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2026-01-18 22:35:25 -05:00
Jeremiah Lowin
d8ab493664
Add session-specific visibility control via Context ( #2917 )
2026-01-18 22:31:06 -05:00
Jeremiah Lowin
8b0d016c30
Split transports.py into modular structure ( #2921 )
2026-01-18 22:11:25 -05:00
Jeremiah Lowin
2d200a887b
Fix custom provider docs to show correct interface ( #2920 )
2026-01-18 21:37:30 -05:00
marvin-context-protocol[bot]
d9f2e67f70
chore: Update SDK documentation ( #2916 )
...
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
2026-01-18 21:32:20 -05:00
Jeremiah Lowin
c3111a8978
Unify discovery API: deduplicate at protocol layer only ( #2919 )
2026-01-18 21:01:53 -05:00
Jeremiah Lowin
ed0587d683
Immutable transform wrapping for providers ( #2913 )
2026-01-18 19:37:29 -05:00
Jeremiah Lowin
c9a202f27d
Merge pull request #2915 from jlowin/remove-sync-notifications
2026-01-18 17:36:05 -05:00
Jeremiah Lowin
f603fe094a
Remove sync notification infrastructure
...
Remove send_notification_sync() method, notification queue, and background flusher task. Component add/remove operations happen outside sessions and no longer need notifications.
2026-01-18 17:31:11 -05:00
Jeremiah Lowin
e9bae4098f
Merge pull request #2900 from jlowin/marvin/update-sdk-docs
2026-01-18 17:30:26 -05:00
marvin-context-protocol[bot]
197184b7ca
chore: Update SDK documentation
2026-01-18 21:18:31 +00:00
Jeremiah Lowin
837038677d
Merge pull request #2914 from jlowin/jlowin/version-spec-in-enabled
2026-01-18 16:18:13 -05:00
Jeremiah Lowin
510738b52e
Support VersionSpec in enable/disable for range-based filtering
...
Change version parameter from str to VersionSpec in enable()/disable()
to support range-based version filtering.
- Add match_none parameter to VersionSpec.matches() for controlling
whether unversioned components match (defaults to True for backward
compatibility, False for enable/disable filtering)
- Update Enabled transform to use VersionSpec and call matches() with
match_none=False so unversioned components don't match version specs
- Update enable()/disable() signatures to accept VersionSpec
- Add comprehensive tests for version range matching
Examples:
- disable(version=VersionSpec(eq="v2")) - disable only v2
- disable(version=VersionSpec(gte="v2")) - disable v2 and later
- disable(version=VersionSpec(gte="v1", lt="v3")) - disable v1, v2
2026-01-18 16:00:05 -05:00
Jeremiah Lowin
44a47e1638
Merge pull request #2912 from jlowin/jlowin/mark-based-visibility
2026-01-18 15:19:35 -05:00
Jeremiah Lowin
19526cad65
Fix meta mutation bug; update docs to reflect mark/override semantics
2026-01-18 15:18:15 -05:00
Jeremiah Lowin
84eb35bcb4
Simplify disable calls to use keys only; fix filtering docs
2026-01-18 15:08:39 -05:00
Jeremiah Lowin
c4f506b097
Update test_local_provider.py
2026-01-18 15:01:51 -05:00
Jeremiah Lowin
84d7d3b281
Support plural names/keys in enable/disable API
...
Change enable() and disable() to accept sets: names, keys, tags.
Use key-based disable for decorator enabled=False to scope exactly.
2026-01-18 14:58:29 -05:00
Jeremiah Lowin
50ba6ea5a4
Refactor visibility to mark-based enabled system
...
Rename Visibility to Enabled, collapse VisibilityRule into the transform,
and move enabled filtering from Provider to Server level so server-level
transforms can override provider-level disables.
2026-01-18 14:36:33 -05:00
Jeremiah Lowin
2eac7ab1d1
Merge pull request #2903 from jlowin/feature/pagination-support
2026-01-17 20:03:03 -05:00
Jeremiah Lowin
17d43d7991
Address review feedback: validation and edge cases
2026-01-17 19:50:33 -05:00
Jeremiah Lowin
96d4b1b606
Add pagination documentation
2026-01-17 19:30:33 -05:00
Jeremiah Lowin
dada8893a9
Add MCP-compliant pagination for list operations
...
Server authors opt-in by setting list_page_size on FastMCP.
Client convenience methods auto-fetch all pages transparently.
Use _mcp methods with cursor parameter for manual pagination.
2026-01-17 19:30:24 -05:00
Jeremiah Lowin
96782c0330
Merge pull request #2902 from jlowin/swap-methods
2026-01-17 15:25:46 -05:00
Jeremiah Lowin
9e91ab0f96
Fix docstring example to use private method names
2026-01-17 15:20:34 -05:00
Jeremiah Lowin
6abac8269d
Fix reversed comments describing method inheritance
2026-01-17 15:04:36 -05:00
Jeremiah Lowin
cdb098ad6e
Merge branch 'main' into swap-methods
2026-01-17 14:48:02 -05:00
Jeremiah Lowin
de1bf9864a
fix: update remaining test to use get_prompt
2026-01-17 14:46:58 -05:00
Jeremiah Lowin
850f0a0050
fix: update all tests to use get_prompt instead of _get_prompt
2026-01-17 14:46:21 -05:00
Jeremiah Lowin
2c9cae9a98
refactor: reverse visibility for get_prompt/_get_prompt methods
2026-01-17 14:42:45 -05:00
Jeremiah Lowin
24cf45bb64
refactor: reverse visibility for list_prompts/_list_prompts methods
2026-01-17 14:42:06 -05:00
Jeremiah Lowin
676e43a939
refactor: reverse visibility for get_resource_template/_get_resource_template methods
2026-01-17 14:41:40 -05:00
Jeremiah Lowin
b9e32ca6a6
refactor: reverse visibility for list_resource_templates/_list_resource_templates methods
2026-01-17 14:41:08 -05:00
Jeremiah Lowin
5d12afdbf6
Merge pull request #2901 from jlowin/refactor-provider-inheritance-v2
2026-01-17 14:40:22 -05:00
Jeremiah Lowin
61d98b41d1
refactor: reverse visibility for get_resource/_get_resource methods
2026-01-17 14:40:16 -05:00
Jeremiah Lowin
d6a334257c
refactor: reverse visibility for list_resources/_list_resources methods
2026-01-17 14:39:41 -05:00
Jeremiah Lowin
b13e1c7caf
refactor: reverse visibility for get_tool/_get_tool methods
2026-01-17 14:38:07 -05:00
Jeremiah Lowin
5fe471dc60
refactor: reverse visibility for list_tools/_list_tools methods
2026-01-17 14:32:53 -05:00
Jeremiah Lowin
3d98862995
Fix auth test to expect None instead of AuthorizationError
2026-01-17 14:25:29 -05:00
Jeremiah Lowin
6dd1de62e4
Address PR review feedback
...
- Filter task-eligible components in FastMCPProvider.get_tasks()
- Catch AuthorizationError in get_* methods and return None for consistency
- Remove AggregateProvider from top-level exports
2026-01-17 14:20:10 -05:00
Jeremiah Lowin
78ab933dc5
Fix transform application in FastMCPProvider and MCP handlers
...
FastMCPProvider now calls _get_* methods instead of get_* to ensure
nested server transforms are applied during lookups. Also converts
string versions to VersionSpec in MCP handlers.
2026-01-17 12:37:37 -05:00
Jeremiah Lowin
5b24ea393d
Refactor FastMCP to use inherited _get_* methods from Provider
...
- get_*() now does aggregation + component auth (raises AuthorizationError)
- Deleted _get_*() overrides - inherited from Provider applies transforms
- Simplified AuthMiddleware to global auth only
- Changed version params to VersionSpec | None (not str | None)
- Updated tests to use _get_*() where visibility filtering is expected
2026-01-17 12:15:01 -05:00