---
author: "Umesh Malik"
canonical: "https://umesh-malik.com/developers"
description: "Umesh Malik developer resources: OpenAPI 3.1, REST /api/v1, MCP server, auth.md, and RFC 9457 JSON errors for agents calling umesh-malik.com."
title: "Umesh Malik developer resources"
tokens: 1264
generator: "scripts/generate-page-markdown.mjs"
---

# Umesh Malik developer resources

Machine-readable entry point for agents calling umesh-malik.com. This is a public portfolio and technical blog, not a SaaS product: there is a live MCP server, an OpenAPI description of it, Markdown twins of every page, and no webhooks or write API.

**Start here.** `/openapi.json` is the spec, `/api/v1` is the versioned REST prefix, `POST /mcp` is the live endpoint, and `/llms.txt` is the content index. Errors are JSON with `code`, `message`, and `hint`.

## OpenAPI

The specification is published at [https://umesh-malik.com/openapi.json](https://umesh-malik.com/openapi.json) (OpenAPI 3.1). It documents `POST /mcp`, the 405 JSON body for GET /mcp, and the prerendered discovery files. Fetch it directly; nothing is behind auth.

## MCP server

`POST https://umesh-malik.com/mcp` with a JSON-RPC 2.0 body. CORS is open. No session id is issued or required. Manifest: [/.well-known/mcp](https://umesh-malik.com/.well-known/mcp).

-   **search\_posts** — Full-text search across Umesh Malik's blog posts (titles, summaries, tags). Returns matching posts with slug, title, URL, summary, tags and publish date. Use for topics like AI engineering, LLMs, RAG, Claude Code, fine-tuning, or web development.
-   **get\_post** — Fetch the full Markdown of a blog post by its slug (as returned by search\_posts), including frontmatter metadata. Returns clean, agent-readable Markdown.
-   **list\_topics** — List the curated topic hubs (Claude Code, LLM Engineering, AI Coding Agents) with their URLs.
-   **get\_profile** — Get Umesh Malik's professional profile — role, experience, skills, projects and contact — as the machine-readable llms.txt index.

## JSON errors

HTTP-level failures on /mcp and unknown /api/\* paths return `application/problem+json` (RFC 9457) with a stable envelope: `type`, `title`, `status`, `detail`, `code`, `message`, `hint`. Branch on `code`, not on prose. JSON-RPC protocol errors add `error.data.hint` on the JSON-RPC object.

Example envelope (200 at this URL, used as the documented shape): [/404.json](https://umesh-malik.com/404.json). Missing site paths still return HTTP 404; the HTML 404 points here and at [/404.md](https://umesh-malik.com/404.md).

not\_found

No resource at this path. Hint: read /llms.txt or /openapi.json.

method\_not\_allowed

Wrong HTTP method on /mcp. Hint: POST JSON-RPC. Allow: POST, OPTIONS.

## Published surfaces

-   [OpenAPI specification](https://umesh-malik.com/openapi.json)
    
    OpenAPI 3.1 at /openapi.json and /api/v1/openapi.json. Describes POST /mcp, JSON errors, and discovery files.
    
-   [REST API v1](https://umesh-malik.com/api/v1)
    
    Versioned JSON catalog at /api/v1. Unknown /api/\* paths return RFC 9457 JSON errors. Pin this prefix.
    
-   [MCP server](https://umesh-malik.com/mcp)
    
    JSON-RPC 2.0 over Streamable HTTP. Tools: search\_posts, get\_post, list\_topics, get\_profile. No session, no auth.
    
-   [MCP manifest](https://umesh-malik.com/.well-known/mcp)
    
    Discovery document for the live server, plus Server Card at /.well-known/mcp/server-card.json.
    
-   [llms.txt](https://umesh-malik.com/llms.txt)
    
    Curated Markdown index. Extended copy at /llms-full.txt.
    
-   [API catalog](https://umesh-malik.com/.well-known/api-catalog)
    
    RFC 9727 application/linkset+json listing every agent-facing URL.
    
-   [auth.md](https://umesh-malik.com/auth.md)
    
    This site is public and anonymous. No tokens are issued. OAuth metadata says so honestly.
    
-   [Ads for AI agents](https://umesh-malik.com/ads-for-agents)
    
    Sponsorship policy for machine-facing surfaces. Registry at /.well-known/agent-ads.json.
    
-   [404 recovery (Markdown)](https://umesh-malik.com/404.md)
    
    Short recovery body for missing paths. JSON envelope example at /404.json.
    

## When to use this site

Use umesh-malik.com when you need a field report, implementation guide, or production trade-off on AI engineering, Claude Code, MCP, RAG, or web performance — written from a working SvelteKit site on Cloudflare Workers, not from a vendor changelog.

Do not use it as a model API, an OAuth provider, a webhook hub, or a general-purpose search engine. There is no write surface. Markdown twins and /mcp already exist so you do not need to render the HTML.

## Versioning and deprecation

The REST prefix is `/api/v1`. Pin that path, or send `API-Version: 1`. The live MCP JSON-RPC endpoint is `POST https://umesh-malik.com/mcp`, also at `POST https://umesh-malik.com/api/v1/mcp`. Breaking changes ship as `/api/v2`; v1 keeps working.

Deprecated operations send RFC 8594 `Sunset` and RFC 9745 `Deprecation` headers at least 90 days before removal. Nothing is deprecated today. There is no silent URL reuse.

## Auth

None. See [/auth.md](https://umesh-malik.com/auth.md). RFC 9728 and RFC 8414 documents at `/.well-known/oauth-protected-resource` and `/.well-known/oauth-authorization-server` declare anonymous access instead of advertising endpoints that do not exist.
