API for various IT tools, providing both REST API (FastAPI) and Model Context Protocol (MCP) interfaces.
Note: This project is highly inspired by and based on the excellent it-tools project by Corentin Thomasset.
- Install uv:
pip install uv - Create a virtual environment:
uv venv - Install dependencies:
uv sync
Run the FastAPI server directly using uv:
# Run with hot-reloading for development
uv run uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# Run in production mode (example with 4 workers)
# uv run uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4Run the MCP server script using uv:
# Run the MCP server
uv run mcp_tools_server.py
# Customize host and port via environment variables (example)
# export MCP_HOST=127.0.0.1
# export MCP_PORT=8001
# uv run mcp_tools_server.pyThe project includes a multi-stage Dockerfile (Dockerfile) to create separate images for the FastAPI and MCP servers.
# Build the FastAPI server image
docker build -t it-tools-api-fastapi:latest --target fastapi .
# Build the MCP server image
docker build -t it-tools-api-fastmcp:latest --target fastmcp .# Run the FastAPI server container
docker run -d --name it-tools-fastapi -p 8000:8000 it-tools-api-fastapi:latest
The project includes a docker-compose.yml file to manage both services:
# Start both FastAPI and MCP servers in detached mode
docker-compose up -d
# Start only FastAPI server
docker-compose up -d fastapi
# Start only MCP server
docker-compose up -d fastmcp
# Stop and remove containers
docker-compose down- FastAPI Docs: Available at
/api/docson the running FastAPI server (e.g.,http://localhost:8000/api/docsby default). - MCP Server: Connect using an MCP client or the MCP Inspector. By default (when using
uv runordocker run), it runs on port 8000. When usingdocker-compose, the MCP server runs on port 8001.
- MCP Server Details (MCP_README.md): Detailed information about the MCP server implementation, tools, resources, prompts, and integration.
- MCP Tool Tests (tests/mcp/tools/README.md): Information about the unit tests specifically for the MCP tools.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.