diff --git a/README.md b/README.md index 390e36f5..72a53771 100644 --- a/README.md +++ b/README.md @@ -205,6 +205,8 @@ For detailed info checkout [API documentation](https://docs.presenton.ai/using-p ## 🏗️ MCP Architecture Overview +![Demo](readme_assets/mcpdemo.gif) + Presenton is built on a modular architecture featuring a FastAPI backend and a Next.js frontend. At its core is the **MCP (Model Context Protocol) server**, which orchestrates the entire presentation generation workflow using a robust state machine. This architecture ensures flexibility, reliability, and extensibility. ### MCP Workflow Highlights diff --git a/readme_assets/mcpdemo.gif b/readme_assets/mcpdemo.gif new file mode 100644 index 00000000..ca13fa9d Binary files /dev/null and b/readme_assets/mcpdemo.gif differ diff --git a/servers/fastapi/tests/test_mcp_server.py b/servers/fastapi/tests/test_mcp_server.py index 9a7c327f..039c68a7 100644 --- a/servers/fastapi/tests/test_mcp_server.py +++ b/servers/fastapi/tests/test_mcp_server.py @@ -4,7 +4,6 @@ from fastmcp import FastMCP, Client from app_mcp.tools.start_presentation import register_start_presentation from app_mcp.tools.help_me import register_help_me from app_mcp.tools.continue_workflow import register_continue_workflow -from app_mcp.tools.regenerate_outline import register_regenerate_outline from app_mcp.tools.export_presentation import register_export_presentation from app_mcp.tools.show_layouts import register_show_layouts from app_mcp.tools.get_status import register_get_status @@ -33,7 +32,6 @@ def mcp_server(): register_start_presentation(mcp=mcp, orchestrator=mock_orchestrator) register_help_me(mcp=mcp, orchestrator=mock_orchestrator) register_continue_workflow(mcp=mcp, orchestrator=mock_orchestrator) - register_regenerate_outline(mcp=mcp, orchestrator=mock_orchestrator) register_export_presentation(mcp=mcp, orchestrator=mock_orchestrator) register_show_layouts(mcp=mcp, orchestrator=mock_orchestrator) register_get_status(mcp=mcp, orchestrator=mock_orchestrator) @@ -181,32 +179,6 @@ class TestContinueWorkflow: asyncio.run(run()) -class TestRegenerateOutline: - """ - Tests for the regenerate_outline tool - """ - - def test_success(self, mcp_server): - """ - Test regenerate_outline with valid session_id. - Checks for correct status and required fields in response. - """ - async def run(): - async with Client(mcp_server) as client: - params = {"session_id": "test_session"} - result = await client.call_tool("regenerate_outline", params) - data = result.data - assert "status" in data - assert data["status"] in ["success", "error"] - if data["status"] == "success": - assert "message" in data - assert "session_id" in data - if data["status"] == "error": - assert "error" in data - asyncio.run(run()) - - - class TestExportPresentation: """ Tests for the export_presentation tool