graph LR
FastAPIWorker["FastAPIWorker"]
FastAPIRouter["FastAPIRouter"]
MCPServer["MCPServer"]
ToolExecutor_Client["ToolExecutor Client"]
Auth_Validator["Auth Validator"]
Data_Converters["Data Converters"]
FastAPIWorker -- "Manages and delegates to" --> FastAPIRouter
FastAPIRouter -- "Delegates execution to" --> ToolExecutor_Client
FastAPIRouter -- "Uses for authorization" --> Auth_Validator
MCPServer -- "Delegates execution to" --> ToolExecutor_Client
MCPServer -- "Uses for authorization" --> Auth_Validator
MCPServer -- "Translates data with" --> Data_Converters
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
The main entry point and process manager for the HTTP server. It initializes the FastAPI application and delegates routing responsibilities to the FastAPIRouter.
Related Classes/Methods:
Defines and manages the HTTP API endpoints (e.g., /execute, /list_tools). It adapts core logic handlers to the FastAPI framework, handling the request-response lifecycle.
Related Classes/Methods:
The central orchestrator for the Mission Control Protocol (MCP). It manages persistent client connections, handles the message-passing lifecycle, and maintains server state for stateful interactions.
Related Classes/Methods:
arcade_serve/mcp/server.py
Acts as a crucial bridge to the arcade-core subsystem. It abstracts the details of how tools are executed, providing a simple, unified interface for both the FastAPIRouter and MCPServer to use.
Related Classes/Methods:
arcade_core/executor.py
A critical security component responsible for enforcing access control. It validates credentials (like engine IDs or auth tokens) to ensure a request is authorized to access the requested tools.
Related Classes/Methods:
arcade_serve/fastapi/auth.pyarcade_serve/mcp/server.py
A set of utility functions that perform bidirectional translation between the public-facing MCP data models and the internal data structures used by arcade-core. This acts as an anti-corruption layer, decoupling the API from the core logic.
Related Classes/Methods:
arcade_serve/mcp/convert.py