Abil Shrestha API and developer docs
Everything on abilshr.com, Abil Shrestha's site, is available to programs and AI agents through open, read-only interfaces: a JSON API, an MCP server, markdown versions of every page, and standard discovery files. There is no sign-up and no API key.
Quickstart
List the latest posts as JSON:
curl https://www.abilshr.com/api/v1/postsRead any page as markdown, either by asking for it or by adding .md to the URL:
curl -H 'Accept: text/markdown' https://www.abilshr.com/
curl https://www.abilshr.com/writing/droid-maxxing.mdConnect an MCP client to https://www.abilshr.com/mcp (Streamable HTTP, no auth).
REST API
Base URL: https://www.abilshr.com/api/v1. The full description is the OpenAPI 3.1 document at /openapi.json.
GET /api/v1: index of the endpointsGET /api/v1/profile: name, tagline, location and profile linksGET /api/v1/projects: projects with links, descriptions and yearsGET /api/v1/posts: published posts, newest first, paginatedGET /api/v1/posts/{slug}: one post, including its full text as markdownGET /api/v1/health: returns{"status":"ok"}when the API is up
Example response from GET /api/v1/posts?limit=1:
{
"posts": [
{
"slug": "droid-maxxing",
"title": "Droid Maxxing",
"date": "2025-12-01",
"summary": "Make the best use of Droids",
"url": "https://www.abilshr.com/writing/droid-maxxing"
}
],
"next_cursor": "eyJvIjoxfQ"
}Pagination
GET /api/v1/posts takes limit (1 to 50, default 20) and cursor. When there are more results the response includes next_cursor; pass it back as cursor to get the next page. When next_cursor is null you have everything. Cursors are opaque, so don't build them yourself.
Errors
Errors use RFC 9457 problem details with the application/problem+json content type. Every error has a machine-readable code and a hint saying what to do next:
{
"type": "about:blank",
"title": "Not Found",
"status": 404,
"code": "post_not_found",
"detail": "No published post with slug \"nope\".",
"hint": "List valid slugs with GET /api/v1/posts.",
"docs": "https://www.abilshr.com/openapi.json"
}The codes are invalid_parameter (400), post_not_found and endpoint_not_found (404), method_not_allowed (405) and internal_error (500).
Authentication, limits and sandbox
- Authentication: none. Send requests without an
Authorizationheader; see /auth.md. - Rate limits: there are no API keys or per-client quotas. Responses are cached at the edge where possible. Please keep automated traffic reasonable.
- Sandbox: there is no separate sandbox. Every endpoint is read-only, so calling production can't change anything.
Versioning
The version is part of the path. Changes within v1 are additive, such as new fields or new endpoints; a change that would break existing clients would ship under a new version path, with v1 kept running alongside it.
MCP server
https://www.abilshr.com/mcp speaks the Model Context Protocol over Streamable HTTP with no auth. Its tools are read-only:
get_profile: who Abil is, his projects, writing and linkslist_projects: projects with links, descriptions and yearslist_writing: published posts with slugs and summariesread_post: the full text of one post
The first three take an optional format of markdown or json. Example client configuration:
{
"mcpServers": {
"abilshr": { "type": "http", "url": "https://www.abilshr.com/mcp" }
}
}The server card is at /mcp/server-card.
Markdown and llms.txt
- Send
Accept: text/markdownto the home page, writing pages, posts or this page to get markdown, or add.mdto the URL (for example /index.md). - Markdown pages start with frontmatter carrying the title, description, canonical URL and last-updated date.
- /llms.txt is a one-file overview of the site. /writing/llms.txt indexes the posts and /developers/llms.txt indexes this documentation.
In the browser
Pages register WebMCP tools (get_profile, list_writing, read_post and open_page) through document.modelContext, so browser agents can use the site without scraping it.
Discovery files
- /.well-known/api-catalog: API catalog (RFC 9727)
- /.well-known/ai-catalog.json: agentic resource catalog
- /.well-known/agent-skills/index.json: agent skills
- /robots.txt and /sitemap.xml
Updated October 17, 2026