# Siigo MCP Server
MCP server for Siigo invoicing software (Colombian electronic invoicing).
## Quick Start for New Session
1. Read `.claude/skills/dev-workflow/PROGRESS.md` for current progress
2. Read `~/.claude/plans/humble-painting-lantern.md` for detailed plan
## Current Status: Ready for HTTP Mode
**Done**: Full MCP server with 32 tools working in stdio mode
**Next**: Convert to HTTP/SSE for public Railway deployment with per-request auth
## Project Structure
```
src/siigo_mcp/
├── server.py # FastMCP entry (needs HTTP transport)
├── auth.py # Siigo token management
├── client.py # API client (needs per-request factory)
└── tools/ # 32 tools: customers, products, invoices, credit_notes, journals, reference
```
## Key Tech
- FastMCP 2.14+ for MCP server
- httpx for async API calls
- Pydantic Logfire for observability (conditional on LOGFIRE_TOKEN)
- Railway for hosting
## Skills Available
- `dev-workflow` - Iterative coding with PROGRESS.md tracking
- `siigo-expert` - Siigo API and Colombian invoicing reference
- `technical` - FastMCP/MCP best practices
- `infrastructure` - Railway, Docker, deployment
## Next Task Summary
Convert from stdio (single-tenant) to HTTP/SSE (multi-tenant):
1. Switch `mcp.run(transport="sse")`
2. Accept credentials via headers: `X-Siigo-Username`, `X-Siigo-Access-Key`, `X-Siigo-Partner-Id`
3. Create client per-request using Context
4. Update Dockerfile to expose port 8000