---
title: "yonyon.ai: Developer & Agent Resources"
description:
  "Machine-readable index of every developer- and agent-facing surface on yonyon.ai: MCP server,
  OpenAPI spec, markdown twins, auth metadata."
canonical: https://yonyon.ai/developers
last-updated: 2026-08-23
---

# yonyon.ai: Developer & Agent Resources

> Machine-readable index of every developer- and agent-facing surface on yonyon.ai (Yonatan Gross).
> HTML version: [/developers](https://yonyon.ai/developers). Site-wide agent index:
> [/llms.txt](https://yonyon.ai/llms.txt).

yonyon.ai is the portfolio and public AI surface of **Yonatan Gross**, an AI Platform Engineer &
Backend Developer who ships production AI systems end-to-end, RAG pipelines, multi-agent
architectures, MCP servers, and the infrastructure they run on. Creator of
[OrchestKit](https://github.com/yonatangross/orchestkit), an open-source Claude Code agent
framework.

## Public API (no authentication)

- **API index:** `GET` [/api](https://yonyon.ai/api) returns a JSON index of every endpoint below
  with the enforced rate limit; `GET` [/api/v1](https://yonyon.ai/api/v1) is the version index. Both
  answer 200 anonymously and carry live `RateLimit-*` headers, so the documented limit is verifiable
  rather than only written down.
- **Natural-language query (NLWeb):** `POST` [/ask](https://yonyon.ai/ask) with `{"query":"..."}`.
  Returns JSON with `_meta { response_type, version }`, or Server-Sent Events (`start` / `result` /
  `complete`) when the caller sends `Accept: text/event-stream`, `?streaming=true`, or
  `{ "prefer": { "streaming": true } }`. No Origin/CSRF requirement, built for server-side agents.
- **Chat:** `POST` [/api/chat](https://yonyon.ai/api/chat): streaming text for the in-browser
  widget. Body `{"messages":[{"role":"user","content":"..."}]}`.
- **Projects (REST, cursor-paginated):** `GET` [/api/v1/projects](https://yonyon.ai/api/v1/projects)
  returns the portfolio projects as JSON. Optional `?q=` keyword filter and cursor pagination via
  `?limit=` (1-50) and `?cursor=`; the response carries `count`, `total`, and `nextCursor` (`null`
  on the last page).
- **Batch (up to 10 reads):** `POST` [/api/v1/batch](https://yonyon.ai/api/v1/batch): run up to 10
  read operations (`projects`, `services`, `about`) in one round-trip. Body
  `{"operations":[{"op":"projects","params":{"q":"rag"}}]}`; per-op results come back as
  `{op, status, data}`, and a bad op is reported inline without failing the batch.
- **Idempotency:** `POST /ask` and `POST /api/v1/batch` accept an optional `Idempotency-Key` request
  header (max 128 chars) and echo it back. Every endpoint is read-only, so all ops are idempotent.
- **OpenAPI 3.1 spec:** [/.well-known/openapi.json](https://yonyon.ai/.well-known/openapi.json)
- **API catalog (RFC 9727):** [/.well-known/api-catalog](https://yonyon.ai/.well-known/api-catalog)

### Example: query /ask with curl

```bash
curl -sS https://yonyon.ai/ask \
  -H 'content-type: application/json' \
  -d '{"query":"What does Yonatan build?"}'
```

### Example: stream /ask (SSE)

```bash
curl -N https://yonyon.ai/ask \
  -H 'content-type: application/json' \
  -H 'accept: text/event-stream' \
  -d '{"query":"Summarize the OrchestKit project","prefer":{"streaming":true}}'
```

## MCP server

- **Streamable-HTTP transport (JSON-RPC 2.0):** [/api/mcp](https://yonyon.ai/api/mcp) and the
  canonical alias [/mcp](https://yonyon.ai/mcp). Methods: `initialize`, `tools/list`, `tools/call`,
  `resources/list`, `resources/read`, `ping`.
- **Tools:** `ask_yonatan`, `browse_projects`, `book_intro_call`, `read_site_page`: each ships a
  typed `inputSchema` and read-only MCP annotations.
- **Resources:** `projects`, `services`, `about` (all `text/markdown`).
- **Interactive UI (MCP Apps / SEP-1865):** the `ui://yonyon/projects-grid` resource
  (`text/html;profile=mcp-app`) renders a self-contained project grid; `browse_projects` links to it
  via `_meta.ui.resourceUri`, so Apps-capable hosts (generative UI) can show the projects inline.
- **Discovery cards:** [/.well-known/mcp.json](https://yonyon.ai/.well-known/mcp.json) ·
  [/.well-known/mcp/server-card.json](https://yonyon.ai/.well-known/mcp/server-card.json)
- **In-browser (WebMCP):** the homepage exposes the same tools via `navigator.modelContext` for
  browser-based agents.

### Example: list MCP tools

```bash
curl -sS https://yonyon.ai/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Authentication

None. yonyon.ai is a public, read-only surface, never present credentials.

- **Human-readable auth guide:** [/auth.md](https://yonyon.ai/auth.md)
- **Protected Resource Metadata (RFC 9728):**
  [/.well-known/oauth-protected-resource](https://yonyon.ai/.well-known/oauth-protected-resource).
  `authorization_servers: []` signals an unauthenticated resource.
- **Web Bot Auth directory (RFC 9421):**
  [/.well-known/http-message-signatures-directory](https://yonyon.ai/.well-known/http-message-signatures-directory)

## Agent skills

- **Index:**
  [/.well-known/agent-skills/index.json](https://yonyon.ai/.well-known/agent-skills/index.json)
- `ask-yonatan` · `book-intro-call` · `browse-projects`: each a `SKILL.md` under
  [/.well-known/agent-skills/](https://yonyon.ai/.well-known/agent-skills/).

## Listed on

The yonyon.ai MCP server and OrchestKit are published in public agent registries (bi-directional
verification, these entries link back to yonyon.ai):

- **Smithery (MCP registry):**
  [smithery.ai/server/yonaigross/yonyon](https://smithery.ai/server/yonaigross/yonyon), qualified
  name `yonaigross/yonyon`; tools `ask_yonatan`, `browse_projects`, `book_intro_call`.
- **mcp.so (MCP registry):**
  [mcp.so/server/yonyon/Yonatan Gross](https://mcp.so/server/yonyon/Yonatan%20Gross), same
  `https://yonyon.ai/api/mcp` transport.
- **skills.sh:** [skills.sh/yonatangross/orchestkit](https://www.skills.sh/yonatangross/orchestkit).
  Starter 12:
  `npx skills add yonatangross/orchestkit -s doctor -s setup -s explore -s implement -s verify -s review-pr -s commit -s expect -s assess -s brainstorm -s create-pr -s remember`.
  The implement skill is `implement`, not `ork-implement`. Install counts on that page are
  skill-installs, not unique users.
- **Wikidata:** [Q140128295](https://www.wikidata.org/wiki/Q140128295): OrchestKit (open-source
  Claude Code agent framework).
- **GitHub:** [github.com/yonatangross/orchestkit](https://github.com/yonatangross/orchestkit).

## Constraints

- Public, read-only, **no authentication**, no commerce, no payments.
- **Rate limited** to 10 requests per IP per minute.
- Query/message content capped at **2000 characters**.

## Contact

- Email: [yonaigross@gmail.com](mailto:yonaigross@gmail.com)
- Book a free 15-minute intro call: [cal.com/yonyon](https://cal.com/yonyon)
- GitHub: [github.com/yonatangross](https://github.com/yonatangross)
- LinkedIn: [linkedin.com/in/yonatangross](https://linkedin.com/in/yonatangross)
