Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, Request | |
| from fastapi.responses import JSONResponse | |
| from pydantic import BaseModel | |
| from typing import Dict | |
| app = FastAPI() | |
| class MCPMessage(BaseModel): | |
| session: str | |
| id: str | |
| command: str | |
| args: Dict[str, str] | |
| async def mcp_endpoint(message: MCPMessage, request: Request): | |
| print(f"[MCP Server] Received: {message.command} | Args: {message.args}") | |
| if message.command == "mcp-negotiate": | |
| return { | |
| "id": message.id, | |
| "status": "ok", | |
| "message": "Negotiation successful", | |
| "session": message.session, | |
| "version": message.args.get("version", "1.0"), | |
| } | |
| elif message.command == "mcp-message": | |
| return { | |
| "id": message.id, | |
| "status": "ok", | |
| "message": f"Delivered to {message.args.get('to')}", | |
| "echo": message.args.get("body", ""), | |
| } | |
| elif message.command == "mcp-echo-upper": | |
| original = message.args.get("body", "") | |
| return { | |
| "id": message.id, | |
| "status": "ok", | |
| "message": "Uppercase echo", | |
| "original": original, | |
| "upper": original.upper() | |
| } | |
| return JSONResponse(status_code=400, content={ | |
| "id": message.id, | |
| "status": "error", | |
| "message": f"Unknown command: {message.command}" | |
| }) | |
| def root(): | |
| return {"message": "MCP Test Server is running"} | |