sanad-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| answer_questionA | Primary tool. Takes a user's question, runs the policy gate, then retrieval. Returns one of three verdicts: 'answered' with supporting passages, 'referred' (ruling territory — no passages returned), or 'no_source' (nothing cleared the threshold). You must respect the verdict and must not answer from your own knowledge. |
| search_corpusA | Lexical search over the approved corpus. Returns passages above the retrieval threshold with full citation metadata. Does NOT run the policy gate — use answer_question for user-facing questions. |
| get_passageB | Fetch one passage by its exact id, e.g. 'Q 2:183' or 'Bukhari 1'. |
| check_policyA | Test a question against the policy gate without retrieving anything. Useful for reviewing where the refusal boundary currently sits. |
| corpus_inventoryA | What is actually in the corpus: counts by source and grading, review status, and the full passage list. Use this to answer coverage questions honestly. |
| list_gapsC | Questions that returned no source, for the scholar's review queue. This is the corpus improvement loop: gaps are what should be added next. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Approved corpus | Every passage with citation metadata and review status. |
| Policy gate | The refusal rules, in the form the scholar reviews them. |
TDQS
Scored across 6 tools
Each tool has a clearly distinct role: answer_question is the user-facing policy-gated path, search_corpus is retrieval-only, get_passage fetches by ID, check_policy isolates the gate, corpus_inventory reports coverage, and list_gaps records misses. The descriptions explicitly prevent confusion between answer_question and search_corpus.
Five tools follow verb_noun (answer_question, search_corpus, get_passage, check_policy, list_gaps), but corpus_inventory breaks the pattern as a noun_noun phrase. This is a minor deviation, not enough to confuse an agent.
Six tools is well within the ideal range and each has a distinct purpose in the policy-gated retrieval workflow. No tool appears redundant or unnecessary.
The surface covers the core query lifecycle: asking, searching, retrieving, policy checking, inventory, and gap tracking. Missing operations for adding corpus content or resolving gaps are minor for a read-oriented server but leave the improvement loop partially manual.