aadhar.sh/terminal

An agent pointed at this site does not browse it. It opens one endpoint, asks what it can do, and calls something. Below is that exchange, run against /mcp when you loaded this page.

1 · what can you do

POST /mcp
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}
25 tools

ask                    Ask aadhar.sh a natural-language question and get NLWeb-shaped results: for each mat
search_site            Search the public pages, writing, garage notes, and utility descriptions on aadhar.s
now_playing            Read the cached current rn playlist and its tracks. A cold cache may refresh from th
photo_query            Query the published photo archive by caption, camera, lens, film simulation, film-re
coffee_availability    Read bookable coffee slots in the host timezone. If the calendar is stale or unavail
change_radar           Read the bounded historical diff of the latest AadharshBot neighborhood observations
lens_inspect           Inspect one public HTTP(S) URL through Lens and return a compact agent-readiness obs
lens_page              Read one public URL and return only what derives from the page's own bytes: anatomy,
lens_compare           Inspect two public HTTP(S) URLs and compare status, content, readiness, spectrum, ag
find_events            Search the Serendipity event pool (community events worth going to, and who's RSVP'd
image_inspect          Inspect an image's dimensions, format, and animation/frame information. Image bytes 
image_transform        Run a bounded web image transform through Cloudflare Images and return the transform
image_compare          Encode one image into up to three bounded format variants and report exact byte size
photo_recipe           Return the exact public Fuji recipe for a named archive photo, archive URL, or exact
representation_capture Capture bounded public HTTP representations under browser, bot, Markdown, or identit
representation_read    Read one normalized HTTP representation snapshot from the vault. Raw response bodies
representation_compare Refetch the same HTTP representation profile, compare it with a stored snapshot, and
finger                 Look up who runs aadhar.sh, as a drivable terminal program. Panes: overview, writing
photos                 Browse the published photo archive as a terminal frame, filterable by caption, film 
radar                  Render signal readings you have already measured (wifi/Bluetooth RSSI) as a terminal
encode                 Read a JPEG or AVIF at a URL and report what its encoder actually did: chroma subsam
agent_ready            Grade how much of an origin a machine can actually use: llms.txt, a markdown twin, a
dict                   Will a browser ever actually use the compression dictionary a URL is serving? Compre
cache                  Does a URL's ETag ever actually 304? A BEHAVIORAL probe rather than a header read: f
lens                   Inspect one public HTTP(S) URL and render the observation as a terminal frame: reada

2 · do one of them

POST /mcp
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "now_playing",
    "arguments": {},
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}
{
  "playlist_id": "0raTdu2MZH4dNvfG5keVAL",
  "playlist_name": "vigenere pagliacci",
  "tracks": [
    {
      "id": "7hQvBq2baeAfvmeP3aegaZ",
      "title": "Alter Ego - 2020 Mix",
      "artists_text": "Tame Impala",
      "spotify_url": "https://open.spotify.com/track/7hQvBq2baeAfvmeP3aegaZ",
      "song_link_url": "https://song.link/s/7hQvBq2baeAfvmeP3aegaZ",
      "duration_ms": 289866,
      "preview_url": "https://p.scdn.co/mp3-preview/9421c41f31e202e0a49e0e46f0e995d8035aa66b",
      "is_explicit": false,
      "image_url": "https://i.scdn.co/image/ab67616d00001e023f4e5c7b47feb062d9206ec4",
      "artists": [
        {
          "id": "5INjqkS1o8h1imAzPqGZBb",
          "name": "Tame Impala",
          "spotify_url": "https://open.spotify.com/artist/5INjqkS1o8h1imAzPqGZBb",
       

3 · the same call, from a shell

curl -s https://aadhar.sh/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"now_playing","arguments":{}}}'

Every tool above also answers a plain GET at its own path — /finger, /dict, /encode — returning text instead of JSON. One implementation, three doors: this page, curl, and any MCP client.