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:
{ "mcpServers": { "julianleiss-portfolio": { "url": "https://julianleiss.com/mcp" }, "julianleiss-docs": { "url": "https://julianleiss.com/mcp/docs" } } }
Conventions
- Send
Accept: application/json, text/event-streamto 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.