fastmcp/tests/server/openapi
Jeremiah Lowin 6c9263001b
Add output schema support for OpenAPI tools (#1073)
* Add output schema support for OpenAPI tools

Implement automatic output schema extraction from OpenAPI responses for
FastMCP tools, addressing issue #1070. Tools generated from OpenAPI specs
now have meaningful output schemas instead of null, improving agent
efficiency when working with structured API responses.

- Add extract_output_schema_from_responses() function to parse response schemas
- Enhance OpenAPITool to accept and use output schemas with proper wrapping
- Automatically wrap non-object responses to comply with MCP requirements
- Include schema definitions and compress unused ones
- Add comprehensive test suite covering object, array, and primitive responses
- Update existing tests to handle structured output with proper typing
- Maintain backward compatibility for specs without response schemas

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

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

* Move output schema tests to dedicated test file

Reorganize output schema tests into test_openapi_output_schemas.py to keep
the main test_openapi.py file focused and smaller, as requested. Added two
additional tests for schema definitions handling.

- Move all extract_output_schema_from_responses() tests to new file
- Add tests for schema definitions inclusion
- Remove output schema imports from main test file

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-07 12:51:01 -04:00
..
__init__.py clean up test inits 2025-05-31 19:32:08 -04:00
conftest.py Split giant test file into smaller files 2025-07-03 20:31:03 -04:00
test_advanced_behavior.py Split giant test file into smaller files 2025-07-03 20:31:03 -04:00
test_basic_functionality.py Add output schema support for OpenAPI tools (#1073) 2025-07-07 12:51:01 -04:00
test_configuration.py Split giant test file into smaller files 2025-07-03 20:31:03 -04:00
test_description_propagation.py Split giant test file into smaller files 2025-07-03 20:31:03 -04:00
test_explode_integration.py Remove asyncio mark 2025-07-06 21:14:30 -04:00
test_openapi_compatibility.py Update test_openapi_compatibility.py 2025-07-03 21:09:27 -04:00
test_openapi_path_parameters.py Fix OpenAPI array parameter explode handling 2025-07-01 19:06:35 -04:00
test_route_map_fn.py Clean up route maps 2025-06-10 20:19:41 -04:00