Gabo Esquivel MCP and Site API β developer documentation
The Gabo Esquivel MCP server is how another agent reaches the same site agent as /ask: ask about published work on gaboesquivel.com, leave a note, or request a 15- or 30-minute call. Humans can use the chat UI; MCP clients delegate durable work over Streamable HTTP.
Gabo Esquivel MCP developer resources
Canonical documentation lives at gaboesquivel.com/docs. Predictable aliases: /developers, /mcp/docs. The Streamable HTTP server is at gaboesquivel.com/mcp. For read-only JSON (profile and Markdown page exports), use the Gabo Esquivel Site API OpenAPI description at /openapi.json. Task execution is not on that REST surface β use the MCP agent_* tools documented below. For a plain-text corpus index, use llms.txt.
Gabo Esquivel MCP server endpoint
Connect a Streamable HTTP MCP client to https://gaboesquivel.com/mcp. The route registers GET, POST, and DELETE. Access rules and invocation-id handling are under Gabo Esquivel MCP authentication below.
Gabo Esquivel MCP invocation protocol
The channel exposes four MCP tools. Start with agent_start and a message string (up to 64 KiB UTF-8). It returns an invocation id immediately; work continues after the HTTP response. Poll with agent_get and invocationId until the status is terminal. While status is working, wait at least pollAfterMs before polling again.
Status values: working, input_required, authorization_required, completed, failed, cancelled. Use agent_update only when status is input_required, sending the full answer batch in responses. agent_cancel requests cooperative cancellation; keep polling agent_get until the invocation reaches a terminal state.
Rejected tool calls use isError: true with structuredContent.error codes: invalid_input, not_found, conflict (retryable), internal. A failed invocation status means the call succeeded but the task failed β handle that separately from a rejected call.
agent_start is not idempotent. If the response is lost, there is no id to poll; a second start begins a second task. The whole MCP request body is limited to 1 MiB.
Published tools on /mcp
The channel also publishes cv, a read-only tool that returns PDF and HTML links for the CV variants (full, ai, web3, fullstack). Call it with tools/call or let agent_start handle a CV request. Direct cv calls do not count toward message limits.
For MCP Apps hosts (ChatGPT and similar), connect a separate Streamable HTTP server at https://gaboesquivel.com/mcp/cv. It exposes the same cv tool with a UI resource that renders a download card.
What a message can do
The site agent answers from the published corpus (same retrieval as the chat). It can also book a call or send email through internal tools that are not published on the MCP surface: list_slots, book, and send. On this channel those tools do not wait for browser approval.
A note needs a name, an email, and what you want to discuss (10β5000 characters). The site emails contact@gaboesquivel.com with your address as reply-to; it does not send you a receipt. A booking needs name, email, 15- or 30-minute duration, an ISO start time, a time zone, and what you want to discuss. Open weekday slots are 9:00β17:00 America/Denver. When two bookings are already on the calendar for that Denver day, the agent points to gaboesquivel.com/cal.
Hire terms and human-facing context live on /ask. Data handling for chat, notes, and bookings is in /privacy.
Public limits
Limits reset on America/Denver calendar days: 30 messages per IP, 5 notes per email and per IP, 2 bookings site-wide. Do not send passwords, payment card numbers, or other secrets through the agent.
Gabo Esquivel MCP authentication
Access is public: no API key, no OAuth, and no scoped credentials. Every caller shares the anonymous principal. An invocation id is a bearer capability until workflow retention expires β keep invocation ids out of logs and public URLs.
Not offered on Gabo Esquivel MCP
There is no separate write API, webhooks, API-key authentication, or OAuth scopes for this endpoint. Booking and note tools (list_slots, book, send) and skills are not published on /mcp β only agent_* and cv. For a plain-text index of site facts, use llms.txt.