2222from fastmcp import FastMCP
2323from fastapi import FastAPI
2424
25-
2625# ==============================================================================
2726# Tracer Config ================================================================
2827
8180 user_id = "" ,
8281)
8382
83+ # Prepare doc string
84+ run_agent_doc = f"""{ agent .description }
85+ Args:
86+ user_input: User's input message (required).
87+ user_id: User identifier. Defaults to "mcp_user".
88+ session_id: Session identifier. Defaults to "mcp_session".
89+ Returns:
90+ Final agent response as a string."""
91+
8492
85- # mcp server
86- @a2a_app .post ("/run_agent" , operation_id = "run_agent" , tags = ["mcp" ])
8793async def run_agent (
8894 user_input : str ,
89- user_id : str = "unknown_user " ,
90- session_id : str = "unknown_session " ,
95+ user_id : str = "mcp_user " ,
96+ session_id : str = "mcp_session " ,
9197) -> str :
92- """
93- Execute agent with user input and return final output
94- Args:
95- user_input: User's input message
96- user_id: User identifier
97- session_id: Session identifier
98- Returns:
99- Final agent response
100- """
10198 # Set user_id for runner
10299 runner .user_id = user_id
103100
@@ -109,10 +106,17 @@ async def run_agent(
109106 return final_output
110107
111108
109+ run_agent .__doc__ = run_agent_doc
110+
111+ # Add post route to run_agent
112+ run_agent = a2a_app .post ("/run_agent" , operation_id = "run_agent" , tags = ["mcp" ])(
113+ run_agent
114+ )
115+
112116mcp = FastMCP .from_fastapi (app = a2a_app , name = app_name , include_tags = {"mcp" })
113117
114118# Create MCP ASGI app
115- mcp_app = mcp .http_app (path = "/" )
119+ mcp_app = mcp .http_app (path = "/" , transport = "streamable-http" )
116120
117121
118122# Combined lifespan management
0 commit comments