Connect Masnavi and your agent gets 13 tools, among them explain, find_sections, get_ghazal. It answers at https://masnavi.ai/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.
Rumi's complete Masnavi (25,635 beyts) — search, quote, verify and explain. Free, no auth.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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, langu Inputs: citation |
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 Inputs: query, daftar, limit |
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) = «مرده بدم زنده شدم…». Inputs: number, citation |
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 c Inputs: start, end, start_global, end_global |
get_section | Retrieve a full section (story / بخش) with all its beyts. Inputs: section_id, slug |
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. Inputs: citation, daftar, beyt_in_daftar, beyt_global, before, after |
random_beyt | Return a randomly-selected beyt, optionally restricted to a daftar. Inputs: daftar |
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. Inputs: query, daftar, limit, offset |
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 Pe Inputs: query, limit, offset |
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-ghaz Inputs: query, limit |
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 fro Inputs: query, daftar, limit |
table_of_contents | Browse the Masnavi's section list. Returns titled sections per daftar with beyt counts and ranges. Inputs: daftar |
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. Inputs: text, fuzzy_threshold |
Every block below points at https://masnavi.ai/mcp. Pick your client and copy.
claude mcp add --transport http masnavi https://masnavi.ai/mcp
{
"mcpServers": {
"masnavi": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://masnavi.ai/mcp"]
}
}
}{
"mcpServers": {
"masnavi": {
"url": "https://masnavi.ai/mcp"
}
}
}{
"servers": {
"masnavi": {
"type": "http",
"url": "https://masnavi.ai/mcp"
}
}
}{
"context_servers": {
"masnavi": {
"url": "https://masnavi.ai/mcp"
}
}
}{
"mcpServers": {
"masnavi": {
"serverUrl": "https://masnavi.ai/mcp"
}
}
}{
"mcpServers": {
"masnavi": {
"url": "https://masnavi.ai/mcp"
}
}
}name: Masnavi
version: 0.0.1
schema: v1
mcpServers:
- name: Masnavi
type: streamable-http
url: https://masnavi.ai/mcp{
"mcpServers": {
"masnavi": {
"httpUrl": "https://masnavi.ai/mcp"
}
}
}{
"mcpServers": {
"masnavi": {
"type": "http",
"url": "https://masnavi.ai/mcp"
}
}
}{
"mcpServers": {
"masnavi": {
"url": "https://masnavi.ai/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmasnavi.ai%2Fmcp&type=streamable_http&id=masnavi&name=Masnavi
It answered our last check on 17 October 2026 in 175 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by masnavi.ai and served from masnavi.ai, the vendor's own domain: https://masnavi.ai/mcp.
13, as returned by the server's own tools/list on 8 September 2026: explain, find_sections, get_ghazal, get_range, get_section, lookup, random_beyt, search, and 5 more.
It answered our last check on 17 October 2026 in 175 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://masnavi.ai/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: ai.masnavi. Endpoint host: masnavi.ai. ARD identifier: urn:air:ai.masnavi:mcp:masnavi.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.