India API
by dharunashokkumar · remote · no sign-in to list tools · v1.1.22 · published by GitHub user dharunashokkumar
Free Indian data and AI: pincode, IFSC, GSTIN, holidays, GST invoice, OCR, translation. No key.
80 tools: 2 can delete or cancel things, 4 do something that can't be undone, 37 change things and 37 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone4Claude Code: ask: see these tools
- Changes things37Claude Code: ask: see these tools
- Only reads37Claude Code: allow: see these tools
19 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http india-api https://api.dharun.dev/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnlookup_rto
The server marks "lookup_rto" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_rto" says "lookup": a word for reading.
- Warnlookup_airport
The server marks "lookup_airport" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_airport" says "lookup": a word for reading.
The server marks "make_upi_payment_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "make_upi_payment_link" says "link": a word for a change.
The server marks "make_fake_indian_data" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
- Warnlookup_hsn_code
The server marks "lookup_hsn_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_hsn_code" says "lookup": a word for reading.
- Warntranslate_text
The server marks "translate_text" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Show 13 more findingsShow fewer
- Warnmake_code_image
The server marks "make_code_image" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "convert_tamil_legacy_text" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_tamil_legacy_text" says "convert": a word for a change.
- Warnconvert_image
The server marks "convert_image" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_image" says "convert": a word for a change.
The server marks "remove_image_background" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_image_background" says "remove": a word for removing or ending something.
The server marks "remove_image_background" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_image_background" says "remove": a word for removing or ending something.
- Warnselect_pdf_pages
The server marks "select_pdf_pages" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "select_pdf_pages" says "select": a word for a change.
- Warnmerge_pdfs
The server marks "merge_pdfs" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "merge_pdfs" says "merge": a word for a change that another call does not undo.
The server marks "remove_audio_noise" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_audio_noise" says "remove": a word for removing or ending something.
The server marks "remove_audio_noise" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_audio_noise" says "remove": a word for removing or ending something.
The server marks "get_mutual_fund_nav" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_mutual_fund_nav" says "get": a word for reading.
- Warntest_regex
The server marks "test_regex" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.
The server marks "lookup_railway_station" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_railway_station" says "lookup": a word for reading.
The server marks "transliterate_indian_text" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
80 tools
Deletes or cancels 2Claude Code: deny
remove_audio_noiseLower background noise (fans, traffic, hum) in a recording with DeepFilterNet; returns MP3.2 findings
Why it is in this group
- The name "remove_audio_noise" says "remove": a word for removing or ending something.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "remove_audio_noise" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_audio_noise" says "remove": a word for removing or ending something.
- Warn
The server marks "remove_audio_noise" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_audio_noise" says "remove": a word for removing or ending something.
Description, as the server wrote it Lower background noise (fans, traffic, hum) in a recording with DeepFilterNet; returns MP3. The first five minutes are cleaned.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Remove audio noise
remove_image_backgroundCut the subject out of a picture (a product, a person, an animal) and return it as a PNG with a transparent background, with the IS-Net model.2 findings
Why it is in this group
- The name "remove_image_background" says "remove": a word for removing or ending something.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "remove_image_background" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_image_background" says "remove": a word for removing or ending something.
- Warn
The server marks "remove_image_background" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "remove_image_background" says "remove": a word for removing or ending something.
Description, as the server wrote it Cut the subject out of a picture (a product, a person, an animal) and return it as a PNG with a transparent background, with the IS-Net model.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Remove image background
Can't be undone 4Claude Code: ask
convert_tamil_legacy_textConvert Tamil text in an old 8-bit encoding (TSCII), which shows as accented Latin letters such as ¾Á¢ú without its font, to Unicode Tamil, or Unicode back to it.1 finding
Why it is in this group
- The name "convert_tamil_legacy_text" says "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "convert_tamil_legacy_text" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_tamil_legacy_text" says "convert": a word for a change.
Description, as the server wrote it Convert Tamil text in an old 8-bit encoding (TSCII), which shows as accented Latin letters such as ¾Á¢ú without its font, to Unicode Tamil, or Unicode back to it.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Convert tamil legacy text
merge_pdfsJoin PDFs into one, in the order given.1 finding
Why it is in this group
- The name "merge_pdfs" says "merge": a word for a change that another call does not undo.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "merge_pdfs" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "merge_pdfs" says "merge": a word for a change that another call does not undo.
Description, as the server wrote it Join PDFs into one, in the order given.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Merge pdfs
translate_textTranslate text between English and 22 Indian languages (Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Marathi, Gujarati, Punjabi, Odia, Assamese, Urdu and more) with AI4Bharat…1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "translate_text" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Translate text between English and 22 Indian languages (Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Marathi, Gujarati, Punjabi, Odia, Assamese, Urdu and more) with AI4Bharat's IndicTrans2. Between two Indian languages it goes through English. Up to 2,000 characters.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Translate text
transliterate_indian_textRewrite text from one Indian script in another (Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, Malayalam), or in Roman letters (ISO 15919, IAST, plain ASCII…1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "transliterate_indian_text" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Rewrite text from one Indian script in another (Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, Malayalam), or in Roman letters (ISO 15919, IAST, plain ASCII), or from ISO 15919 / IAST into a script. Spelling only, not translation.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Transliterate indian text
Changes things 37Claude Code: ask
check_dnsLook up a domain's DNS records (A, AAAA, MX, TXT, NS, CNAME, CAA, SOA, SRV, or PTR for an IP) at Cloudflare, Google, Quad9 and OpenDNS at once, and say whether they agree.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Look up a domain's DNS records (A, AAAA, MX, TXT, NS, CNAME, CAA, SOA, SRV, or PTR for an IP) at Cloudflare, Google, Quad9 and OpenDNS at once, and say whether they agree.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Check dns
check_email_addressCheck an email address without contacting its mail server: valid form, disposable (throwaway) domain, free provider, role account, and whether the domain has mail servers.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check an email address without contacting its mail server: valid form, disposable (throwaway) domain, free provider, role account, and whether the domain has mail servers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Check email address
check_indian_phone_numberCheck an Indian phone number's form and type (mobile, toll-free, fixed line), format it, and name the operator and telecom circle its series was originally given to.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check an Indian phone number's form and type (mobile, toll-free, fixed line), format it, and name the operator and telecom circle its series was originally given to.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Check indian phone number
check_ipv6Check whether a domain is ready for IPv6, from DNS: IPv6 (AAAA) addresses for the site and www, for each nameserver and each mail server, with a plain list of what is missing.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check whether a domain is ready for IPv6, from DNS: IPv6 (AAAA) addresses for the site and www, for each nameserver and each mail server, with a plain list of what is missing. No connection is made over IPv6.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Check ipv6
check_tlsCheck a website's TLS certificate and setup on port 443, from India: whether the certificate is valid for the name and trusted, days until it expires, the chain as sent, issuer and…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check a website's TLS certificate and setup on port 443, from India: whether the certificate is valid for the name and trusted, days until it expires, the chain as sent, issuer and key, which TLS versions (1.0 to 1.3) are accepted, the cipher and HTTP/2 offered, weak ciphers, and a plain list of problems.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Check tls
check_working_dayCheck whether a date is a working day in India for banks in a state, NSE trading, NSE settlement or central government offices; get the previous and next working days, or the date …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check whether a date is a working day in India for banks in a state, NSE trading, NSE settlement or central government offices; get the previous and next working days, or the date N working days away (T+1 settlement: calendar settlement, add 1).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Check working day
chunk_textSplit a long document (plain text or Markdown) into readable chunks for retrieval (RAG): at headings, paragraphs, sentences and words in that order; Markdown chunks keep their head…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Split a long document (plain text or Markdown) into readable chunks for retrieval (RAG): at headings, paragraphs, sentences and words in that order; Markdown chunks keep their heading path. Each chunk carries its character offsets.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Chunk text
compile_typstCompile a Typst document to PDF (or one page as PNG).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compile a Typst document to PDF (or one page as PNG). Noto fonts for Latin and nine Indian scripts are available; packages and files are not.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Compile typst
compress_pdfMake a PDF smaller by removing duplicate fonts and images and packing its structure.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Make a PDF smaller by removing duplicate fonts and images and packing its structure. Scanned PDFs shrink little.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Compress pdf
convert_imageResize a picture or convert it (JPEG, PNG, WebP, AVIF, GIF, TIFF out; HEIC and AVIF read too).1 finding
Why it is in this group
- The name "convert_image" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "convert_image" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_image" says "convert": a word for a change.
Description, as the server wrote it Resize a picture or convert it (JPEG, PNG, WebP, AVIF, GIF, TIFF out; HEIC and AVIF read too). Turned upright, all metadata such as the GPS position removed.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Convert image
detect_languageDetect the language and script of a text, including Indian languages.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Detect the language and script of a text, including Indian languages.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Detect language
embed_textsTurn texts into 384-number vectors with multilingual-e5-small (Indian languages and English), scaled to length 1 so a dot product is the cosine similarity.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn texts into 384-number vectors with multilingual-e5-small (Indian languages and English), scaled to length 1 so a dot product is the cosine similarity. For storing in a vector database or comparing meaning; use rerank_documents to order a few passages for a question instead.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Embed texts
hash_imagePerceptual fingerprints of a picture (average, difference and DCT hashes) that stay nearly the same after resizing or recompression, for finding duplicates.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Perceptual fingerprints of a picture (average, difference and DCT hashes) that stay nearly the same after resizing or recompression, for finding duplicates.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Hash image
lookup_airportLook up an airport by IATA code (MAA) or ICAO code (VOMM): name, city, state, country, coordinates and whether it has scheduled flights.1 finding
Why it is in this group
- The name "lookup_airport" says "lookup": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lookup_airport" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_airport" says "lookup": a word for reading.
Description, as the server wrote it Look up an airport by IATA code (MAA) or ICAO code (VOMM): name, city, state, country, coordinates and whether it has scheduled flights.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup airport
lookup_hsn_codeLook up an Indian HSN code (goods) or SAC code (services) used in GST invoices: its description, the chapter and heading above it, and the codes below it.1 finding
Why it is in this group
- The name "lookup_hsn_code" says "lookup": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lookup_hsn_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_hsn_code" says "lookup": a word for reading.
Description, as the server wrote it Look up an Indian HSN code (goods) or SAC code (services) used in GST invoices: its description, the chapter and heading above it, and the codes below it. No GST rates.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup hsn code
lookup_railway_stationLook up an Indian Railways station by its code (MAS, NDLS): name, state, railway zone and elevation.1 finding
Why it is in this group
- The name "lookup_railway_station" says "lookup": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lookup_railway_station" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_railway_station" says "lookup": a word for reading.
Description, as the server wrote it Look up an Indian Railways station by its code (MAS, NDLS): name, state, railway zone and elevation.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup railway station
lookup_rtoFind which Regional Transport Office an Indian vehicle registration belongs to.1 finding
Why it is in this group
- The name "lookup_rto" says "lookup": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lookup_rto" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "lookup_rto" says "lookup": a word for reading.
Description, as the server wrote it Find which Regional Transport Office an Indian vehicle registration belongs to. Accepts a code (TN-28) or a full number plate (TN28AB1234).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup rto
make_barcodeMake a barcode image (PNG): Code 128, Code 39, Code 93, EAN-13, EAN-8, ITF, Codabar, Data Matrix, PDF417 or Aztec.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Make a barcode image (PNG): Code 128, Code 39, Code 93, EAN-13, EAN-8, ITF, Codabar, Data Matrix, PDF417 or Aztec.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Make barcode
make_code_imageDraw a code snippet as a PNG picture of an editor window with syntax colouring, for slides, posts and READMEs.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "make_code_image" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Draw a code snippet as a PNG picture of an editor window with syntax colouring, for slides, posts and READMEs. Up to 150 lines of 140 characters.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Make code image
make_fake_indian_dataGenerate made-up Indian test data for building apps: people (name, gender, birth date, email, phone, PAN, address) or companies (name, PAN, GSTIN with a valid check character, addr…1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "make_fake_indian_data" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate made-up Indian test data for building apps: people (name, gender, birth date, email, phone, PAN, address) or companies (name, PAN, GSTIN with a valid check character, address) or addresses, at real pincodes. Never real people.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Make fake indian data
make_gst_invoiceMake an Indian GST tax invoice as a PDF from seller, buyer and items.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Make an Indian GST tax invoice as a PDF from seller, buyer and items. Works out each line's taxable value, CGST and SGST (or UTGST) within a state or IGST across states, the HSN-wise summary, rounding and the amount in words. format=json returns the worked-out amounts only.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Make gst invoice
make_qr_codeMake a QR code image (PNG) for any text or link.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Make a QR code image (PNG) for any text or link.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Make qr code
make_upi_payment_linkBuild a UPI payment link (upi://pay) for an Indian UPI ID, with optional payee name, amount and note, plus the URL of a QR code image for it.1 finding
Why it is in this group
- The name "make_upi_payment_link" says "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "make_upi_payment_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "make_upi_payment_link" says "link": a word for a change.
Description, as the server wrote it Build a UPI payment link (upi://pay) for an Indian UPI ID, with optional payee name, amount and note, plus the URL of a QR code image for it. Generate only; nothing is checked with a bank.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Make upi payment link
moderate_textScore a comment or message for abuse with three classifiers: general multilingual, Hinglish (Hindi in Roman letters, by kind: profanity, harassment, hate speech, caste, communal, r…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Score a comment or message for abuse with three classifiers: general multilingual, Hinglish (Hindi in Roman letters, by kind: profanity, harassment, hate speech, caste, communal, regional, misogyny) and Tanglish (Tamil in Roman letters). Scores 0 to 1; a model's guess, not a decision.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Moderate text
number_to_wordsSpell a number or rupee amount in words using the Indian system (lakh, crore), in English, Hindi or Tamil.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Spell a number or rupee amount in words using the Indian system (lakh, crore), in English, Hindi or Tamil.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Number to words
redact_indian_identifiersMask Aadhaar, PAN, GSTIN, card, phone, email, UPI ID, vehicle, voter ID, passport and IP numbers in a text, checking check digits where they exist.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Mask Aadhaar, PAN, GSTIN, card, phone, email, UPI ID, vehicle, voter ID, passport and IP numbers in a text, checking check digits where they exist.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Redact indian identifiers
render_pdf_pageDraw one page of a PDF as a picture, for a preview.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Draw one page of a PDF as a picture, for a preview.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Render pdf page
rerank_documentsOrder documents by how well each answers a query, with the multilingual bge-reranker-v2-m3 cross-encoder (Indian languages and English).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Order documents by how well each answers a query, with the multilingual bge-reranker-v2-m3 cross-encoder (Indian languages and English). Returns scores from 0 to 1, best first.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Rerank documents
rotate_pdf_pagesTurn the pages of a PDF clockwise by a multiple of 90 degrees.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn the pages of a PDF clockwise by a multiple of 90 degrees.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Rotate pdf pages
select_pdf_pagesMake a new PDF from some pages of one, in the order named: to pick, reorder or split pages.1 finding
Why it is in this group
- The name "select_pdf_pages" says "select": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "select_pdf_pages" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "select_pdf_pages" says "select": a word for a change.
Description, as the server wrote it Make a new PDF from some pages of one, in the order named: to pick, reorder or split pages.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Select pdf pages
test_regexRun a regular expression (JavaScript or RE2/Go syntax) against a text: every match with its groups and character offsets, an optional replacement, and a token by token explanation …1 finding
Why it is in this group
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "test_regex" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.
Description, as the server wrote it Run a regular expression (JavaScript or RE2/Go syntax) against a text: every match with its groups and character offsets, an optional replacement, and a token by token explanation of the pattern.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Test regex
text_to_speechSpeak text aloud in Hindi, Telugu, Malayalam or English with Piper voices; returns MP3 audio.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Speak text aloud in Hindi, Telugu, Malayalam or English with Piper voices; returns MP3 audio. Write the text in its own script. Some Hindi voices are for non-commercial use only.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Text to speech
traceroute_from_indiaTrace the network path from a server in India to a host, MTR style: every hop with its address, name, network (AS) and country, packet loss and round-trip times.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Trace the network path from a server in India to a host, MTR style: every hop with its address, name, network (AS) and country, packet loss and round-trip times. Shows how Indian networks reach a site.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Traceroute from india
transcribe_audioSpeech to text with Whisper: the text of a recording (MP3, WAV, Ogg, M4A, WebM or video), with timed segments; about a hundred languages, Indian ones included.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Speech to text with Whisper: the text of a recording (MP3, WAV, Ogg, M4A, WebM or video), with timed segments; about a hundred languages, Indian ones included. task=translate writes it in English. The first five minutes are heard.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Transcribe audio
transliterate_roman_typingTurn Indian-language words typed in Roman letters (vanakkam, namaste, kaise ho) into their own script, as phone keyboards do, with several guesses per word.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn Indian-language words typed in Roman letters (vanakkam, namaste, kaise ho) into their own script, as phone keyboards do, with several guesses per word. Uses AI4Bharat's IndicXlit. Up to 60 words.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Transliterate roman typing
where_is_satelliteWhere a tracked satellite such as the ISS is right now: the point on Earth below it, its altitude and speed, and whether it is in sunlight.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Where a tracked satellite such as the ISS is right now: the point on Earth below it, its altitude and speed, and whether it is in sunlight.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Where is satellite
Only reads 37Claude Code: allow
compare_imagesCompare two pictures by how they look: the bits by which their perceptual hashes differ, a score from 0 to 1, and whether they look like the same picture.No findings
Why it is in this group
- The name "compare_images" says "compare": a word for reading.
Description, as the server wrote it Compare two pictures by how they look: the bits by which their perceptual hashes differ, a score from 0 to 1, and whether they look like the same picture.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Compare images
count_tokensCount the tokens a text uses for an OpenAI model or encoding (o200k_base for GPT-4o and later, cl100k_base for GPT-4).No findings
Why it is in this group
- The name "count_tokens" says "count": a word for reading.
Description, as the server wrote it Count the tokens a text uses for an OpenAI model or encoding (o200k_base for GPT-4o and later, cl100k_base for GPT-4).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Count tokens
count_working_daysCount Indian working days between two dates (both included) for a calendar, and list each day off with its reason.No findings
Why it is in this group
- The name "count_working_days" says "count": a word for reading.
Description, as the server wrote it Count Indian working days between two dates (both included) for a calendar, and list each day off with its reason.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Count working days
domain_iconGet the icon of any website as a square PNG, from its favicon, Apple touch icon or web app manifest, redrawn at the size asked.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get the icon of any website as a square PNG, from its favicon, Apple touch icon or web app manifest, redrawn at the size asked. A site without a usable icon gets an initials tile.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Domain icon
find_constituencyFind the assembly (MLA) and parliamentary (MP, Lok Sabha) constituency of a place in India, by pincode or by latitude and longitude.No findings
Why it is in this group
- The name "find_constituency" says "find": a word for reading.
Description, as the server wrote it Find the assembly (MLA) and parliamentary (MP, Lok Sabha) constituency of a place in India, by pincode or by latitude and longitude.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Find constituency
find_post_offices_nearFind Indian post offices and their pincodes near a latitude and longitude, nearest first.No findings
Why it is in this group
- The name "find_post_offices_near" says "find": a word for reading.
Description, as the server wrote it Find Indian post offices and their pincodes near a latitude and longitude, nearest first.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Find post offices near
find_satellitesList or search the tracked space stations and amateur radio satellites, with catalogue numbers, orbital periods and inclinations.No findings
Why it is in this group
- The name "find_satellites" says "find": a word for reading.
Description, as the server wrote it List or search the tracked space stations and amateur radio satellites, with catalogue numbers, orbital periods and inclinations.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Find satellites
get_company_logoGet the logo URLs (SVG and PNG) and details of a company listed on India's NSE or BSE.No findings
Why it is in this group
- The name "get_company_logo" says "get": a word for reading.
Description, as the server wrote it Get the logo URLs (SVG and PNG) and details of a company listed on India's NSE or BSE. Accepts a ticker (TCS), exchange-qualified ticker (NSE:TCS), Yahoo symbol (TCS.NS), ISIN or the old ticker of a renamed company. listed is false for a delisted company.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get company logo
get_hf_propagationCurrent space weather from NOAA (solar flux, sunspot number, K and A indices, X-ray class, NOAA R/S/G scales) and a rule of thumb good/fair/poor rating of HF amateur radio bands by…No findings
Why it is in this group
- The name "get_hf_propagation" says "get": a word for reading.
Description, as the server wrote it Current space weather from NOAA (solar flux, sunspot number, K and A indices, X-ray class, NOAA R/S/G scales) and a rule of thumb good/fair/poor rating of HF amateur radio bands by day and night.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get hf propagation
get_image_infoFormat, size, colour space, orientation and camera of a picture, and whether it carries EXIF data or a GPS position.No findings
Why it is in this group
- The name "get_image_info" says "get": a word for reading.
Description, as the server wrote it Format, size, colour space, orientation and camera of a picture, and whether it carries EXIF data or a GPS position.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get image info
get_indian_statesList India's 28 states and 8 union territories, or get one, with its two-letter code, GST state code and vehicle registration prefixes.No findings
Why it is in this group
- The name "get_indian_states" says "get": a word for reading.
Description, as the server wrote it List India's 28 states and 8 union territories, or get one, with its two-letter code, GST state code and vehicle registration prefixes.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get indian states
get_panchangHindu almanac (panchang) for a date and place: tithi, nakshatra, yoga, karana with their end times, sunrise, sunset, moonrise, moonset, Rahu kalam, Yamagandam, Gulika kalam, Abhiji…No findings
Why it is in this group
- The name "get_panchang" says "get": a word for reading.
Description, as the server wrote it Hindu almanac (panchang) for a date and place: tithi, nakshatra, yoga, karana with their end times, sunrise, sunset, moonrise, moonset, Rahu kalam, Yamagandam, Gulika kalam, Abhijit muhurta, Tamil month and day, lunar month, Shaka and Vikram years.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get panchang
get_pdf_infoPage count, PDF version, title, author, dates and page sizes of a PDF, and whether it has forms, signatures or attachments.No findings
Why it is in this group
- The name "get_pdf_info" says "get": a word for reading.
Description, as the server wrote it Page count, PDF version, title, author, dates and page sizes of a PDF, and whether it has forms, signatures or attachments.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get pdf info
get_satellite_passesWhen the ISS, the Chinese space station or an amateur radio satellite passes over a place in the next days: rise, highest point and set times with compass directions and elevations…No findings
Why it is in this group
- The name "get_satellite_passes" says "get": a word for reading.
Description, as the server wrote it When the ISS, the Chinese space station or an amateur radio satellite passes over a place in the next days: rise, highest point and set times with compass directions and elevations, and when the pass can be seen with the eye.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get satellite passes
get_sun_and_moonSunrise, sunset, solar noon, day length, civil, nautical and astronomical twilight, moonrise, moonset, moon phase, illumination, age and the next new, first quarter, full and last …No findings
Why it is in this group
- The name "get_sun_and_moon" says "get": a word for reading.
Description, as the server wrote it Sunrise, sunset, solar noon, day length, civil, nautical and astronomical twilight, moonrise, moonset, moon phase, illumination, age and the next new, first quarter, full and last quarter moons, for a date at an Indian pincode or any latitude and longitude.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get sun and moon
get_thirukkuralGet a Thirukkural couplet by number (1-1330) in Tamil, with transliteration, English translations by G.U.No findings
Why it is in this group
- The name "get_thirukkural" says "get": a word for reading.
Description, as the server wrote it Get a Thirukkural couplet by number (1-1330) in Tamil, with transliteration, English translations by G.U. Pope and by Drew and Lazarus, and its chapter.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get thirukkural
indian_market_statusIs the Indian stock market (NSE equities) open now or at a given moment: session, reason if closed, and when it next opens.No findings
Why it is in this group
- The name "indian_market_status" says "status": a word for reading.
Description, as the server wrote it Is the Indian stock market (NSE equities) open now or at a given moment: session, reason if closed, and when it next opens.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Indian market status
list_holidaysList Indian holidays for a year: bank holidays, central government holidays, and stock market trading and clearing holidays.No findings
Why it is in this group
- The name "list_holidays" says "list": a word for reading.
Description, as the server wrote it List Indian holidays for a year: bank holidays, central government holidays, and stock market trading and clearing holidays. Filter by type, state or month.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: List holidays
lookup_ifscLook up an Indian bank branch by its IFSC: bank, branch, address, MICR and supported payment systems.No findings
Why it is in this group
- The name "lookup_ifsc" says "lookup": a word for reading.
Description, as the server wrote it Look up an Indian bank branch by its IFSC: bank, branch, address, MICR and supported payment systems.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup ifsc
lookup_ip_addressFind the country, region (Indian state), city and network operator of a public IPv4 or IPv6 address.No findings
Why it is in this group
- The name "lookup_ip_address" says "lookup": a word for reading.
Description, as the server wrote it Find the country, region (Indian state), city and network operator of a public IPv4 or IPv6 address.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup ip address
lookup_pincodeLook up an Indian pincode: its district, state and every post office that uses it.No findings
Why it is in this group
- The name "lookup_pincode" says "lookup": a word for reading.
Description, as the server wrote it Look up an Indian pincode: its district, state and every post office that uses it.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Lookup pincode
make_social_preview_imageMake a 1200 by 630 link preview (Open Graph) image as PNG from a title, with an optional subtitle, site name and tag.No findings
Why it is in this group
- The name "make_social_preview_image" says "preview": a word for reading.
Description, as the server wrote it Make a 1200 by 630 link preview (Open Graph) image as PNG from a title, with an optional subtitle, site name and tag. Latin and nine Indian scripts are set correctly. The same arguments always give the same picture.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Make social preview image
probe_url_from_indiaFetch a URL from a server in India and time it: DNS, connect, TLS, time to first byte and download, the HTTP status and version, every redirect, the response headers (cookie values…No findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
Description, as the server wrote it Fetch a URL from a server in India and time it: DNS, connect, TLS, time to first byte and download, the HTTP status and version, every redirect, the response headers (cookie values hidden), the body's size and hash (never the body), and which CDN and edge city answered. Shows how fast a site is for visitors in India.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Probe url from india
read_barcodesFind and read every QR code and barcode (Data Matrix, Aztec, EAN, UPC, Code 128, Code 39, ITF, Codabar) in a picture.No findings
Why it is in this group
- The name "read_barcodes" says "read": a word for reading.
Description, as the server wrote it Find and read every QR code and barcode (Data Matrix, Aztec, EAN, UPC, Code 128, Code 39, ITF, Codabar) in a picture.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Read barcodes
read_pdf_textRead the text of a PDF, page by page.No findings
Why it is in this group
- The name "read_pdf_text" says "read": a word for reading.
Description, as the server wrote it Read the text of a PDF, page by page. needs_ocr is true when the pages are scanned pictures; send those to read_text_in_image.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Read pdf text
read_text_in_imageOCR: read the text in a photo, scan or scanned PDF, in English and Indian languages (Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Gujarati, Punjabi, Odia, Marathi).No findings
Why it is in this group
- The name "read_text_in_image" says "read": a word for reading.
Description, as the server wrote it OCR: read the text in a photo, scan or scanned PDF, in English and Indian languages (Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Gujarati, Punjabi, Odia, Marathi).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Read text in image
search_airportsSearch airports by name or city, worldwide (those with IATA codes) and every Indian airfield and heliport.No findings
Why it is in this group
- The name "search_airports" says "search": a word for reading.
Description, as the server wrote it Search airports by name or city, worldwide (those with IATA codes) and every Indian airfield and heliport. Filter by country (ISO code) or Indian state.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search airports
search_bank_branchesFind branches of one Indian bank by state, city or text in the branch name or address.No findings
Why it is in this group
- The name "search_bank_branches" says "search": a word for reading.
Description, as the server wrote it Find branches of one Indian bank by state, city or text in the branch name or address. Needs the four-letter bank code; use search_banks to find it.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search bank branches
search_banksFind Indian banks and their four-letter codes by name.No findings
Why it is in this group
- The name "search_banks" says "search": a word for reading.
Description, as the server wrote it Find Indian banks and their four-letter codes by name.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search banks
search_companiesSearch Indian listed companies by ticker, earlier ticker, name, sector, industry, ISIN or index name (for example 'Nifty 50').No findings
Why it is in this group
- The name "search_companies" says "search": a word for reading.
Description, as the server wrote it Search Indian listed companies by ticker, earlier ticker, name, sector, industry, ISIN or index name (for example 'Nifty 50'). Returns details with logo URLs. Only companies listed today.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search companies
search_hsn_codesFind Indian HSN (goods) or SAC (services) codes by words of their description, such as 'green tea' or 'construction'.No findings
Why it is in this group
- The name "search_hsn_codes" says "search": a word for reading.
Description, as the server wrote it Find Indian HSN (goods) or SAC (services) codes by words of their description, such as 'green tea' or 'construction'.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search hsn codes
search_mutual_fundsSearch Indian mutual fund schemes by name words, fund house or category, filtered by direct/regular plan and growth/IDCW option, with their latest NAVs.No findings
Why it is in this group
- The name "search_mutual_funds" says "search": a word for reading.
Description, as the server wrote it Search Indian mutual fund schemes by name words, fund house or category, filtered by direct/regular plan and growth/IDCW option, with their latest NAVs.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search mutual funds
search_post_officesFind Indian post offices and their pincodes by the start of the office name, optionally within a state or district.No findings
Why it is in this group
- The name "search_post_offices" says "search": a word for reading.
Description, as the server wrote it Find Indian post offices and their pincodes by the start of the office name, optionally within a state or district.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search post offices
search_railway_stationsFind Indian railway stations and their codes by name, state or railway zone.No findings
Why it is in this group
- The name "search_railway_stations" says "search": a word for reading.
Description, as the server wrote it Find Indian railway stations and their codes by name, state or railway zone.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search railway stations
search_thirukkuralSearch the Thirukkural in Tamil or English, or list a chapter (1-133) or a paal (1 virtue, 2 wealth, 3 love).No findings
Why it is in this group
- The name "search_thirukkural" says "search": a word for reading.
Description, as the server wrote it Search the Thirukkural in Tamil or English, or list a chapter (1-133) or a paal (1 virtue, 2 wealth, 3 love).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search thirukkural
validate_identifierCheck the format of an Indian GSTIN, PAN or IFSC.No findings
Why it is in this group
- The name "validate_identifier" says "validate": a word for reading.
Description, as the server wrote it Check the format of an Indian GSTIN, PAN or IFSC. Format only: it does not confirm the identifier was issued.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Validate identifier
whois_lookupWho registered a domain, IP network or AS number, through RDAP (the registries' replacement for whois): for a domain the registrar, registration and expiry dates, status, nameserve…No findings
Why it is in this group
- The name "whois_lookup" says "lookup": a word for reading.
Description, as the server wrote it Who registered a domain, IP network or AS number, through RDAP (the registries' replacement for whois): for a domain the registrar, registration and expiry dates, status, nameservers and DNSSEC; for an IP address or AS number the network, its holding organisation, country and abuse contact. Works for .in and .co.in. Personal contacts are never returned.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Whois lookup
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.22. Values in angle brackets are yours to fill in.
claude mcp add --transport http india-api https://api.dharun.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__india-api__get_company_logo",
"mcp__india-api__search_companies",
"mcp__india-api__lookup_pincode",
"mcp__india-api__search_post_offices",
"mcp__india-api__lookup_ifsc",
"mcp__india-api__search_bank_branches",
"mcp__india-api__search_banks",
"mcp__india-api__list_holidays",
"mcp__india-api__validate_identifier",
"mcp__india-api__search_airports",
"mcp__india-api__find_constituency",
"mcp__india-api__search_hsn_codes",
"mcp__india-api__domain_icon",
"mcp__india-api__lookup_ip_address",
"mcp__india-api__read_text_in_image",
"mcp__india-api__read_barcodes",
"mcp__india-api__make_social_preview_image",
"mcp__india-api__get_indian_states",
"mcp__india-api__get_image_info",
"mcp__india-api__compare_images",
"mcp__india-api__read_pdf_text",
"mcp__india-api__get_pdf_info",
"mcp__india-api__search_mutual_funds",
"mcp__india-api__get_panchang",
"mcp__india-api__probe_url_from_india",
"mcp__india-api__get_hf_propagation",
"mcp__india-api__get_satellite_passes",
"mcp__india-api__find_satellites",
"mcp__india-api__search_railway_stations",
"mcp__india-api__get_sun_and_moon",
"mcp__india-api__count_tokens",
"mcp__india-api__get_thirukkural",
"mcp__india-api__search_thirukkural",
"mcp__india-api__whois_lookup",
"mcp__india-api__count_working_days",
"mcp__india-api__indian_market_status",
"mcp__india-api__find_post_offices_near"
],
"ask": [
"mcp__india-api__lookup_rto",
"mcp__india-api__number_to_words",
"mcp__india-api__lookup_airport",
"mcp__india-api__make_upi_payment_link",
"mcp__india-api__check_dns",
"mcp__india-api__check_email_address",
"mcp__india-api__make_fake_indian_data",
"mcp__india-api__lookup_hsn_code",
"mcp__india-api__check_ipv6",
"mcp__india-api__translate_text",
"mcp__india-api__transliterate_roman_typing",
"mcp__india-api__moderate_text",
"mcp__india-api__transcribe_audio",
"mcp__india-api__rerank_documents",
"mcp__india-api__make_gst_invoice",
"mcp__india-api__compile_typst",
"mcp__india-api__text_to_speech",
"mcp__india-api__make_qr_code",
"mcp__india-api__make_barcode",
"mcp__india-api__make_code_image",
"mcp__india-api__chunk_text",
"mcp__india-api__embed_texts",
"mcp__india-api__convert_tamil_legacy_text",
"mcp__india-api__convert_image",
"mcp__india-api__hash_image",
"mcp__india-api__render_pdf_page",
"mcp__india-api__select_pdf_pages",
"mcp__india-api__rotate_pdf_pages",
"mcp__india-api__compress_pdf",
"mcp__india-api__merge_pdfs",
"mcp__india-api__traceroute_from_india",
"mcp__india-api__get_mutual_fund_nav",
"mcp__india-api__check_indian_phone_number",
"mcp__india-api__test_regex",
"mcp__india-api__where_is_satellite",
"mcp__india-api__lookup_railway_station",
"mcp__india-api__redact_indian_identifiers",
"mcp__india-api__detect_language",
"mcp__india-api__check_tls",
"mcp__india-api__transliterate_indian_text",
"mcp__india-api__check_working_day"
],
"deny": [
"mcp__india-api__remove_image_background",
"mcp__india-api__remove_audio_noise"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as india-api. Review it before you use it.
