Skip to main content

masnavi

ai.masnavi/masnaviVersion 1.0.0

Rumi's complete Masnavi (25,635 beyts) — search, quote, verify and explain. Free, no auth.

Status

Responds147 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:31 UTC
Latency
147 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://masnavi.ai/mcpResponds147 ms
No sign-in

Claude Code

claude mcp add --transport http masnavi https://masnavi.ai/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: masnavi
Remote MCP server URL: https://masnavi.ai/mcp

Cursor

{
  "mcpServers": {
    "masnavi": {
      "url": "https://masnavi.ai/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"masnavi","type":"http","url":"https://masnavi.ai/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

13 tools

Tools of masnavi
Read-only
Idempotent
Open world
explainGet commentary (Persian + English) for a specific beyt of the Masnavi, attributed to a primary source (e.g. Abdolkarim Soroush's lectures). Returns the beyt text along with structured commentary entries. Each entry has source, author, language, body markdown, and confidence ('ai-draft' / 'reviewed' / 'verbatim'). Use this when a user asks 'what does this beyt mean' or 'what does <scholar> say about M1:1'.Not declaredNot declaredNot declaredNot declared
find_sectionsFind sections (stories) by TITLE. Exact words first (phrase, then AND-of-tokens); when NO title contains the words, falls back to MEANING matches in any language (hits carry match='meaning' + a cosine score — verify with get_section before relying on one). Each match includes `first_citation` and `last_citation` — ready-to-use canonical citations (e.g. 'M2:2608'). To read a whole multi-section story, call get_range with the FIRST match's `first_citation` as start and the LAST match's `last_citation` as end. Do NOT construct a citation from `first_beyt_global` — that is a GLOBAL index (1..25635), not a daftar-local beyt number. Example: find_sections('ابلیس معاویه', daftar=2).Not declaredNot declaredNot declaredNot declared
get_ghazalFetch ONE complete ghazal of the Divan-e Shams by its canonical number (1..3230) or citation ('G1393' / 'G1393:2'). Returns every beyt plus prev/next ghazal numbers. Famous example: get_ghazal(1393) = «مرده بدم زنده شدم…».Not declaredNot declaredNot declaredNot declared
get_rangeFetch ALL beyts between two endpoints, inclusive, grouped by section. Use this — NOT many calls to get_section or lookup — when a user asks for a full story, a long passage, or a sequence of beyts spanning multiple sections. Endpoints are canonical citations like 'M2:2608' and 'M2:2775', or global indices via start_global / end_global. Max range: 500 beyts.Not declaredNot declaredNot declaredNot declared
get_sectionRetrieve a full section (story / بخش) with all its beyts.Not declaredNot declaredNot declaredNot declared
lookupFetch a specific beyt by its citation (e.g. 'M3:1278'), by daftar+beyt number, or by global beyt index. Optionally include surrounding beyts for context.Not declaredNot declaredNot declaredNot declared
random_beytReturn a randomly-selected beyt, optionally restricted to a daftar.Not declaredNot declaredNot declaredNot declared
searchFull-text search across the Masnavi. Returns beyts that contain the query terms, ranked by relevance. Useful for finding where a theme, word, or phrase appears.Not declaredNot declaredNot declaredNot declared
search_divanFull-text search across the 34,603 beyts of the ghazals of the Divan-e Shams (Divan-e Kabir) — Rumi's lyric work, distinct from the Masnavi. Returns beyts with divan citations (G{ghazal}:{beyt}, e.g. G1393:1). Use when you know the exact Persian words; use search_divan_meaning for a theme in any language.Not declaredNot declaredNot declaredNot declared
search_divan_meaningSemantic search over the Divan-e Shams ghazals: given a theme, feeling, or idea in ANY language, returns the GHAZALS closest in meaning — each with its best-matching couplet as a preview and a cosine score. Both couplet-level and whole-ghazal vectors are searched, so a ghazal whose overall theme matches is found even when no single couplet does. Fetch a full ghazal with get_ghazal. status='unavailable' means the index is not built — fall back to search_divan.Not declaredNot declaredNot declaredNot declared
search_meaningSemantic search: find the beyts closest in MEANING to the query, in ANY language — English, Persian, Spanish, Turkish, Arabic, … . Use this when you have a theme, feeling, or idea rather than exact Persian words (e.g. 'feeling separated from your origin' → M1:1). Each hit carries a cosine-similarity score. status='unavailable' means the vector index is not built yet — fall back to `search`.Not declaredNot declaredNot declaredNot declared
table_of_contentsBrowse the Masnavi's section list. Returns titled sections per daftar with beyt counts and ranges.Not declaredNot declaredNot declaredNot declared
verifyGiven a candidate quote attributed to Rumi's Masnavi, check whether it actually appears. Returns status='exact' (with citation), 'fuzzy' (with similar candidates), or 'not_found'. USE THIS BEFORE QUOTING RUMI to avoid hallucination.Not declaredNot declaredNot declaredNot declared

Details

Registry status
Active
Published
Jun 12, 2026
Updated
Jun 12, 2026
Categories (suggested)
Search and webSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing