-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Hey! I am trying to use the codex MCP server and integrate it to my crew AI code using MCP Adapt and it seems like I get a pydantic error. I am adding the stacktrace for the same below:
Code Snippet:
import os
from dotenv import load_dotenv
from crewai import Agent, Crew, Task
from mcp import StdioServerParameters
from mcpadapt.core import MCPAdapt
from mcpadapt.crewai_adapter import CrewAIAdapter
load_dotenv()
if not os.environ.get("OPENAI_API_KEY"):
raise ValueError("OPENAI_API_KEY must be set in your environment variables")
with MCPAdapt(
StdioServerParameters(
command="npx",
args=["-y", "@codex-data/codex-mcp"],
env={
"CODEX_API_KEY": "<api-key>"
},
),
CrewAIAdapter(),
) as tools:
agent = Agent(
role="Research Agent",
goal="Find studies about hangover",
backstory="You help find studies about hangover",
verbose=True,
tools=[tools[0]],
)
task = Task(
description="Find studies about hangover",
agent=agent,
expected_output="A list of studies about hangover",
)
crew = Crew(agents=[agent], tasks=[task], verbose=True)
crew.kickoff()
Stacktrace Error:
Traceback (most recent call last):
File "[...]/python3.13/lib/python3.13/typing.py", line 1035, in __init__
code = compile(arg_to_compile, '<string>', 'eval')
File "<string>", line 1
from
^^^^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "[...]/project/data/crew/mcp_crew.py", line 62, in <module>
with MCPAdapt(
~~~~~~~~^
StdioServerParameters(
^^^^^^^^^^^^^^^^^^^^^^
...<6 lines>...
CustomCrewAIAdapter(),
^^^^^^^^^^^^^^^^^^^^^^
) as tools:
^
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/core.py", line 256, in __enter__
return self.tools()
~~~~~~~~~~^^
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/core.py", line 235, in tools
self.adapter.adapt(partial(_sync_call_tool, session, tool.name), tool)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[...]/project/data/crew/mcp_crew.py", line 18, in adapt
return super().adapt(callback, mcp_tool)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/crewai_adapter.py", line 54, in adapt
ToolInput = create_model_from_json_schema(mcp_tool.inputSchema)
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/utils/modeling.py", line 148, in create_model_from_json_schema
root_model = process_schema(model_name, schema)
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/utils/modeling.py", line 47, in process_schema
field_type, default = get_field_type(field_name, field_schema, required)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/utils/modeling.py", line 79, in get_field_type
process_schema(ref_name, ref_schema)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "[...]/project/.venv/lib/python3.13/site-packages/mcpadapt/utils/modeling.py", line 39, in process_schema
forward_refs[name] = ForwardRef(name)
~~~~~~~~~~^^^^^^
File "[...]/python3.13/lib/python3.13/typing.py", line 1037, in __init__
raise SyntaxError(f"Forward reference must be an expression -- got {arg!r}")
SyntaxError: Forward reference must be an expression -- got 'from'
Metadata
Metadata
Assignees
Labels
No labels