fastmcp todo server
A todo management server that receives requests via FastMCP and stores them in MongoDB for processing by the Swarmonomicon todo worker.
A todo management server that receives requests via FastMCP and stores them in MongoDB for processing by the Swarmonomicon todo worker.
A FastMCP-based Todo Server for the Swarmonomicon project. This server receives todo requests via FastMCP and stores them in MongoDB for processing by the Swarmonomicon todo worker.
Clone the repository:
git clone https://github.com/DanEdens/Omnispindle.git
cd Omnispindle
Install uv (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | sh
Create and activate a virtual environment with uv:
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venvScriptsactivate # On Windows
Install dependencies with uv:
uv pip install -r requirements.txt
For development, install additional dependencies:
uv pip install -r requirements-dev.txt
Create a .env
file with your configuration:
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=swarmonomicon
MONGODB_COLLECTION=todos
python -m src.Omnispindle
You can add todos using FastMCP in several ways:
Using FastMCP Python client:
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"
})
Using MQTT directly:
mosquitto_pub -t "mcp/todo/new" -m '{
"description": "Example todo",
"priority": "high",
"target_agent": "user"
}'
Run tests:
pytest tests/
Run tests with coverage:
pytest --cov=src tests/
Run specific test file:
pytest tests/test_todo_handler.py -v
This server is part of the larger Swarmonomicon project, which provides:
For more information about the Swarmonomicon project and its features, check out the main project documentation.
MIT License
For more information about contributing to the Swarmonomicon project, see the main project's contributing guidelines.