{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T19:27:23.563Z","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp","markdownUrl":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp.md","server":{"slug":"blade-labs-fanar-mcp","name":"Fanar","registryName":"io.github.Blade-Labs/fanar-mcp","description":"Fanar (QCRI) for MCP: cited Islamic Q&A, Qur'an and hadith checks, Arabic translation and speech","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"fanar-mcp","type":"pypi","identifier":"fanar-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp","version":"0.1.1","transport":"stdio","scoredAt":"2026-11-05T03:25:59.000Z"},"score":{"total":71,"tier":"medium","status":"scored","weekDelta":-12,"history":[{"date":"2026-11-05","total":71},{"date":"2026-11-04","total":86},{"date":"2026-11-03","total":85},{"date":"2026-11-02","total":70},{"date":"2026-11-01","total":84},{"date":"2026-10-31","total":69},{"date":"2026-10-30","total":68},{"date":"2026-10-29","total":83},{"date":"2026-10-28","total":67},{"date":"2026-10-27","total":67},{"date":"2026-10-26","total":66},{"date":"2026-10-25","total":66},{"date":"2026-10-24","total":81},{"date":"2026-10-23","total":80},{"date":"2026-10-22","total":65},{"date":"2026-10-21","total":79},{"date":"2026-10-20","total":64},{"date":"2026-10-19","total":63}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"unverified","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","0 of 28 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"28","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to Blade-Labs/fanar-mcp).","Clear OSI-approved license (Apache-2.0).","Actively maintained (last published 16 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"Blade-Labs/fanar-mcp"}},{"code":"license.osi","args":{"spdx":"Apache-2.0"}},{"code":"maintenance.recent","args":{"age_days":"16"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":75,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (fair).","Tool/resource definitions use about 1219 tokens (~101/item across 12 items; 12 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"fair"}},{"code":"schema.footprint_lean","args":{"avg":"101","items":"12","tools":"12","tokens":"1219","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":57,"verdict":"partial","reasons":["Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"17"}}]},{"name":"Tool Coverage","score":67,"verdict":"fail","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","0% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"0"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"12"}},{"code":"toolsafety.manipulation_clean","args":{"units":"13","judged":"13"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Malware scan not yet available for this package."],"malware":[],"components":[{"slug":"fanar-mcp","type":"pypi","identifier":"fanar-mcp","withdrawn":false,"score":71,"current":true,"url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp","markdownUrl":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"fanar-mcp"},{"label":"Version","value":"0.1.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"fanar_list_models","title":null,"description":"List the Fanar models this API key may call. Entitlements differ per key: for example\nFanar-Sadiq-2, which powers the quotation validator and deep research, must be enabled by Fanar.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":54},{"name":"fanar_chat","title":null,"description":"Chat with a Fanar language model. Fanar-C-2-27B is the Fanar 2.0 27B model for Arabic (MSA and\nGulf, Levantine and Egyptian dialects) and English; \"Fanar\" is the default alias. Set thinking=true\nfor step-by-step reasoning. About 50 requests a minute.","inputs":[{"name":"max_tokens","type":"integer","required":false,"description":null},{"name":"model","type":"string","required":false,"description":null},{"name":"prompt","type":"string","required":true,"description":null},{"name":"system","type":null,"required":false,"description":null},{"name":"temperature","type":null,"required":false,"description":null},{"name":"thinking","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":123},{"name":"fanar_islamic_qa","title":null,"description":"Ask Fanar-Sadiq an Islamic question and get an answer grounded in cited sources such as the\nQur'an, hadith collections and fatwa collections. Show the references with the answer and present\nit as a cited answer, never as a fatwa. Fanar-Sadiq-2 adds madhab and source filters when your key\nis entitled to it; madhab is a list such as [\"hanafi\"], from all, hanafi, maliki, shafii and hanbali.\nAbout 50 requests a minute.","inputs":[{"name":"exclude_sources","type":null,"required":false,"description":null},{"name":"madhab","type":null,"required":false,"description":null},{"name":"max_tokens","type":"integer","required":false,"description":null},{"name":"model","type":"string","required":false,"description":null},{"name":"preferred_sources","type":null,"required":false,"description":null},{"name":"question","type":"string","required":true,"description":null},{"name":"restrict_to_islamic","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":173},{"name":"fanar_validate_quotations","title":null,"description":"Detect and verify Qur'an and hadith quotations inside any text: an LLM answer, a draft, an\narticle. Verified quotations come back tagged and linked to canonical sources; a quotation left\nuntagged could not be confirmed and must be treated as unverified. Requires Fanar-Sadiq-2 on the\nkey. About 200 requests a minute.","inputs":[{"name":"text","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"fanar_deep_research","title":null,"description":"Start a Fanar-Sadiq-2 deep research job: a structured report on an Islamic topic, with headings\nand cited sources. It takes minutes (quick about 3-6, standard about 7-10); poll it with\nfanar_deep_research_result. Requires Fanar-Sadiq-2 on the key. About 20 jobs a day.","inputs":[{"name":"depth","type":"string","required":false,"description":null},{"name":"topic","type":"string","required":true,"description":null},{"name":"web_search","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"fanar_deep_research_result","title":null,"description":"Fetch the status, progress or finished report of a Fanar-Sadiq-2 deep research job.","inputs":[{"name":"job_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42},{"name":"fanar_translate","title":null,"description":"Translate between Arabic and English with Fanar's Shaheen models, including classical Arabic such\nas hadith and fiqh texts. About 20 requests a day; keep each request under about 4,000 words.","inputs":[{"name":"langpair","type":"string","required":true,"description":null},{"name":"model","type":"string","required":false,"description":null},{"name":"preprocessing","type":"string","required":false,"description":null},{"name":"text","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"fanar_text_to_speech","title":null,"description":"Speak Arabic or English text with a Fanar Aura voice and save it as an audio file; returns the\nfile path. Qur'an recitation by a named reciter needs Fanar-Sadiq-TTS-1. About 20 requests a day.","inputs":[{"name":"filename","type":null,"required":false,"description":null},{"name":"model","type":"string","required":false,"description":null},{"name":"quran_reciter","type":null,"required":false,"description":null},{"name":"response_format","type":"string","required":false,"description":null},{"name":"text","type":"string","required":true,"description":null},{"name":"voice","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":106},{"name":"fanar_transcribe","title":null,"description":"Transcribe Arabic (including dialects) or English audio from a local file with Fanar Aura.\nlong_form=true uses the long-audio model (about 10 requests a day); otherwise about 20 a day.","inputs":[{"name":"audio_path","type":"string","required":true,"description":null},{"name":"long_form","type":"boolean","required":false,"description":null},{"name":"output","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77},{"name":"fanar_generate_image","title":null,"description":"Generate a culturally aware image with Fanar Oryx and save it; returns the file path and the\nprompt as Fanar revised it. About 20 requests a day.","inputs":[{"name":"filename","type":null,"required":false,"description":null},{"name":"prompt","type":"string","required":true,"description":null},{"name":"revise","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":65},{"name":"fanar_moderate","title":null,"description":"Score a prompt and response pair with FanarGuard for safety and cultural awareness, in Arabic or\nEnglish. Requires Fanar-Guard-2 on the key.","inputs":[{"name":"prompt","type":"string","required":true,"description":null},{"name":"response","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":58},{"name":"fanar_poem","title":null,"description":"Compose Arabic poetry in the classical tradition with Fanar-Diwan. Requires Fanar-Diwan on the key.","inputs":[{"name":"prompt","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T03:25:58.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":28,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-19","recent":[{"id":"chg_01a1a9bd-ed71-7134-8592-50f512b98709","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a1a9bd-ed71-7134-8592-50f512b98709"},{"id":"chg_01a1a9bd-ed72-7e2d-b714-f7328ef46c9c","kind":"score.total_changed","summary":"Trust score (86 → 71)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a1a9bd-ed72-7e2d-b714-f7328ef46c9c"},{"id":"chg_01a1a496-61ad-7115-a2d9-e43c791c0838","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a1a496-61ad-7115-a2d9-e43c791c0838"},{"id":"chg_01a19f6f-676b-7ad2-8b70-a755605be88f","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19f6f-676b-7ad2-8b70-a755605be88f"},{"id":"chg_01a19f6f-676c-7eed-bffd-8d13cffc84aa","kind":"score.total_changed","summary":"Trust score (70 → 85)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19f6f-676c-7eed-bffd-8d13cffc84aa"},{"id":"chg_01a19a4a-3a65-72c6-844f-8ddb6356e118","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19a4a-3a65-72c6-844f-8ddb6356e118"},{"id":"chg_01a19a4a-3a66-7cd7-9484-cdbfedd8bda5","kind":"score.total_changed","summary":"Trust score (84 → 70)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19a4a-3a66-7cd7-9484-cdbfedd8bda5"},{"id":"chg_01a19514-73d5-72b4-9602-ba2b42aec3b3","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19514-73d5-72b4-9602-ba2b42aec3b3"},{"id":"chg_01a19514-73d6-7c47-97d7-fc4c675e1c35","kind":"score.total_changed","summary":"Trust score (69 → 84)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19514-73d6-7c47-97d7-fc4c675e1c35"},{"id":"chg_01a19003-72ae-70f7-8c5c-9815f62ab392","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a19003-72ae-70f7-8c5c-9815f62ab392"},{"id":"chg_01a18acf-b88e-700a-bd2c-d30844030f45","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a18acf-b88e-700a-bd2c-d30844030f45"},{"id":"chg_01a18acf-b88f-759d-baff-d8b95b2101a3","kind":"score.total_changed","summary":"Trust score (83 → 68)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a18acf-b88f-759d-baff-d8b95b2101a3"},{"id":"chg_01a185b2-ba4a-7a42-8d37-6937cccf9063","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a185b2-ba4a-7a42-8d37-6937cccf9063"},{"id":"chg_01a185b2-ba4c-75a4-90ee-197ede9ff8b0","kind":"score.total_changed","summary":"Trust score (67 → 83)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a185b2-ba4c-75a4-90ee-197ede9ff8b0"},{"id":"chg_01a17b4e-9930-7128-83d5-efc06e5b199e","kind":"score.total_changed","summary":"Trust score (66 → 67)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a17b4e-9930-7128-83d5-efc06e5b199e"},{"id":"chg_01a17101-df40-7e7e-8df5-c74b14e39c35","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a17101-df40-7e7e-8df5-c74b14e39c35"},{"id":"chg_01a17101-df41-7a89-9e0f-1fdc2d173e73","kind":"score.total_changed","summary":"Trust score (81 → 66)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a17101-df41-7a89-9e0f-1fdc2d173e73"},{"id":"chg_01a16b37-c5e9-7dce-9601-d872843aee4c","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a16b37-c5e9-7dce-9601-d872843aee4c"},{"id":"chg_01a1664d-297b-7a3a-b12c-136b7396e445","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a1664d-297b-7a3a-b12c-136b7396e445"},{"id":"chg_01a1664d-297d-70cb-9a3d-d785197aeae1","kind":"score.total_changed","summary":"Trust score (65 → 80)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp#chg-chg_01a1664d-297d-70cb-9a3d-d785197aeae1"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp","markdown":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp.md","changelogJson":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/blade-labs-fanar-mcp/fanar-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/fanar-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/fanar-mcp"},{"label":"Repository","href":"https://github.com/Blade-Labs/fanar-mcp"}]}}