Commit graph

2,927 commits

Author SHA1 Message Date
Jeremiah Lowin
24e6a42f68
Use pydantic_core.to_json for consistency
- Generator now uses pydantic_core.to_json() instead of json.dumps()
- Consistent with rest of fastmcp codebase
- Generated CLI still uses plain json module (standalone script)
2026-02-03 14:15:15 -05:00
Jeremiah Lowin
8b285bf33e
Fix Codex review issues in generate-cli
High priority fixes:
- Complex type defaults: Serialize dict/list defaults to JSON strings
- List params: Preserve help metadata with Annotated wrapper
- Name collisions: Detect and error on sanitized name conflicts
- JSON parsing: Use isinstance check for safety with defaults

Added tests for:
- Complex types with default values
- Parameter name collision detection
- Updated existing tests to match new format
2026-02-03 14:13:39 -05:00
Jeremiah Lowin
3a5dc22ec0
Update generate-cli docs to explain smart parameter handling
- Document simple types as direct typed flags
- Document arrays of simple types as repeatable flags
- Document complex types as JSON strings with schema in help
- Add examples showing all three patterns
2026-02-03 13:59:30 -05:00
Jeremiah Lowin
8c8c074d10
Implement smart parameter handling for generate-cli
- Simple types (str, int, float, bool): Direct typed flags
- Arrays of simple types (list[str], list[int]): Repeatable flags via cyclopts
- Complex types (objects, nested arrays): Accept JSON strings with parsing
- JSON schema shown in help text for complex parameters
- Proper escaping of newlines and quotes in help text
- Filter out None and empty list defaults when calling tools

This gives typed, discoverable CLIs for common cases while handling
complex schemas via JSON input.
2026-02-03 12:57:01 -05:00
Jeremiah Lowin
89c4242034
Fix string escaping issues in generate-cli
- Use single-quoted docstrings to avoid triple-quote escaping issues
- Escape quotes in app_name derived from server_name
- Add tests for descriptions with quotes and server names with quotes

Addresses CodeRabbit review comments about insufficient escaping.
2026-02-03 12:35:22 -05:00
Jeremiah Lowin
68cd6770a9
fix: address PR review feedback
- Sanitize tool and parameter names to valid Python identifiers
- Replace bare except Exception with specific exception types
- Escape server name in generated string literals
- Handle trailing colon edge case in _derive_server_name
- Clarify in docs that generated CLI is a client, not a bundled server
2026-02-03 11:37:26 -05:00
Jeremiah Lowin
59f323ebb7
docs: add generate-cli documentation; skip Windows executable test 2026-02-03 11:23:42 -05:00
Jeremiah Lowin
d2209059ef
docs: add generate-cli documentation 2026-02-03 11:20:33 -05:00
Jeremiah Lowin
2c705faa87
Add fastmcp generate-cli command
Connects to any MCP server, reads its tool/resource/prompt schemas,
and writes a standalone Python CLI script with typed subcommands.
2026-02-03 11:11:08 -05:00
Jeremiah Lowin
fe432de156
Add release notes for v2.14.4 and v2.14.5 (#3064) 2026-02-03 10:47:06 -05:00
Bill Easton
49707813f4
Mock network calls in CLI tests and use MemoryStore for OAuth tests
Mock network calls in CLI tests and use MemoryStore for OAuth tests
2026-02-02 19:15:06 -06:00
Bill Easton
32017f7fb1
Merge branch 'main' into claude/issue-3049-20260131-2232 2026-02-02 19:08:11 -06:00
Jeremiah Lowin
b076b2154c
Add AzureJWTVerifier for Managed Identity token verification (#3058) 2026-02-02 19:59:13 -05:00
Bill Easton
c09e748a12
Merge branch 'main' into claude/issue-3049-20260131-2232 2026-02-02 18:52:05 -06:00
Guillaume FORTAINE
08974e50d9
feat(context): Add background task support for Context (SEP-1686) (#2905) 2026-02-02 19:28:42 -05:00
Neelay Shah
c8e2c621ef
fix: Preserve metadata in FastMCPProvider component wrappers (#3057) 2026-02-02 10:26:24 -05:00
Bill Easton
b3b26e602c
Merge branch 'main' into claude/issue-3049-20260131-2232 2026-02-01 20:49:43 -06:00
Bill Easton
6fa90fa792
fix: use SkipJsonSchema to exclude callable fields from JSON schema generation (#3048)
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:30:48 -05:00
Jeremiah Lowin
186604a8a2
Merge branch 'main' into claude/issue-3049-20260131-2232 2026-02-01 21:29:57 -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
adf21ac630
Add fastmcp discover and name-based server resolution (#3055) 2026-02-01 21:27:22 -05:00
Jeremiah Lowin
bd37763e98
Add fastmcp list and fastmcp call CLI commands (#3054) 2026-02-01 18:30:14 -05:00
claude[bot]
cec40b378d Use MemoryStore for OAuth proxy tests
Updated all OAuthProxy test instantiations to use MemoryStore instead of defaulting to DiskStore, avoiding SQLite timeout issues on Windows and improving test performance.

Co-authored-by: Bill Easton <strawgate@users.noreply.github.com>
2026-02-01 02:30:05 +00:00
claude[bot]
cd085412d1 Mock network call in test_version_command_execution
Fixes #3049 by mocking check_for_newer_version to prevent real network
calls to PyPI during tests, which was causing timeouts on Windows.

Co-authored-by: Bill Easton <strawgate@users.noreply.github.com>
2026-01-31 22:35:43 +00:00
Bill Easton
684cbff634
Merge pull request #3047 from jlowin/claude/fix-workflow-link-b4Vrn 2026-01-31 15:43:28 -06:00
Bill Easton
82c9409006
Merge branch 'main' into claude/fix-workflow-link-b4Vrn 2026-01-31 15:23:11 -06:00
Bill Easton
96569177a8
Merge pull request #2996 from didier-durand/fix-typos-b 2026-01-31 15:10:53 -06:00
Bill Easton
6b1394ebf8
Merge branch 'main' into fix-typos-b 2026-01-31 15:01:57 -06:00
Bill Easton
4e10ad6299
Merge branch 'main' into claude/fix-workflow-link-b4Vrn 2026-01-31 15:01:12 -06:00
Bill Easton
70f0fd3a0a
Merge pull request #3014 from jlowin/claude/issue-3011-20260128-0658 2026-01-31 15:00:53 -06:00
William Easton
b7344d7045
chore: Trigger CI build 2026-01-31 14:58:19 -06:00
Bill Easton
c7eb47183d
Merge branch 'main' into claude/issue-3011-20260128-0658 2026-01-31 14:55:13 -06:00
Claude
4544b634c6
fix: correct workflow run link template variable
🤖 Generated with Claude Code

https://claude.ai/code/session_0116NLbUNNQwyQySTawmshQT
2026-01-31 20:51:25 +00:00
Jeremiah Lowin
e17d50e0e8
fix: use MCP spec error code -32002 for resource not found (#3041) 2026-01-31 10:57:05 -05:00
Jeremiah Lowin
8de1470973
chore: upgrade protobuf to 6.33.5 (CVE-2026-0994) (#3043) 2026-01-31 10:56:50 -05:00
Jeremiah Lowin
62f532454e
chore: upgrade python-multipart to 0.0.22 (CVE-2026-24486) (#3042) 2026-01-31 10:56:42 -05:00
Jeremiah Lowin
1bbbee37a6
feat: add fastmcp install goose command (#3040) 2026-01-31 10:53:24 -05:00
Jeremiah Lowin
12cb58f220
MCP Apps: structured CSP/permissions types, resource meta propagation fix, QR example (#3031) 2026-01-30 14:05:25 -05:00
Jeremiah Lowin
2629631536
docs: document expanded reload behavior and restructure beta sections (#3039)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Jeremiah Lowin <jlowin@users.noreply.github.com>
2026-01-30 13:51:24 -05:00
Bill Easton
9a47d30266
Merge pull request #3033 from jlowin/strawgate-patch-1 2026-01-30 09:05:26 -06:00
Bill Easton
80188a1bd0
Update martian-issue-triage.yml 2026-01-29 21:59:54 -06:00
Jeremiah Lowin
003df5b22b
Add fastmcp install stdio command (#3032) 2026-01-29 22:19:15 -05:00
Jeremiah Lowin
d52534ae32
Add MCP Apps Phase 1 — SDK compatibility (SEP-1865) (#3009) 2026-01-29 16:28:03 -05:00
Jeremiah Lowin
d9cbc06ff1
feat: expand --reload to watch frontend file types (#3028) 2026-01-29 09:23:55 -05:00
Jonas Krüger Svensson
8b3010825e
fix: automatically include offline_access as a scope in the Azure provider to enable automatic token refreshing (#3001)
Co-authored-by: Jeremiah Lowin <153965+jlowin@users.noreply.github.com>
2026-01-29 09:15:09 -05:00
Jeremiah Lowin
f4842cd3e6
Fix ty 0.0.14 compatibility and upgrade dependencies (#3027) 2026-01-29 09:10:42 -05:00
Jonas Krüger Svensson
46e0e01066
fix: correctly send resource when exchanging code for the upstream to… (#3013) 2026-01-29 08:39:12 -05:00
Bill Easton
17d3f13f24
fix: type narrowing for skills resource contents (#3023)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Bill Easton <strawgate@users.noreply.github.com>
2026-01-29 08:36:28 -05:00
Bill Easton
de22bbb6cb
Merge branch 'main' into claude/issue-3011-20260128-0658 2026-01-28 19:37:15 -06:00
Jonas Krüger Svensson
fa5b136205
feat: option to add upstream claims to the FastMCP proxy JWT (#2997) 2026-01-28 15:57:24 -05:00