ELIB - Armenian Digital Library
Server Details
Search and cite books, authors and subjects of elib.am, the free Armenian digital library.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool targets a clearly distinct resource and action: get_author/get_book fetch single entities by id, search_authors/search_books find entities by query, and the three list_* tools enumerate different resources. There is no meaningful overlap; get_book vs search_books is distinguished by id-lookup versus query-based full-text search.
All seven tools follow a strict verb_noun snake_case pattern (get_*, list_*, search_*), with verbs that accurately reflect the operation. No mixed conventions or vague verbs.
Seven tools is well-scoped for a digital library: detail, browse, and search operations across authors, books, subjects, and libraries. Each tool earns its place with no redundancy.
Core lifecycle coverage is strong: authors and books can be fetched, browsed, and searched, subjects are enumerable, and libraries are listed with full details. Minor gaps remain, such as no dedicated list_languages despite language filtering, and no get_library detail tool, but these are workable.
Available Tools
7 toolsget_authorGet an authorCRead-onlyIdempotentInspect
One author's biography, life dates, page address and books.
| Name | Required | Description | Default |
|---|---|---|---|
| author | Yes | The author's id or slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds only the shape of the returned data (biography, dates, page address, books), which is genuine but modest value. It says nothing about behavior on a missing author or which author representation is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence-fragment with no filler, so it is maximally concise. However, terseness here shades into under-specification: the fragment omits a verb and the input form, so brevity costs clarity rather than serving it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read tool with full schema coverage and complete safety annotations, and there is no output schema — so the description's enumeration of returned fields usefully compensates for that absence. The main remaining gap is error/not-found behavior, which is minor for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('The author's id or slug'), so the schema carries the semantics. The description never mentions the input at all — it does not confirm that either an id or a slug is acceptable, though the schema does. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment names the resource (author) and enumerates what comes back (biography, life dates, page address, books), so the general intent is inferable. But it uses no verb — no 'retrieve' or 'fetch' — and gives no hint of the lookup key, so an agent must infer from the tool name alone. It also does nothing to distinguish this from the sibling search_authors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no usage guidance at all: no statement of when to call this instead of search_authors, and no mention that the input is an id or slug (which is what actually separates the two). The agent must deduce the distinction from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookGet a bookBRead-onlyIdempotentInspect
One book's details: title, author, subject, language, description, a passage of its text, its page address and related books.
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | The book's id or slug, as search_books, list_books or get_author return them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context by disclosing the return payload shape, notably that only 'a passage of its text' is returned rather than the whole book. It says nothing about behavior for an unknown id or whether the passage is truncated by size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that leads with the resource and then the returned fields, with no filler. The field enumeration is a laundry list but each item earns its place by telling the agent what to expect in the response.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description carries the return-value burden well by enumerating the fields. The remaining gap is failure behavior for a missing or ambiguous slug, which an agent would need to handle correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema description coverage, the schema already explains that 'book' accepts an id or slug as returned by search_books, list_books or get_author. The description contributes nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('one book's details') and enumerates exactly what comes back, so the agent knows it is a single-record fetch rather than a list. The verb is implicit (the name and title carry 'get'), and no sibling is named, so it stops short of full differentiation from get_author or search_books.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus search_books or list_books, and no prerequisite such as obtaining the id from a prior search. Usage is only inferable from the fact that it returns one book's full detail, which is not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_booksList booksARead-onlyIdempotentInspect
Browse published books by subject, author or language, newest, most read or by title. Use list_subjects for subject ids and search_authors for author ids.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page of results, from 1. | |
| sort | No | new | |
| language | No | Language of the books: hy Armenian, ru Russian, en English. | |
| per_page | No | ||
| author_id | No | Author id from search_authors or get_author. | |
| subject_id | No | Subject id from list_subjects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, idempotent, non-destructive operation. The description adds scope by saying only published books are returned, but it does not add much about pagination behavior, response shape, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the main action and followed by the key ID-acquisition alternatives. There is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a filtered browse/list endpoint with rich annotations and partial schema descriptions, the definition covers the main call semantics and ID sourcing. It could be more complete by distinguishing browse from search_books and by saying more about returned results or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds meaningful semantics by mapping sort options to 'newest, most read or by title' and clarifying the subject/author/language filters. It does not explain pagination parameters, though the schema handles much of that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and resource: browsing published books, with clear facets such as subject, author, language, and sort order. It does not explicitly distinguish list_books from search_books, which is the main sibling an agent might confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful routing guidance by telling the agent to use list_subjects for subject ids and search_authors for author ids. It stops short of stating when to use this browse tool instead of search_books or get_book.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_librariesList libraries in ArmeniaBRead-onlyIdempotentInspect
The directory of libraries in Armenia that ELIB lists: name, city, address, phone, website, opening hours and map position.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Only libraries in this city (e.g. Yerevan, Gyumri). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description's added value is enumerating the returned fields, which substitutes for the missing output schema, but it says nothing about ordering, result size, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with no filler, and the resource identification is front-loaded. It spends its words on field enumeration rather than on guidance, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, listing the returned fields is genuinely useful and partially compensates. However, for a list tool it omits practical invocation details such as whether results are all libraries by default and how the city filter narrows them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional city parameter is documented in the schema with examples (Yerevan, Gyumri). The description adds no filtering semantics beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely (directory of libraries in Armenia) and enumerates the fields returned, which lets an agent separate it from the book/author siblings. The verb is only implied by 'directory ... that ELIB lists' rather than stated as 'List libraries', but the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or how it relates to the book/author siblings. The city filter parameter exists but the description never mentions it, so an agent gets no routing or scoping advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subjectsList subjectsARead-onlyIdempotentInspect
Every subject that has books, with its id and how many books it holds, largest first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavior: subjects without books are omitted, each row carries an id and a book count, and results are sorted descending by count — all facts absent from the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero filler, with the filtering constraint and the sort order front-loaded. Nothing repeats the name or title and nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description has to carry the return shape, and it does name the two fields (id, book count) plus ordering. It stops short of stating whether a subject label/name is included or what an empty result looks like, which is a minor residual gap for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The empty schema and the description are consistent in signaling a no-argument enumeration call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (subjects), the scope (only those with books), and the return payload (id + book count), ordered largest first. That is enough to distinguish it from list_books and list_libraries without opening the schema, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the scope phrase 'every subject that has books' — an agent can infer this is the browse-by-subject entry point, but there is no stated when-to-use, no exclusion of subjects with zero books as an alternative path, and no routing to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_authorsSearch authorsARead-onlyIdempotentInspect
Find authors by name (Armenian, Russian or Latin spelling). Without a query, lists the authors with the most books.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page of results, from 1. | |
| query | No | Part of the author's name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, closed-world safety. The description adds real context the annotations don't: accepted transliterations (Armenian, Russian, Latin) and a defined no-query fallback returning top authors by book count, which is the main branch an agent must anticipate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences: the primary lookup first, the zero-parameter behavior second. No filler, no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers both call modes (with and without query) for a two-parameter tool, and the schema handles pagination, so no output schema is needed. Minor gaps: result ordering for query searches and whether matching is case- or diacritic-sensitive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema's 'Part of the author's name' by noting that partial matching works across three scripts. Pagination in the schema is self-explanatory and needs no restatement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (find authors) plus the matching dimension (name), and it distinguishes itself implicitly from get_author by describing lookup by partial name. It does not explicitly name sibling tools, but the purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage rule: use with a query for name lookup, omit the query to get the most prolific authors. It lacks an explicit contrast with get_author (exact/ID lookup), so an agent must infer that boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_booksSearch booksARead-onlyIdempotentInspect
Search the whole library: titles, authors and descriptions (Latin transliteration works too), then the books' full text. Returns up to 20 books a page, best match first, each with the passage that matched.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page of results, from 1. | |
| query | Yes | Words to look for, in any language or script. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, idempotent search. Beyond that, the description adds meaningful behavior: 20 results per page, best-match ordering, matching passage per result, and Latin transliteration support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences are front-loaded with scope and search behavior, followed by return characteristics. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully explains result count, ordering, and included matching passages. It is largely complete for a simple search tool, though pagination termination details such as total pages are not stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description still adds useful meaning by noting that queries work in any language or script and that transliteration is accepted, plus it implies page-size behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it searches books across titles, authors, descriptions and full text. It is clear what the tool does, but it does not explicitly contrast with the sibling search_authors despite indexing author names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the search-oriented description, but it never says when to use this instead of list_books, get_book, or search_authors. The agent must infer the selection criteria from the tool names and the word 'search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
get_author - First observed
get_book - First observed
list_books - First observed
list_libraries - First observed
list_subjects - First observed
search_authors - First observed
search_books
Related MCP Connectors
Search papers, format citations in 60 styles, and verify bibliographies against scholarly sources.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Search books and authors across Open Library, the Internet Archive open catalog.
Search and cite passages from a vetted, rights-cleared reference library.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables users to look up digitized-book holdings and catalog records by standard identifiers, retrieve bibliographic metadata, and check whether readable full-view copies are available.17 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and reading a library of PDF books page by page, and verifying whether a quote appears on its cited page.6 npmISC
- AlicenseNot gradedqualityBmaintenanceEnables searching and browsing the three public catalogues of the National Archives of Georgia: the reference library, the national fonds register, and the film catalogue.8 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching the National Parliamentary Library of Georgia's union catalogue and digital library, retrieving bibliographic records with full MARC data, and accessing scanned documents, dissertations, and posters via natural language tools.9 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.