Commit graph

600 commits

Author SHA1 Message Date
William Easton
3be8f5ea93
Add UV Transport (#1270)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-28 15:41:36 -04:00
Muhammad Khalid
a63d44576b
Fix: prune hidden parameter defs (#1257) 2025-07-28 14:00:56 -04:00
Jeremiah Lowin
07655e6620
Fix typing, add tests for tool call middleware (#1269) 2025-07-25 18:46:48 -04:00
Tapan Chugh
51ceb23291
feat: Add Annotations support for resources and resource templates (#1260)
Co-authored-by: Tapan Chugh <tapanc@cs.washington.edu>
2025-07-25 15:16:15 -04:00
Jeremiah Lowin
d043511370
Add tests for headers with both legacy and experimental openapi parser (#1259) 2025-07-25 15:11:17 -04:00
itaru2622
99f27da088
fix: experimental FastMCPOpenAPI server lost headers in request when __init__(client with headers) (#1254) 2025-07-25 11:04:41 -04:00
Jeremiah Lowin
d04840560a
Support string annotations (#1255) 2025-07-24 14:28:58 -04:00
hopeful0
40f11d2186
Fix stateful proxy client mixing in multi-proxies sessions (#1245) 2025-07-23 15:39:50 -04:00
hopeful0
ca74b44d62
Refactor get_http_request and context.session_id (#1242) 2025-07-23 10:05:46 -04:00
William Easton
653fe0f89f
Log tool name on transform validation error (#1238) 2025-07-23 09:56:17 -04:00
Sourav Tripathy
126dd7b16a
Logcapture addition to test_server file (#1229) 2025-07-22 13:49:49 -04:00
Mukul Murthy
544bc22baa
Add state dict to Context (#1118) (#1160)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-22 10:03:33 -04:00
Jeremiah Lowin
72fb8d4ce9
Ensure default fields are not marked nullable (#1224) 2025-07-22 09:14:15 -04:00
Tapan Chugh
1da1eb581a
Skip repeated type conversion and validation in proxy client elicitation handler (#1222)
Co-authored-by: Tapan Chugh <tapanc@cs.washington.edu>
2025-07-22 08:08:39 -04:00
Jeremiah Lowin
d6bd800d88
Optimize OpenAPI parser performance with single-pass schema processing (#1214) 2025-07-21 21:29:56 -04:00
Jeremiah Lowin
4a38784194
Introduce experimental OpenAPI parser with improved performance and maintainability (#1209) 2025-07-21 16:17:36 -04:00
Jeremiah Lowin
f950b8ca95
Support from __future__ import annotations (#1199) 2025-07-20 21:05:13 -04:00
Jeremiah Lowin
1ea3ee82fe
Merge pull request #1138 from strawgate/run-mcp-config 2025-07-19 21:18:40 -04:00
Jeremiah Lowin
a65bfd10be
Add --python, --project, and --with-requirements options to CLI commands (#1190) 2025-07-19 21:16:09 -04:00
Jeremiah Lowin
c9255f483f Add validation test 2025-07-19 16:11:14 -04:00
Jeremiah Lowin
d8779d2c2e Merge branch 'main' into pr/1138 2025-07-19 16:04:43 -04:00
William Easton
1b953820b3
[🐶] Transform MCP Server Tools (#1132)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-19 15:52:47 -04:00
Jeremiah Lowin
b737fda44f
Merge pull request #1188 from jlowin/separate-integration-tests 2025-07-19 15:52:26 -04:00
hopeful0
85ebe5b657
Add StatefulProxyClient (#1109) 2025-07-19 15:51:58 -04:00
Jeremiah Lowin
30912c69c6 Run integration tests as separate CI job on Ubuntu only
- Add pytest marker for integration tests
- Configure automatic marking for tests/integration_tests/ folder via pytest hook
- Split CI workflow into two jobs: regular tests (all platforms) and integration tests (Ubuntu only)
- Integration tests can now be retried independently if they fail
2025-07-19 15:21:34 -04:00
Jeremiah Lowin
ea54851736
Fix mcp-json output format to include server name (#1185)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-19 13:31:11 -04:00
zzstoatzz
ce49880aeb fix missing import 2025-07-18 15:27:52 -05:00
nate nowack
283bf68550
Update tests/integration_tests/conftest.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-18 15:19:24 -05:00
zzstoatzz
163db94266 more specific 2025-07-18 11:19:18 -05:00
zzstoatzz
1e473cd0ef skip on rate limit 2025-07-18 11:10:26 -05:00
Martin Melka
3543c13ca9
Fix nesting when making OpenAPI arrays and objects optional (#1178) 2025-07-18 08:26:42 -04:00
Aidan
ebe817601c
add server name to mounted server warnings (#1147) 2025-07-17 12:02:30 -07:00
nate nowack
0977d552ff
Fix tool output schema generation to respect Pydantic serialization aliases (#1148)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 07:08:56 -07:00
Johannes Maron
7966514a86
Resolve #1139 -- Implement include_context argument in Context.sample (#1141) 2025-07-15 07:01:41 -07:00
William Easton
7532e1a8ee
update for windows? 2025-07-13 15:52:24 -05:00
William Easton
22b578ba11
Merge branch 'main' into run-mcp-config 2025-07-13 15:24:24 -05:00
William Easton
c6501c1060
Support running fastmcp directly with an MCPConfig 2025-07-13 15:19:57 -05:00
Jeremiah Lowin
7ce0a59ea6
Fix optional parameter validation in OpenAPI integration (#1135)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-13 10:23:56 -04:00
Jeremiah Lowin
9326cb91db Fix title field preservation in tool transformations
Add title parameter to Tool.from_tool() and TransformedTool.from_tool()
to properly inherit or override title field when transforming tools.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 09:53:49 -04:00
Jeremiah Lowin
b853bb85f9 Expand empty parameter filtering and add tests
Builds on PR #1128 by adding comprehensive filtering at parameter selection stage and test coverage for empty arrays/dicts.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 09:25:05 -04:00
Jeremiah Lowin
767de312f9
Fix middleware list result types (#1125)
* Catch more openapi changes

* Simplify middleware list operations to use lists directly

- Updated middleware signatures to work with list[Tool], list[Resource], etc instead of wrapper objects
- Removed unnecessary ListToolsResult, ListResourcesResult wrapper types
- Updated documentation to show simpler list-based filtering pattern
- Added tests for list-based middleware filtering

Closes #1121

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-11 18:04:20 -04:00
Magnus
912bba2385
fix: replace oneOf with anyOf in OpenAPI schemas to handle overlapping unions (#1119)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2025-07-11 13:31:45 -04:00
Jeremiah Lowin
ce1a85ceaf
xfail when github token is not set (#1123) 2025-07-11 12:55:45 -04:00
Jeremiah Lowin
b0f45a85c4
Fix OpenAPI deepObject style parameter encoding (#1122)
* Fix OpenAPI deepObject style parameter encoding

Add support for deepObject style with explode=true to properly serialize
object parameters using bracket notation (param[key]=value) instead of
JSON strings. Fixes #1114.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Create README_OPENAPI.md

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-11 12:50:19 -04:00
Jeremiah Lowin
e55c360389
Update github remote server tests with secret (#1112)
* Adding client tests for streamable http against official GitHub Remote MCP server

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update tests/client/test_github_mcp_remote.py

applying review suggestions

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update github server tests and move to integration

* Set GITHUB_TOKEN variable

* Revert "Set GITHUB_TOKEN variable"

This reverts commit a87d6a303a.

---------

Co-authored-by: Didier Durand <didduran@amazon.ch>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Didier Durand <durand.didier@gmail.com>
2025-07-10 10:48:42 -04:00
Jeremiah Lowin
5d95ddd8c0 Fix OpenAPI parameter name collisions with location suffixing
Resolves parameter conflicts when same name appears in path/query/header
and request body by adding double underscore suffixes (id__path, id__query).
Body parameters keep original names for natural REST API patterns.

Closes #1100

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 18:49:00 -04:00
Jeremiah Lowin
f25bef7e21 Add mirrored component support for proxy servers
Prevents enable/disable operations on mirrored components (tools, resources, prompts retrieved from proxy servers). Users must create local copies with .copy() and add them to their server to modify them. Local components take precedence over mirrored ones.

Closes #1102

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 17:54:40 -04:00
Jeremiah Lowin
4f4d06ffdb
Ensure the CLI accepts "streamable-http" as a valid transport (#1099)
* Ensure the CLI accepts "streamable-http" as a valid transport

* Add test for transport aliases
2025-07-09 09:35:26 -04:00
Jeremiah Lowin
09fae7541e
Fix OpenAPI tool name registration when modified by mcp_component_fn (#1096)
Resolves issue where tools modified by mcp_component_fn were registered
with original names but accessible with modified names, causing "Unknown tool"
errors. Now tools are registered using their final modified names.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-08 21:28:46 -04:00
Jeremiah Lowin
c452164e86
Fix concurrent proxy client operations with session isolation (#1083)
* Refactor Client session state with ClientSessionState dataclass

Fixes #1068 by introducing ClientSessionState to encapsulate session management
attributes, simplifying Client.new() and preventing concurrent proxy client
context mixing through client factory pattern.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update proxy documentation for new client factory pattern

Documents the new session management behavior, client_factory parameter,
and concurrent operation safety introduced in v2.10.3 to fix #1068.

* Remove deprecation of client parameter and update documentation

- Undeprecated FastMCPProxy client parameter
- Made client_factory the advanced option for custom control
- Added detailed explanation of how client factories work internally
- Removed outdated note about proxy feature limitations
- Removed fabricated Advanced Usage section

* Re-do proxy documentation

* Fix deprecated client parameter to provide session isolation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-08 17:22:43 -04:00