Files
homelab-mcp 0212913831 feat: initial homelab-mcp-gitea v0.1
MCP server exposing self-hosted Gitea (gitlab.impresion3d.pro) via stdio
JSON-RPC 2.0. Six tools: list_repos, get_repo, get_file, create_issue,
list_open_prs, merge_pr. The merge_pr tool pins the Gitea 'do'-field trap
(see skill gitea pitfall #13) — sends lowercase 'do', treats HTTP 200
with non-empty body as failure.

Stack: FastMCP + httpx + pydantic + uv, with respx-mocked pytest suite
(15 tests, 0.69s) and ruff + mypy strict green.

Verification: scripts/verify_stdio.py boots the server as a subprocess,
exchanges real MCP messages over stdio, and calls list_repos against the
live Gitea instance — all green.
2026-07-22 12:47:59 +00:00

27 lines
359 B
Plaintext

# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info
# Virtual environments
.venv
# Editor / OS
.vscode/
.idea/
.DS_Store
# Local secrets — never commit. Copy .env.example to .env.
.env
# Coverage / test artifacts
.coverage
htmlcov/
.pytest_cache/
.mypy_cache/
.ruff_cache/
# uv lock is committed; the build artifacts are not.