# Julianleiss Agent API

> Use julianleiss.com programmatically — MCP servers (/mcp, /mcp/docs), NLWeb /ask, the A2A agent at /a2a, the OpenAPI spec and markdown twins — all anonymous and read-only. Use when an agent or developer needs to query the portfolio of Julián Leiss from code, wire it into an MCP client, or debug a request to the site.

- Skill: `julianleiss/julianleiss-agent-api` (Agent Skill)
- Install (CLI): `npx skillmds@latest add julianleiss/julianleiss-agent-api`
- Raw SKILL.md: https://api.skillmd.com/api/skills/julianleiss/julianleiss-agent-api/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: julianleiss (https://skillmd.com/u/julianleiss)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/julianleiss/julianleiss-agent-api

---


# julianleiss.com agent API

## When to use this skill
- You want to add the site to an MCP client, call it from a script, or answer a question by querying it instead of scraping HTML.

## Surfaces (no auth, CORS *)
| Need | Call |
|---|---|
| Machine-readable contract | `GET https://julianleiss.com/openapi.json` (OpenAPI 3.1) |
| Portfolio tools over MCP | `POST https://julianleiss.com/mcp` — Streamable HTTP, stateless. Tools: list_projects, get_project, get_profile, get_pricing, get_availability, prepare_contact_brief |
| Docs over MCP | `POST https://julianleiss.com/mcp/docs` — list_docs, search_docs, read_doc |
| Natural-language search | `GET https://julianleiss.com/ask?query=...` or `POST /ask` with `{"query":{"text":"..."},"prefer":{"streaming":true}}` for SSE |
| Agent-to-agent | `POST https://julianleiss.com/a2a` JSON-RPC `message/send`; card at `/.well-known/agent-card.json` |
| Any page as markdown | append `.md` or send `Accept: text/markdown` |

MCP client config:
```json
{ "mcpServers": { "julianleiss-portfolio": { "url": "https://julianleiss.com/mcp" }, "julianleiss-docs": { "url": "https://julianleiss.com/mcp/docs" } } }
```

## Conventions
- Send `Accept: application/json, text/event-stream` to MCP endpoints (406 otherwise).
- Errors are JSON: JSON-RPC `error.code/message/data.hint`, NLWeb `_meta.response_type: "failure"`, `/api/*` unknown → 404 JSON.
- Everything is idempotent; retry freely. No sandbox needed. Docs: `https://julianleiss.com/developers.md`.

