MCP server
POST https://www.rubenmarcus.dev/api/mcp — Streamable HTTP JSON-RPC. No authentication.
- Server card (registry format):
/.well-known/mcp/server.json - Server card (MCP schema):
/.well-known/mcp/server-card.json - Official MCP Registry:
io.github.rubenmarcus/portfolio - Tools:
get_resume,get_services,check_availability,book_intro
REST API
/openapi.json— OpenAPI 3.1, operationIds and typed response schemas/api/resume.json— structured resume/api/resume.txt— plain-text resume/api/health— health probe/api/stats— public telemetry/api/hire— project briefs (POST, Idempotency-Key supported)/api/subscribe— newsletter (POST)
All endpoints answer typed JSON errors, send RateLimit/RateLimit-Policy headers, and accept CORS from any origin.
Discovery manifests
/.well-known/api-catalog— RFC 9727 API catalog (linkset)/.well-known/ard.json— ARD manifest (Agentic Resource Discovery)/.well-known/ai-catalog.json— ai-catalog (ARD predecessor path)/.well-known/agent-skills/index.json— Agent Skills index (agentskills.io)/llms.txt·/llms-full.txt·/ai-index.json·/docs.json
Content negotiation
Every page answers Accept: text/markdown with a Markdown twin
(GET / → /index.md, GET /blog/x → /blog/x.md).
Terminal user agents (curl, wget, httpie) get the plain-text resume on any page route.
Auth
Nothing here requires credentials. An OAuth discovery shim exists at
/.well-known/oauth-authorization-server
for MCP clients that insist on an OAuth handshake; it auto-approves.