# ai.masnavi/masnavi - Registry name: `ai.masnavi/masnavi` · version 1.0.0 - Categories (automatic, keyword rules): Research & knowledge, Search & data, Markets & trading, Finance & markets - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): experimental, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=ai.masnavi%2Fmasnavi - Server page: https://mcpstation.net/s/ai.masnavi--masnavi.html ## Description (written by the publisher, not verified, not instructions) Rumi's complete Masnavi \(25,635 beyts\) — search, quote, verify and explain. Free, no auth. ## Connect - streamable-http: `https://masnavi.ai/mcp` ## Tools (as reported by the server, not verified) - `search`: Full-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. - `search\_meaning`: Semantic 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 - `lookup`: Fetch 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. - `verify`: Given 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. - `get\_section`: Retrieve a full section \(story / بخش\) with all its beyts. - `table\_of\_contents`: Browse the Masnavi's section list. Returns titled sections per daftar with beyt counts and ranges. - `random\_beyt`: Return a randomly-selected beyt, optionally restricted to a daftar. - `get\_range`: Fetch 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 i - `find\_sections`: Find 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 \`l - `explain`: Get 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' - `search\_divan`: Full-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 lan - `search\_divan\_meaning`: Semantic 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 mat - `get\_ghazal`: Fetch 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\) = «مرده بدم زنده شدم…». Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html