Skip to main content
Glama
This connector has been deprecated

Resolve a name to an id

shamela_resolve
Read-onlyIdempotent

تحويل اسم إلى معرِّف

Disambiguate Arabic name fragments to book_ids and/or author_ids. Uses the pre-built s_book/ + s_author/ n-gram indexes for fast partial matching. type='book' searches only books, 'author' only authors, 'any' (default) both. Returns up to limit results per type with confidence scores. Use this BEFORE search_pages / search_books / search_authors when the user mentions a name but doesn't know the exact ID. Examples: shamela_resolve({query:'ابن قدامة'}) → returns the matching author_id(s) with confidence; shamela_resolve({query:'روضة الناظر'}) → returns book matches.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNo'book' searches the s_book/ index, 'author' searches s_author/, 'any' (default) searches both.any
limitNoMaximum results per type (1–20, default 5).
queryYesArabic name fragment to resolve. Use partial names: 'ابن قدامة' resolves Ibn Qudamah, 'الروضة' resolves books with that word in their title.
response_formatNoOutput format for the human-readable text. 'markdown' (default) is best for direct display; 'json' returns the same data as a single JSON code block; 'none' skips the rendered text entirely and returns a one-line pointer, leaving `structuredContent` as the whole answer. The structured data is returned in `structuredContent` regardless of this setting, so a caller that parses it should pass 'none' — the character budget is measured over BOTH channels, and the unread copy is otherwise spending most of it. Requires the 'response_format.none' capability (see shamela_brief).markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real behavioral context beyond that: it uses pre-built s_book/s_author n-gram indexes for partial matching and returns per-type results with confidence scores. It stops short of describing result ordering or ambiguity handling, but the value added is genuine.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is tight and front-loads the mechanism, the type behavior, and the redirect to sibling tools. The opening Arabic line "تحويل اسم إلى معرِّف" duplicates the title verbatim, which is a small piece of dead weight in an otherwise efficient description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does state that it returns up to `limit` results per type with confidence scores, which is what an agent needs to consume the result. It could go slightly further on ordering/tie-breaking, but the essentials are present for this read-only resolver.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both enums are documented in-schema, so the description's explanation of type='book'/'author'/'any' largely restates it. The examples for query add marginal color but the schema already carries the semantics. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (disambiguate/resolve) and resource (Arabic name fragments to book_ids/author_ids), and the opening line tells the agent exactly what outcome to expect. It distinguishes itself from search_pages/search_books/search_authors, which it explicitly names as the tools it precedes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this BEFORE search_pages / search_books / search_authors when the user mentions a name but doesn't know the exact ID" gives an explicit when-to-use rule plus the alternative tools it replaces in that scenario. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources