Developer / agent interface
API documentation
The portfolio publishes a read-only health endpoint and a same-origin contact endpoint. The complete OpenAPI 3.1 description is available at /openapi.json.
GET /api/status
Returns public service availability as JSON.
POST /api/contact
Accepts JSON fields for name, email, and message. Requests must originate from this site, are rate limited, and are delivered only to the configured site owner. Browser agents should use the visible contact form rather than calling this endpoint cross-origin.
POST /mcp
A remote Model Context Protocol server (JSON-RPC 2.0 over Streamable HTTP, protocol version 2025-06-18). Exposes one read-only tool, get-portfolio-profile, returning the same profile data as the markdown rendition of this site. A machine-readable description of the server is available at /mcp/manifest.json.
Every request must send Content-Type: application/json and Accept: application/json, text/event-stream. Every request except initialize must also send MCP-Protocol-Version: 2025-06-18; requests missing it or naming an unsupported version are rejected with a JSON-RPC error.
Complete the Streamable HTTP handshake by calling initialize, then sending the notifications/initialized notification (a JSON-RPC request with no id, which receives no response) before calling tools/list or tools/call.