Jerome Swannack
67daa5a632
fix: remove unnecessary 'or None' from extensions assignment
2026-01-19 15:05:13 +00:00
Jerome Swannack
9a1fee379c
refactor: use explicit extensions field instead of spreading kwargs
...
Address PR review feedback: Instead of using **capability_extensions to
spread arbitrary keys into ClientCapabilities, explicitly use the
'extensions' field. This prevents potential conflicts if new fields are
added to ClientCapabilities in the future.
Changes:
- Add 'extensions' field to ClientCapabilities type definition
- Update ClientSession to pass capability_extensions as 'extensions' kwarg
- Update test to pass extensions dict directly (without 'extensions' key wrapper)
2026-01-19 14:38:18 +00:00
Jerome Swannack
9830794ddf
feat(client): Add capability_extensions parameter to ClientSession
...
Add a new `capability_extensions` parameter to `ClientSession.__init__()` that
allows clients to include additional capability fields in the initialize request.
This enables clients to advertise protocol extensions (like `io.modelcontextprotocol/ui`)
without having to override the `initialize()` method.
Example usage:
```python
session = ClientSession(
read_stream,
write_stream,
capability_extensions={
"extensions": {
"io.modelcontextprotocol/ui": {
"mimeTypes": ["text/html;profile=mcp-app"]
}
}
}
)
```
The extensions are merged into `ClientCapabilities` using Pydantic's extra fields
feature (`model_config = {'extra': 'allow'}`).
2026-01-17 10:20:31 +00:00
Felix Weinberger
dcc9b4f8e0
refactor: use Client class in tests ( #1900 )
2026-01-17 09:46:58 +01:00
Felix Weinberger
d41d0c0128
chore: add D212 lint rule to enforce Google-style docstrings ( #1892 )
2026-01-16 16:10:52 +00:00
Felix Weinberger
df039bf97c
Add ergonomic Client class for testing MCP servers ( #1870 )
2026-01-16 15:49:26 +00:00
Marcelo Trylesinski
8adb5bdce8
refactor: move transport-specific parameters from FastMCP constructor to run() ( #1898 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 15:16:20 +00:00
Max Isbey
5d80f4efc8
refactor: move inline imports to module level ( #1893 )
2026-01-16 14:54:08 +00:00
Marcelo Trylesinski
c06362126b
chore: add more opinions to CLAUDE.md ( #1887 )
2026-01-16 15:52:33 +01:00
Marcelo Trylesinski
e94b386a13
refactor: use snake case instead of camel case in types ( #1894 )
2026-01-16 15:51:27 +01:00
Max Isbey
7080fcf1e6
refactor: move inline imports to top of routes.py ( #1888 )
2026-01-16 15:05:47 +01:00
Felix Weinberger
0622babbd9
fix: URL-decode parameters extracted from resource templates ( #1864 )
2026-01-16 13:47:21 +00:00
Marcelo Trylesinski
edf0950a6a
Revert mount_path parameter from FastMCP ( #1881 )
2026-01-16 13:23:08 +00:00
Marcelo Trylesinski
2b4c7ebc61
ci: add alls-green action for single required check ( #1882 )
2026-01-16 12:14:50 +01:00
Max Isbey
2cf7784a48
ci: replace highest resolution with locked in test matrix ( #1869 )
...
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com >
2026-01-16 11:09:25 +01:00
Felix Weinberger
9f427f3292
fix: add default values to Literal type fields in content types ( #1867 )
2026-01-16 10:01:57 +00:00
Felix Weinberger
d5edcb3e92
docs: add breaking changes guidance to CLAUDE.md ( #1879 )
2026-01-16 10:54:53 +01:00
Marcelo Trylesinski
68cbabb9d7
refactor: introduce MCPModel base class for protocol types ( #1880 )
...
Co-authored-by: Max Isbey <224885523+maxisbey@users.noreply.github.com >
2026-01-16 10:51:36 +01:00
dependabot[bot]
b63776b14f
chore(deps): bump the github-actions group with 7 updates ( #1878 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 10:00:49 +01:00
Marcelo Trylesinski
2ce41a8347
Drop dependencies parameter from FastMCP ( #1877 )
2026-01-16 08:59:44 +00:00
Felix Weinberger
cfb2909631
fix: change Resource URI fields from AnyUrl to str ( #1863 )
2026-01-16 09:58:57 +01:00
Marcelo Trylesinski
f2abefffaf
Add Dependabot configuration for GitHub Actions ( #1876 )
2026-01-16 09:55:32 +01:00
Max Isbey
c9e98e53a7
ci: pin all GitHub Actions to commit SHAs ( #1875 )
2026-01-16 08:52:42 +00:00
Max Isbey
fc5cb6ab48
ci: add weekly lockfile update workflow ( #1874 )
2026-01-16 09:47:06 +01:00
Marcelo Trylesinski
812a46ab97
Remove deprecated cursor parameter and ResourceReference ( #1871 )
2026-01-15 21:33:21 +01:00
Max Isbey
72a8631f0a
fix(ci): use bash shell for pytest step to ensure consistent error handling ( #1868 )
2026-01-15 17:32:22 +01:00
Marcelo Trylesinski
024d7597fd
Drop Content and args parameter in ClientSessionGroup.call_tool ( #1866 )
2026-01-15 16:24:53 +00:00
Max Isbey
c251e728f4
Add v2 development warning to README ( #1862 )
2026-01-15 15:39:02 +00:00
Marcelo Trylesinski
f2b89ec83e
docs: add migrations page ( #1859 )
2026-01-15 10:13:18 +00:00
Marcelo Trylesinski
32a4587da9
chore: drop as _annotations ( #1858 )
2026-01-15 10:07:06 +00:00
Marcelo Trylesinski
8893b022e8
Drop deprecated streamablehttp_client ( #1836 )
2026-01-15 11:02:24 +01:00
Max Isbey
b26e5b907f
Add missing TasksCallCapability to enable proper MCP task support ( #1854 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-15 10:55:38 +01:00
Yann Jouanin
0da9a074d0
Support for Resource and ResourceTemplate metadata ( #1840 )
...
Co-authored-by: Jacem Elwaar <jacem@mcpappsbuilders.com >
2026-01-12 14:45:31 +00:00
Max Isbey
6b69f6354a
docs: fix simple-auth README references to non-existent scripts ( #1829 )
2026-01-08 14:45:31 +00:00
Marcelo Trylesinski
3ffe142e9a
Support Python 3.14 ( #1834 )
2026-01-07 16:28:23 +00:00
Marcelo Trylesinski
1fd557afdc
Add type checker to examples/client ( #1837 )
2026-01-07 17:08:18 +01:00
Yann Jouanin
3863f203e9
Server initialize response update to last spec (add title, description) ( #1634 )
2026-01-06 21:34:08 +00:00
Jay Hemnani
f397783c39
fix: add explicit type annotation for call_tool decorator ( #1826 )
...
Co-authored-by: Jay Hemnani <jayhemnani9910@gmail.com >
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com >
2026-01-06 21:11:36 +01:00
Marcelo Trylesinski
201de920a0
refactor: use __future__.annotations ( #1832 )
2026-01-06 20:03:13 +01:00
Marcelo Trylesinski
adcc17b968
types: add missing py.typed from examples package ( #1833 )
2026-01-06 18:54:58 +00:00
Marcelo Trylesinski
6149b63a44
tests: add missing init files ( #1831 )
2026-01-06 19:52:09 +01:00
Max Isbey
37de50144f
fix: add StatelessModeNotSupported exception and improve tests ( #1828 )
2026-01-06 11:26:26 +00:00
Max Isbey
bb6cb029f0
fix: raise clear error for server-to-client requests in stateless mode ( #1827 )
2026-01-05 17:17:54 +00:00
gazzadownunder
d52937b39c
Make refresh_token grant type optional in DCR handler ( #1651 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-05 13:41:45 +00:00
Max Isbey
c7cbfbb302
docs: add guidance on discussing features before opening PRs ( #1760 )
2026-01-01 10:07:06 +01:00
Maxime
78a9504ec1
fix: return HTTP 404 for unknown session IDs instead of 400 ( #1808 )
...
Co-authored-by: Max Isbey <224885523+maxisbey@users.noreply.github.com >
2025-12-31 14:06:12 +00:00
jnjpng
a9cc822a10
fix: accept HTTP 201 status code in token exchange ( #1503 )
...
Co-authored-by: Paul Carleton <paulcarletonjr@gmail.com >
2025-12-19 18:22:00 +00:00
Ankesh Kumar Thakur
a4bf947540
fix: Token endpoint response for invalid_client ( #1481 )
...
Co-authored-by: Max Isbey <224885523+maxisbey@users.noreply.github.com >
2025-12-19 18:19:00 +00:00
Max Isbey
3f6b0597f1
docs: update CONTRIBUTING with v2 branching strategy ( #1804 )
2025-12-19 18:11:43 +00:00
V
06748eb4c4
fix: Include extra field for context log ( #1535 )
2025-12-19 17:54:03 +00:00