·API

Contact API.

One endpoint, for sending me a message. The machine-readable description is at/openapi.json, and this page is its prose equivalent.

POST /api/contact

Accepts multipart/form-data and replies with JSON.

FieldRequiredNotes
nameyesUp to 120 characters
emailyesWhere the reply goes
messageyesUp to 4000 characters
topicnoGeneral, Speaking, Consulting, Advisory / investment
cf-turnstile-responseyesTurnstile token — a submission without one is refused

Responses

StatusMeaning
200{ "ok": true } — sent
400Validation failed, or verification missing or rejected
405Only POST is accepted
502The mail provider rejected the message
503Email is not configured on this deployment

MCP server

An MCP server is available athttps://mcp.devaris.com/mcp, over Streamable HTTP. It needs no authentication to read, and exposes three tools:

ToolDoes
get_profileWho I am, expertise, past companies, links
list_servicesWhat I can be engaged for, and what each covers
send_enquirySends me a message — it reaches a real inbox

The read tools serve the same content this site publishes, so they cannot disagree with the page. Add it to a client with:

claude mcp add --transport http devaris https://mcp.devaris.com/mcp

Rate limiting

Requests are rate limited per IP address. Sustained bursts receive a429 from the edge before reaching the endpoint.

Notes

Nothing is stored server-side — the message becomes an email and that is the only copy. If a token cannot be obtained, just emaildevaris@devaris.com.