We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/89jobrien/mcp-joecc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
.PHONY: help install install-prod update lint lint-fix format format-check \
typecheck test test-cov test-fast train-local train-cloud eval \
serve-ollama pull-models docker-build docker-run docker-clean \
db-migrate db-reset security-audit deps-check clean build ci pre-commit
PYTHON := uv run python
PYTEST := uv run pytest
# Default target
help:
@echo "MCP Task Aggregator - Available Targets"
@echo ""
@echo "Development:"
@echo " install Install dependencies (dev)"
@echo " install-prod Install dependencies (prod only)"
@echo " update Update and sync dependencies"
@echo ""
@echo "Code Quality:"
@echo " lint Run ruff linter"
@echo " lint-fix Run ruff with auto-fix"
@echo " format Format code with ruff"
@echo " format-check Check formatting"
@echo " typecheck Run mypy type checker"
@echo ""
@echo "Testing:"
@echo " test Run all tests"
@echo " test-cov Run tests with coverage"
@echo " test-fast Run tests (fail fast)"
@echo ""
@echo "Training:"
@echo " serve-ollama Start Ollama server"
@echo " pull-models Pull Gemma 3 models for Ollama"
@echo " train-local Train with Ollama (local)"
@echo " train-cloud Train with OpenRouter (cloud)"
@echo " eval Evaluate model performance"
@echo ""
@echo "Docker:"
@echo " docker-build Build Docker image"
@echo " docker-run Run with docker compose"
@echo " docker-clean Stop and remove containers"
@echo ""
@echo "Database:"
@echo " db-migrate Run database migrations"
@echo " db-reset Reset database (WARNING: deletes data)"
@echo ""
@echo "Security:"
@echo " security-audit Run pip-audit"
@echo " deps-check Check for outdated deps"
@echo ""
@echo "Build:"
@echo " clean Remove build artifacts"
@echo " build Build package"
@echo ""
@echo "CI:"
@echo " ci Full CI pipeline"
@echo " pre-commit Pre-commit checks"
# === Development ===
install:
uv sync
install-prod:
uv sync --no-dev
update:
uv lock --upgrade && uv sync
# === Code Quality ===
lint:
uvx ruff check .
lint-fix:
uvx ruff check . --fix
format:
uvx ruff format .
format-check:
uvx ruff format --check .
typecheck:
uvx mypy src/ --ignore-missing-imports
# === Testing ===
test:
$(PYTEST) tests/ -v
test-cov:
$(PYTEST) tests/ -v --cov=src/mcp_task_aggregator --cov-report=term-missing --cov-report=html
test-fast:
$(PYTEST) tests/ -x -q
# === Training ===
serve-ollama:
@echo "Starting Ollama server..."
@ollama serve &
@sleep 2
@echo "Ollama server started"
pull-models:
@echo "Pulling Gemma 3 models..."
ollama pull gemma3:1b-it-qat
ollama pull gemma3:4b-it-qat
@echo "Models ready"
train-local:
$(PYTHON) -m mcp_task_aggregator.training.cli train --backend ollama
train-cloud:
$(PYTHON) -m mcp_task_aggregator.training.cli train --backend openrouter
eval:
$(PYTHON) -m mcp_task_aggregator.training.cli eval
# === Docker ===
docker-build:
docker build -t mcp-task-aggregator .
docker-run:
docker compose up -d
docker-stop:
docker compose stop
docker-clean:
docker compose down -v
docker-logs:
docker compose logs -f
# === Database ===
db-migrate:
$(PYTHON) -c "from mcp_task_aggregator.storage.database import Database; db = Database(); db.migrate()"
db-reset:
@echo "WARNING: This will delete all data!"
@read -p "Are you sure? [y/N] " confirm && [ "$$confirm" = "y" ] || exit 1
rm -f ~/.mcp-task-aggregator/tasks.db
@echo "Database reset complete"
# === Security ===
security-audit:
uvx pip-audit
deps-check:
uv pip list --outdated 2>/dev/null || echo "All dependencies up to date"
# === Build ===
clean:
rm -rf __pycache__ .pytest_cache .ruff_cache .coverage htmlcov dist build *.egg-info .art
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
find . -type f -name "*.pyc" -delete 2>/dev/null || true
@echo "Cleaned build artifacts"
build: clean
uv build
@echo "Build complete: dist/"
# === CI Compound Targets ===
ci: lint format-check test
@echo "CI pipeline passed"
pre-commit: lint-fix format test-fast
@echo "Pre-commit checks passed"
# === Quick shortcuts ===
t: test
l: lint
f: format
c: ci