Skip to content

MadTinker/dans-fastmcp-server-template

Repository files navigation

FastMCP Server Template

A FastMCP Server Template for the Swarmonomicon project. etc

Features

  • FastMCP server for receiving requests
  • MongoDB integration for todo storage
  • Compatible with Swarmonomicon todo worker
  • Python-based implementation

Installation

  1. Clone the repository:

    git clone https://github.com/DanEdens/PROJECT_NAME.git
    cd PROJECT_NAME
  2. Install uv (if not already installed):

    curl -LsSf https://astral.sh/uv/install.sh | sh
  3. Create and activate a virtual environment with uv:

    uv venv
    source .venv/bin/activate  # On Unix/macOS
    # or
    .venv\Scripts\activate  # On Windows
  4. Install dependencies with uv:

    uv pip install -r requirements.txt
  5. For development, install additional dependencies:

    uv pip install -r requirements-dev.txt
  6. Create a .env file with your configuration:

    MONGODB_URI=mongodb://localhost:27017
    MONGODB_DB=PROJECT_NAME
    MONGODB_COLLECTION=PROJECT_NAME

Usage

Starting the Server

  1. Start the FastMCP server:
    python -m src.PROJECT_NAME

Adding Todos

You can add todos using FastMCP in several ways:

  1. 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"
    })
  2. Using MQTT directly:

    mosquitto_pub -t "mcp/todo/new" -m '{
        "description": "Example todo",
        "priority": "high",
        "target_agent": "user"
    }'

Development

  1. Run tests:

    pytest tests/
  2. Run tests with coverage:Alex

    pytest --cov=src tests/
  3. Run specific test file:

    pytest tests/test_todo_handler.py -v

Integration with Swarmonomicon

This server is part of the larger 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.

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.

About

FastMCP-based Todo Server for Swarmonomicon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages