from __future__ import annotations from typing import List from mcp.server import Server from mcp.server_common import create_common_tools, run_server from agents.orchestrator import OrchestratorAgent from models.schemas import JobPosting def build_server() -> Server: server = Server("orchestrator_mcp") create_common_tools(server) orch = OrchestratorAgent() @server.tool() async def list_jobs() -> List[dict]: jobs: List[JobPosting] = orch.get_saved_jobs() return [job.model_dump() for job in jobs] @server.tool() async def run_for_jobs(job_ids: List[str], user_id: str = "default_user") -> List[dict]: jobs = [j for j in orch.get_saved_jobs() if j.id in job_ids] results = orch.run_for_jobs(jobs, user_id=user_id) return [r.model_dump() for r in results] return server if __name__ == "__main__": run_server(build_server())