-
Notifications
You must be signed in to change notification settings - Fork 809
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Error creating the MCP server when FastAPI routes include a Request dependency. The body param conversion loop is missing a param_desc
variable definition.
Note: is this an issue only for Python ^3.11?
To Reproduce
Add a route that forces the convert_openapi_to_mcp_tools()
method to loop through body params, for example by adding a request: Request
field to a FastAPI route.
System Info
Traceback (most recent call last):
File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started
target(sockets=sockets)
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 70, in serve
await self._serve(sockets)
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 77, in _serve
config.load()
File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 435, in load
self.loaded_app = import_from_string(self.app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
module = importlib.import_module(module_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/app/carebility_data_api/main.py", line 175, in <module>
mcp = FastApiMCP(
^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi_mcp/server.py", line 150, in __init__
self.setup_server()
File "/usr/local/lib/python3.11/site-packages/fastapi_mcp/server.py", line 161, in setup_server
all_tools, self.operation_map = convert_openapi_to_mcp_tools(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi_mcp/openapi/convert.py", line 243, in convert_openapi_to_mcp_tools
if param_desc:
^^^^^^^^^^
UnboundLocalError: cannot access local variable 'param_desc' where it is not associated with a value
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working