·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.
| Field | Required | Notes |
|---|---|---|
name | yes | Up to 120 characters |
email | yes | Where the reply goes |
message | yes | Up to 4000 characters |
topic | no | General, Speaking, Consulting, Advisory / investment |
cf-turnstile-response | yes | Turnstile token — a submission without one is refused |
Responses
| Status | Meaning |
|---|---|
| 200 | { "ok": true } — sent |
| 400 | Validation failed, or verification missing or rejected |
| 405 | Only POST is accepted |
| 502 | The mail provider rejected the message |
| 503 | Email 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:
| Tool | Does |
|---|---|
get_profile | Who I am, expertise, past companies, links |
list_services | What I can be engaged for, and what each covers |
send_enquiry | Sends 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/mcpRate 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.
