FastMCP Todo Server

# FastMCP Todo Server A FastMCP-based Todo Server for the [Swarmonomicon](https://github.com/DanEdens/madness_interactive/tree/main/projects/common/Swarmonomicon) project. This server receives todo requests via FastMCP and stores them in MongoDB for processing by the Swarmonomicon todo worker. ## Features - FastMCP server for receiving todo requests - MongoDB integration for todo storage - Compatible with Swarmonomicon todo worker - Python-based implementation ## Installation 1. Clone the repository: ```bash git clone https://github.com/DanEdens/fastmcp-todo-server.git cd fastmcp-todo-server ``` 2. Install uv (if not already installed): ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` 3. Create and activate a virtual environment with uv: ```bash uv venv source .venv/bin/activate # On Unix/macOS # or .venv\Scripts\activate # On Windows ``` 4. Install dependencies with uv: ```bash uv pip install -r requirements.txt ``` 5. For development, install additional dependencies: ```bash uv pip install -r requirements-dev.txt ``` 6. Create a `.env` file with your configuration: ```bash MONGODB_URI=mongodb://localhost:27017 MONGODB_DB=swarmonomicon MONGODB_COLLECTION=todos ``` ## Usage ### Starting the Server 1. Start the FastMCP server: ```bash python -m src.fastmcp_todo_server ``` ### Adding Todos You can add todos using FastMCP in several ways: 1. Using FastMCP Python client: ```python from fastmcp import FastMCPClient client = FastMCPClient() response = await client.call_tool("add_todo", { "description": "Example todo", "priority": "high", # optional, defaults to "medium" "target_agent": "user" # optional, defaults to "user" }) ``` 2. Using MQTT directly: ```bash mosquitto_pub -t "mcp/todo/new" -m '{ "description": "Example todo", "priority": "high", "target_agent": "user" }' ``` ### Development 1. Run tests: ```bash pytest tests/ ``` 2. Run tests with coverage: ```bash pytest --cov=src tests/ ``` 3. Run specific test file: ```bash pytest tests/test_todo_handler.py -v ``` ## Integration with Swarmonomicon This server is part of the larger [Swarmonomicon](https://github.com/DanEdens/madness_interactive/tree/main/projects/common/Swarmonomicon) project, which provides: - Task management and distribution - Agent-based task processing - Real-time updates via MQTT - Integration with various AI models For more information about the Swarmonomicon project and its features, check out the [main project documentation](https://github.com/DanEdens/madness_interactive/tree/main/projects/common/Swarmonomicon/README.md). ## License MIT License ## Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests for new functionality 5. Submit a pull request For more information about contributing to the Swarmonomicon project, see the [main project's contributing guidelines](https://github.com/DanEdens/madness_interactive/tree/main/projects/common/Swarmonomicon/CONTRIBUTING.md).