1717from veadk .a2a .ve_a2a_server import init_app
1818from veadk .tracing .base_tracer import BaseTracer
1919from veadk .tracing .telemetry .opentelemetry_tracer import OpentelemetryTracer
20- from veadk import Agent
21- from veadk .memory .short_term_memory import ShortTermMemory
22- from veadk .runner import Runner
2320from contextlib import asynccontextmanager
2421from fastmcp import FastMCP
2522from fastapi import FastAPI
6764# Tracer Config ================================================================
6865# ==============================================================================
6966
70-
71- # Create VeMCPServer class
72- class VeMCPServer :
73- def __init__ (self , agent : Agent , app_name : str , short_term_memory : ShortTermMemory ):
74- self .agent = agent
75- self .app_name = app_name
76- self .short_term_memory = short_term_memory
77-
78- self .runner = Runner (
79- agent = self .agent ,
80- short_term_memory = self .short_term_memory ,
81- app_name = app_name ,
82- user_id = "" , # waiting for tool call to provide user_id
83- )
84-
85- def build (self ) -> FastMCP :
86- # Create MCP server
87- mcp = FastMCP (name = self .app_name )
88-
89- @mcp .tool
90- async def run_agent (
91- user_input : str ,
92- user_id : str = "unknown_user" ,
93- session_id : str = "unknown_session" ,
94- ) -> str :
95- """
96- Execute agent with user input and return final output
97- Args:
98- user_input: str, user_id: str = "unknown_user", session_id: str = "unknown_session"
99- Returns:
100- final_output: str
101- """
102- # Set user_id for runner
103- self .runner .user_id = user_id
104-
105- # Running agent and get final output
106- final_output = await self .runner .run (
107- messages = user_input ,
108- session_id = session_id ,
109- )
110-
111- return final_output
112-
113- return mcp
114-
115-
11667# Create A2A app
11768a2a_app = init_app (
11869 server_url = "0.0.0.0" ,
@@ -121,13 +72,7 @@ async def run_agent(
12172 short_term_memory = short_term_memory ,
12273)
12374
124- # Create MCP server instance
125- mcp_server = VeMCPServer (
126- agent = agent ,
127- app_name = app_name ,
128- short_term_memory = short_term_memory ,
129- )
130- mcp = mcp_server .build ()
75+ mcp = FastMCP .from_fastapi (app = a2a_app , name = app_name )
13176
13277# Create MCP ASGI app
13378mcp_app = mcp .http_app (path = "/" )
0 commit comments