Commit graph

1,724 commits

Author SHA1 Message Date
Jeremiah Lowin
0600834da4 Fix single-element list unwrapping in tool content
Single-element lists like [1] were being incorrectly unwrapped to "1"
in unstructured content while multi-element lists remained as lists.
This created inconsistent behavior where the structure was lost for
single items.

This fix ensures lists always preserve their structure in unstructured
content regardless of length, making behavior consistent and predictable.

Also removes pretty-printing from JSON serialization for more compact
output across tools, prompts, and resources.

Fixes #1064

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 12:07:16 -04:00
Jeremiah Lowin
fe7155b675
Merge pull request #1071 from jlowin/version-copy
Ensure fastmcp version copy is plaintext
2025-07-07 11:14:40 -04:00
Jeremiah Lowin
7efecafbb7 Update test_cli.py 2025-07-07 10:46:59 -04:00
Jeremiah Lowin
4dcc757aa6 Ensure fastmcp version copy is plaintext 2025-07-07 10:31:17 -04:00
Jeremiah Lowin
d0278efa98
Merge pull request #1066 from strawgate/keep-defs-on-transform
Keep json schema $defs on transform
2025-07-07 10:26:43 -04:00
Jeremiah Lowin
011f953ad2
Merge pull request #1063 from jlowin/copy-flag
Add --copy flag for fastmcp version
2025-07-07 10:23:56 -04:00
Jeremiah Lowin
7e983ce5b7 Fix static typing 2025-07-07 10:22:48 -04:00
Jeremiah Lowin
6b38fbc8bc Fix duplicate test 2025-07-07 10:13:57 -04:00
Jeremiah Lowin
f6fe3f5785
Merge branch 'main' into copy-flag 2025-07-07 10:09:10 -04:00
Jeremiah Lowin
913b5b95dc
Merge pull request #1062 from jlowin/cyclopts
Refactor CLI from typer to cyclopts and add comprehensive tests
2025-07-07 10:08:57 -04:00
Jeremiah Lowin
3c75db5237 Reduce mocks 2025-07-07 09:59:49 -04:00
Jeremiah Lowin
7b90ea4cb5 Ensure test is platform agnostic 2025-07-07 09:51:12 -04:00
Jeremiah Lowin
c1aad2aa23 Remove heavily mocked tests 2025-07-07 09:48:36 -04:00
William Easton
8cdce8d848
Keep json schema $defs on transform 2025-07-06 21:13:50 -05:00
Jeremiah Lowin
15a50dda50 Remove asyncio.run 2025-07-06 21:15:47 -04:00
Jeremiah Lowin
96194bd40f Remove asyncio mark 2025-07-06 21:14:30 -04:00
Jeremiah Lowin
e0c22c829d Update bug.yml 2025-07-06 21:12:02 -04:00
Jeremiah Lowin
e9fa9fcf0d Add --copy flag for fastmcp version 2025-07-06 21:10:45 -04:00
Jeremiah Lowin
96cc3188de Add more tests 2025-07-06 21:04:18 -04:00
Jeremiah Lowin
6694d9a19a Add tests 2025-07-06 20:50:31 -04:00
Jeremiah Lowin
919d7e35ef Refactor from typer to cyclopts 2025-07-06 20:37:35 -04:00
Jeremiah Lowin
cbb8a0d110
Merge pull request #1059 from jlowin/await
Use isawaitable instead of iscoroutine
2025-07-06 12:11:28 -04:00
Jeremiah Lowin
3c6cfe7e7e Use isawaitable instead of iscoroutine 2025-07-06 12:08:05 -04:00
Jeremiah Lowin
50329ea8ae
Merge pull request #1058 from jlowin/favicon
Update favicon
2025-07-06 12:07:54 -04:00
Jeremiah Lowin
da115faec2 Fix broken links 2025-07-06 12:02:03 -04:00
Jeremiah Lowin
a71f7c7fa1 Update favicon 2025-07-06 12:01:49 -04:00
Jeremiah Lowin
84adbbc544
Merge pull request #1057 from jlowin/concurrency-fix-1054 2025-07-06 11:18:58 -04:00
Jeremiah Lowin
a975db6e6c Merge main into concurrency-fix-1054
Resolved conflicts in client.py by keeping our improved RuntimeError
checks instead of the assert statements from main.
2025-07-06 11:14:53 -04:00
Jeremiah Lowin
5d5126babd Add documentation 2025-07-06 11:11:39 -04:00
hopeful0
d16e1179dd
Refactor Client context management to avoid concurrency issue (#1054) 2025-07-06 11:08:43 -04:00
Jeremiah Lowin
5f6dfe2d5c Replace asserts with runtime checks 2025-07-06 10:57:17 -04:00
Neil Conway
fe1eddc252
Docs: add example of more concise way to use bearer auth (#1055) 2025-07-06 10:26:02 -04:00
Jeremiah Lowin
f9a698dcf9
Add MCP json output from CLI (#1056) 2025-07-06 10:23:50 -04:00
hopeful
5d9636cb54 Refactor Client context management to avoid concurrency issue 2025-07-06 18:47:12 +08:00
Jeremiah Lowin
84f0229acc
Add Claude Code install integration (#1053)
* Add Cursor support

* Use url-safe encoding

* Add claude code integration

* Delete test_install_dependencies.py

* Fix windows tests
2025-07-05 21:23:47 -04:00
Jeremiah Lowin
e50f4ae965
Add Cursor support via CLI integration (#1052)
* Add Cursor support

* Use url-safe encoding
2025-07-05 20:30:47 -04:00
Jeremiah Lowin
ef742d9400
Ensure multi-client configurations use new ProxyClient (#1045) v2.10.2
* Validate elicitation responses are dicts

* Ensure advanced MCP features are forwarded through proxy

* Use proxy client in tests
2025-07-05 11:57:03 -04:00
Suraj Thapa
dba9f2c81f
Docs: clarify server URL paths for ChatGPT integration (#1017)
* update server detail to add sse url

* include details for http menthod
2025-07-05 11:56:45 -04:00
Jeremiah Lowin
228425e309
Avoid propagating logs (#1042)
* Avoid propagating logs

* Set up caplog for non-root loggers

* Update tests
2025-07-04 12:22:11 -04:00
hopeful0
f7dfd5be9c
Proxy support advanced MCP features (#1022)
* Proxy support advanced MCP features

* Optimize ProxyClient testing

* Add documentation for ProxyClient
2025-07-04 12:21:57 -04:00
Jeremiah Lowin
32890c0b5f
Update banner and use console.log (#1041)
* Update banner and use console.log

* Update cli.py
2025-07-04 11:52:37 -04:00
Jeremiah Lowin
e182231fc8
Add path expansion to image/audio/file (#1038)
* Add path expansion to image/audio/file

* Make path tests platform agnostic
2025-07-04 09:51:30 -04:00
Jeremiah Lowin
cdb7791346
Merge pull request #1035 from jlowin/add-openapi-compatibility-tests
Add comprehensive OpenAPI 3.0 vs 3.1 compatibility tests
2025-07-03 21:11:45 -04:00
Jeremiah Lowin
61c191b920 Update test_openapi_compatibility.py 2025-07-03 21:09:27 -04:00
Jeremiah Lowin
68c355d740 Fix test to properly expect ValidationError with pytest.raises 2025-07-03 21:05:56 -04:00
Jeremiah Lowin
23d7337a97 Add comprehensive OpenAPI 3.0 vs 3.1 compatibility tests
Adds test coverage for specific differences between OpenAPI 3.0 and 3.1 that can cause validation issues, including the scenario reported in GitHub issue #1021.

Test coverage includes:
- OpenAPI 3.0 boolean exclusiveMaximum format vs 3.1 numeric format
- OpenAPI 3.0 nullable vs 3.1 type array format
- Complex schemas with $defs and multiple exclusive constraints
- Edge cases with both exclusiveMaximum and exclusiveMinimum

These tests serve as regression prevention and document expected behavior for both OpenAPI versions.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-03 20:55:32 -04:00
Jeremiah Lowin
54276a589d
Merge pull request #1033 from jlowin/claude-wt-20250703-195810
Support 'scp' claim for OAuth scopes in BearerAuthProvider
2025-07-03 20:37:29 -04:00
Jeremiah Lowin
d8de72ee13 Update bearer.py 2025-07-03 20:35:15 -04:00
Jeremiah Lowin
2171b6f9b1
Merge pull request #1034 from jlowin/openapi-tests
Split giant openapi test file into smaller files
2025-07-03 20:32:56 -04:00
Jeremiah Lowin
f052ae2d6a Split giant test file into smaller files 2025-07-03 20:31:03 -04:00