islamqa-org-mcp
islamqa-org-mcp
Дайте Claude, Codex и любому другому MCP-клиенту доступ к ~98 000 фетв с указанием источников.
MCP-сервер для IslamQA.org, который агрегирует ответы 47 независимых дар-уль-ифта из четырёх суннитских мазхабов.
Веб-сайт · Установка · ChatGPT · Инструменты · Как это работает · Этикет
Зачем
Задайте языковой модели вопрос по фикху — и она ответит из размытой массы обучающих данных, без источника, без мазхаба и без возможности проверить ответ. Это неправильная форма для такого рода вопросов.
Этот сервер меняет настройку по умолчанию. Ваш ассистент ищет в настоящем архиве учёных ответов и цитирует один из них с указанием муфтия, мазхаба, учреждения и URL, который вы можете открыть. Когда школы расходятся во мнениях, вы видите, что они расходятся, вместо того чтобы получить одну позицию, поданную как единственное исламское решение.
You: Can I wipe over ordinary cotton socks in wudu?
Claude: [searches IslamQA.org]
The Hanafi position (Askimam.org, Mufti Ebrahim Desai) is that masah
is only valid on socks with the characteristics of leather khuffayn —
thick enough that water does not seep through, able to stand upright
unaided, and durable over three to four miles of walking. Ordinary
cotton socks do not qualify.
https://islamqa.org/hanafi/askimam/127638/...
Bin Bayyah (Maliki) notes the Hanbali school permits wiping over cloth
socks, while the Maliki position restricts it to leather.
https://islamqa.org/maliki/binbayyah/29891/...Related MCP server: NexusNote MCP Server
Установка
Никакого клонирования, никакой ручной настройки. Выбирайте тот раннер, который у вас уже есть.
С помощью uv (рекомендуется — именно он фактически запускает сервер):
uvx --from git+https://github.com/RealYusufIsmail/islamqa-org-mcp islamqa-mcpС помощью npx, если вам удобнее Node:
npx -y islamqa-mcpПакет npm — это тонкая обёртка: он передаёт управление uv, который загружает и запускает Python-сервер в изолированном кэшированном окружении. Вам всё равно понадобится установленный uv; обёртка подскажет, как его установить, если он отсутствует.
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
brew install uv # Homebrew
powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # WindowsClaude Code
claude mcp add islamqa -- uvx --from git+https://github.com/RealYusufIsmail/islamqa-org-mcp islamqa-mcpClaude Desktop
Добавьте в claude_desktop_config.json — на macOS это
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"islamqa": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/RealYusufIsmail/islamqa-org-mcp",
"islamqa-mcp"
]
}
}
}Codex
Добавьте в ~/.codex/config.toml:
[mcp_servers.islamqa]
command = "uvx"
args = ["--from", "git+https://github.com/RealYusufIsmail/islamqa-org-mcp", "islamqa-mcp"]Перезапустите клиент. Первый поиск строит локальный индекс (около минуты, ~22 запроса); всё, что после, — мгновенно.
git clone https://github.com/RealYusufIsmail/islamqa-org-mcp.git
cd islamqa-org-mcp && uv syncЗатем укажите клиенту на него с помощью
uv --directory /absolute/path/to/islamqa-org-mcp run islamqa-mcp.
ChatGPT
ChatGPT отличается от клиентов выше: он не может запускать локальный процесс, поэтому ему нужен сервер, размещённый по публичному HTTPS-URL. Отсюда два следствия.
1. Запустите его по HTTP вместо stdio.
islamqa-mcp --transport streamable-http --host 0.0.0.0 --port 8000Тогда конечная точка, которую ожидает ChatGPT, — https://your-host/mcp.
2. В этом режиме он предоставляет search и fetch. ChatGPT отклоняет любой коннектор, у которого нет инструментов именно с такими именами, если вы не включили Developer Mode, а Deep Research вызывает только эти два. Поэтому при работе по HTTP сервер добавляет их как адаптеры поверх search_fatwas / get_fatwa в требуемой OpenAI форме — search возвращает {id, title, url} для каждого результата, fetch возвращает {id, title, text, url, metadata}. Каждый результат несёт реальный URL islamqa.org, так что ChatGPT формирует корректные цитаты.
Они не регистрируются для stdio — намеренно: Claude и Codex получают более богатый search_fatwas, а добавление более слабого алиаса лишь побудило бы их использовать худший вариант.
Попробовать без развёртывания
Запустите его локально и направьте на него туннель — именно для этого предназначен переключатель Tunnel в диалоге коннектора ChatGPT:
islamqa-mcp --transport streamable-http --port 8000
cloudflared tunnel --url http://localhost:8000 # or: ngrok http 8000Затем в ChatGPT: Settings → Apps → Advanced → Developer mode, добавьте коннектор, указывающий на https://<your-tunnel>/mcp, аутентификация None.
Правильное размещение
Включён Dockerfile, который работает на Render, Railway, Fly.io или Cloud Run:
docker build -t islamqa-mcp .
docker run -p 8000:8000 islamqa-mcpОн строит индекс URL на этапе сборки образа, и это важно: индекс стоит ~22 запросов к islamqa.org, и встраивание его в образ означает, что это происходит один раз за релиз, а не при каждом холодном старте каждой реплики. Без этого автоскейлящийся бесплатный тариф пересканировал бы карту сайта весь день. Это также делает первый пользовательский поиск мгновенным.
Прежде чем открывать публичный доступ: коннектор без аутентификации открыт для любого, кто найдёт URL, и каждый их запрос — это запрос к islamqa.org от имени вашего сервера. Поместите его за OAuth или прокси с аутентификацией, если он не только для вас, и сохраните ограничение частоты запросов как есть.
Навык (skill)
MCP-сервер даёт модели инструменты. Но он не говорит ей, как использовать их хорошо — а для фикха как важнее, чем что.
skills/islamqa-fatwa — это
навык Claude, который поставляется вместе с сервером. Он заставляет ассистента:
Спрашивать, какого мазхаба вы придерживаетесь, прежде чем отвечать — или представлять все четыре позиции рядом, если вы не следуете ни одному
Никогда не выносить решение, которое он не получил из архива. Ни выдуманных хадисов, ни полузабытых «по ханафитскому мнению…», ни сфабрикованных арабских цитат. Если в архиве ничего нет, он так и говорит, вместо того чтобы заполнять пробел
Использовать реальные категории традиции, а не сводить всё к халяль/харам — включая ханафитскую семичастную схему, чтобы макрух тахрими не был тихо понижен до «нежелательно» или повышен до «харам»
Сообщать, когда охват скуден. Архив в основном ханафитский; если нет маликитского ответа, он сообщает об этом, а не выводит его умозрительно
Перенаправлять дальше по вопросам развода, наследования, опеки и другим делам, где нужен человек, а не поисковый индекс
Установите его глобально:
git clone https://github.com/RealYusufIsmail/islamqa-org-mcp.git /tmp/islamqa-mcp
cp -r /tmp/islamqa-mcp/skills/islamqa-fatwa ~/.claude/skills/Он активируется сам, когда вопрос оказывается вопросом о религиозном решении.
Инструменты
Инструмент | Что делает |
| Полнотекстовый поиск по архиву. Фильтрация по |
| Один ответ полностью: вопрос, ответ, арабские цитаты, выдавшее учреждение. |
| Все 47 сайтов дар-уль-ифта с количеством ответов по каждому. |
| Последние ответы, опционально с фильтром. |
| Размер индекса, размер кэша, время последней пересборки. |
| Обновить индекс из карты сайта. Требуется редко. |
По HTTP добавляются search и fetch для совместимости с ChatGPT — см. ChatGPT.
Каждый ответ возвращается с указанием авторства и примечанием, напоминающим модели цитировать URL и рассматривать решение как позицию одного муфтия, а не универсальную.
Командная строка
Те же операции без MCP-клиента:
uv run islamqa search "wiping over socks" --madhhab hanafi
uv run islamqa get https://islamqa.org/hanafi/askimam/127638/can-i-wipe-make-masah-over-the-new-socks/
uv run islamqa sources
uv run islamqa statusКак это работает
IslamQA.org работает на WordPress с отключённым REST API, поэтому JSON-эндпоинта для вызова нет. Зато он публикует полную карту сайта и серверно отрисованные страницы — те же публичные страницы, которые видит любой читатель или краулер поисковой системы.
Сервер работает в два слоя:
Индекс. Один проход по карте сайта (~22 запроса) фиксирует URL каждого ответа вместе с его ID, мазхабом, источником и заголовком, полученным из слага. Это ~98 000 ответов на несколько мегабайт и около минуты, и это означает, что поиск с этого момента локальный и мгновенный.
Кэш. Чтение ответа загружает и разбирает эту одну страницу, затем сохраняет её. Поиск выполняется по индексу SQLite FTS5 по обоим слоям, так что ответ можно найти по заголовку сразу, а по полному тексту — после того как кто-то его прочитал: архив становится тем более доступным для поиска, чем больше вы им пользуетесь.
sitemap ──► index (~98k URLs + titles) ──┐
├──► FTS5 (BM25) ──► search_fatwas
answer page ──► parse ──► cache (full) ──┘ get_fatwaПоскольку ответы были импортированы с 47 разных сайтов в течение многих лет, страницы бывают трёх шаблонных форм, и все три обрабатываются: современные обёртки .ai-question / .ai-answer-content; голые абзацы с явными метками Question: / Answer:; и голые абзацы без меток вовсе. Лишние префиксы Q: и хвостовой текст «Original Source Link» удаляются, а арабские сноски с цитатами из классических текстов выделяются в отдельное поле citations, так что ответ читается чисто, не теряя стоящих за ним доказательств.
Есть ли у islamqa.org API?
Нет публичного JSON API. Сайт работает на WordPress, но REST API отключён на всём сайте. Проверено в августе 2026:
Эндпоинт | Результат |
|
|
|
|
|
|
|
|
|
|
Поле поиска на сайте отрисовывается на стороне клиента через ElasticPress, поэтому его результаты тоже отсутствуют в HTML — именно поэтому этот сервер строит собственный индекс, а не проксирует поиск по сайту.
Что доступно машиночитаемо и открыто:
Эндпоинт | Формат | Примечания |
| XML | 22 дочерние карты сайта |
| XML | 5 000 URL ответов на страницу, с |
| RSS 2.0 | Последние ответы по всему сайту |
| RSS 2.0 | Последние ответы по каждому учреждению |
Страницы ответов | HTML + JSON-LD | Схема |
| — | Возвращается пустым: ничего не запрещено |
Этот сервер использует карту сайта и страницы ответов. RSS-ленты — лёгкий вариант, если вам нужны только новые ответы и не нужен поиск: им не нужны ни индекс, ни скрейпинг:
curl -s https://islamqa.org/hanafi/askimam/feed/URL ответов структурированы, поэтому вы можете обратиться к любому ответу напрямую:
https://islamqa.org/{madhhab}/{source}/{post_id}/{slug}/
hanafi askimam 127638 can-i-wipe-make-masah-over-the-new-socksЕсли islamqa.org когда-нибудь включит свой REST API, этот сервер должен переключиться на него — откройте issue, если заметите, что он вернулся.
Конфигурация
Всё опционально, задаётся через переменные окружения:
Переменная | По умолчанию | Назначение |
|
| Где живут индекс и кэш |
|
| Секунды между запросами |
|
| Как долго кэшированный ответ свеж |
|
| Когда пересобирать индекс |
| идентифицирует этот инструмент | Отправляется с каждым запросом |
Этикет (адаб)
Этот сервис читает бесплатный ресурс, который существует на пожертвования, поэтому он построен так, чтобы быть хорошим гостем:
Один запрос в секунду, глобально сериализованный — параллельные вызовы инструментов не могут превратиться в всплеск.
Агрессивное кэширование. Фетвы по сути неизменяемы после публикации, поэтому страница загружается один раз и переиспользуется в течение 90 дней.
Загружает только то, что запрошено. Массовый проход читает sitemap, а не 100 000 страниц с ответами. Здесь нет краулера.
Идентифицирует себя настоящим User-Agent, указывающим на этот репозиторий.
Привязан к одному хосту. Каждый URL проверяется по белому списку до открытия сокета, поэтому никакой аргумент от модели не может превратить это в открытый прокси.
Указывает источник всего. Выдавшее учреждение, муфтий, если он назван, и ссылка на собственную копию darul ifta сопровождают каждый ответ.
Если вы поддерживаете islamqa.org и хотите что-то изменить здесь — лимит запросов, User-Agent или само существование инструмента — пожалуйста, откройте issue, и это будет рассмотрено.
Об использовании. Это ответы квалифицированных муфтиев, но фетва даётся конкретному человеку в конкретном контексте. Результат поиска — не решение по вашей ситуации, а языковая модель, передающая его, — не учёный. По любым важным вопросам обращайтесь напрямую к квалифицированному специалисту.
Разработка
uv sync --extra dev
uv run pytest # 81 tests, no network — runs against saved fixtures
uv run ruff check .
uv run mypy src/islamqa_mcpТесты парсера запускаются на урезанных копиях реальных страниц. Если islamqa.org изменит свой шаблон, они громко упадут, и это намеренно: тихая регрессия парсинга незаметно подавала бы модели пустые ответы.
Лицензия
MIT — см. LICENSE.
Лицензия распространяется только на это программное обеспечение. Фетвы принадлежат учёным и учреждениям, которые их издали. Этот инструмент читает публичные страницы и даёт ссылки; он не распространяет архив.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides AI assistants with comprehensive access to Islamic resources including Quran verses with translations, Tafsir commentary, Hadith collections, and audio recitations. Enables users to explore Islamic texts, get daily inspiration, and access scholarly interpretations through natural language queries.18319MIT
- FlicenseNot gradedqualityDmaintenanceEnables debate search and citation functionality through web search, Wikipedia, arXiv, and AWS documentation APIs. Designed to power debate features with comprehensive research and citation tools via MCP protocol.
- AlicenseNot gradedqualityCmaintenanceEnables fetching and searching canonical hadith texts (Arabic and English) with cross-references and citation-safe URLs for assistants, built on FastMCP.1GPL 3.0
Related MCP Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Query any docs site via MCP. Submit a URL, ask questions, get cited answers.
Task-oriented MCP for Indonesian law: search, resolve citations, read laws, and MK decisions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RealYusufIsmail/islamqa-org-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server