Skip to main content
Glama

Islam West Africa Collection (IWAC)

Aggregate AI sentiment

get_sentiment_distribution
Read-onlyIdempotent

Aggregate AI polarity, centrality and subjectivity across a filter set. 5 models scored the corpus independently — gpt-5-6-luna, mistral-small-2603, deepseek-v4-flash-0731, gemma-4-31b-it, qwen3-8-27b — so model:"all" returns each one's distribution plus how often they AGREE. Treat disagreement as a fact about the judgement rather than noise: corpus-wide the panel is unanimous on polarity for only ~32% of articles, so in a set where the models split no single one's number should be quoted alone. All three scales are ordinal French labels; subjectivity is much the weakest and ships a caveat to quote with it. Articles were scored whether or not their full text ships, so these shares are not subject to the OCR coverage limit. The models do NOT all cover the same articles, so read each one's coverage before comparing counts: ~51 non-francophone articles are unscored by design, and qwen3-8-27b is 200 further short on articles peripheral to Islam.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelNogpt-5-6-luna | mistral-small-2603 | deepseek-v4-flash-0731 | gemma-4-31b-it | qwen3-8-27b | all | consensus — default gpt-5-6-luna; "all" adds the cross-model agreement, "consensus" returns the panel's precomputed majority (no annotator produced it, so it is never attributed to a model). The vendor shorthands chatgpt/mistral/deepseek/gemma/qwen also resolve to the model that ran. The generation-1 models (gemini-3-flash-preview, gpt-5-mini, ministral-14b-2512) are no longer served and return an error rather than a substitute — and 'gemini' is refused rather than read as gemma-4-31b-it, which is a different model line.
countryNoExact country name: Benin | Burkina Faso | Côte d'Ivoire | Niger | Togo (accents optional)
subjectNo
newspaperNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
viewYes
modelYes
modelsNo
filtersYes
by_modelNo
coverageNo
disputedNo
agreementNo
consensusNo
model_caveatNo
subjectivityNo
total_articlesYes
agreement_matrixNo
polarity_distributionNo
centrality_distributionNo
subjectivity_median_rankNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already mark the tool read-only/idempotent, but the description adds significant insight: models do not cover the same articles, the scales are ordinal French labels, subjectivity is weaker and ships a caveat, and OCR coverage is not a limiting factor. This goes far beyond the annotations without contradicting them.

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 main summary is front-loaded in the first sentence, and every additional sentence introduces a distinct caveat or constraint. It is longer than a strictly minimal description, but each sentence earns its place in this nuanced model-sentiment aggregation scenario; a more structured list would improve scannability.

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?

The description is unusually thorough for a low-metric read tool: it calls out coverage gaps, non-francophone inconsistencies, consensus attribution, and the manipulation not applying to OCR limits. It still leaves a small gap by not explaining what centrality means in this domain and not elaborating the semantics of subject/newspaper filters.

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?

It adds useful parameter-related context for the model (all vs consensus, agreement, coverage) and its 'filter set' wording clarifies that country/subject/newspaper restrict the. However, the subject and newspaper parameters remain undefined in both the schema and the description, and the schema itself leaves 50% of parameters undescribed, so the burden is not fully compensated.

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?

The description opens with a precise verb-resource combination: 'Aggregate AI polarity, centrality and subjectivity across a filter set.' It clearly defines what the tool computes and even names the five models and the model:all behavior, making it easy to distinguish from sibling distribution tools.

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

Usage Guidelines3/5

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

The description provides strong contextual guidance about when to use model:'all' vs model:'consensus' and warns against quoting a single model's number when disagreement is split. However, it never explicitly names alternatives such as search_by_sentiment for article-level sentiment, so the when-else routing is left implicit.

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.

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct resource or analytical dimension: get_* tools are specific to item categories (article, audiovisual, document, image, publication, reference) or specific analyses (cooccurrence, field distribution, lexical metrics, semantic map, sentiment distribution, similar items, temporal distribution, topic distribution). Search tools are clearly separated by subset, with generic 'search' for cross-category discovery and search_* for filtered queries. The only potential overlap between 'fetch' and get_* is resolved by 'fetch' returning a standard format while get_* tools provide category-specific extra metadata.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: fetch, get_*, list_*, search_*. The verbs are clear and the nouns precisely indicate the resource or action. There are no mixed conventions (e.g., no camelCase or inconsistent verb styles), making the naming predictable and easy to navigate.

Tool Count2/5

At 34 tools, the count is well above the 25+ threshold that the rubric flags as too many. While the server's comprehensive scope for a digital archive with multiple subsets and analytical features explains the high count, the sheer number may overwhelm agents and makes the toolset feel heavy rather than well-scoped. Some grouping or consolidation (e.g., merging distribution tools or providing a single fetch with optional detail levels) could reduce the load without losing functionality.

Completeness5/5

The tool surface provides complete coverage for the domain: every content type (articles, publications, references, documents, audiovisual, images, index) has both search and get/retrieve tools, plus listing tools for key vocabularies. Analytical tools for statistics, distributions, sentiment, topics, and similarity are fully realized. There are no obvious dead ends—users can discover, retrieve, and analyze all parts of the collection, and even gaps in the underlying data (e.g., limited OCR coverage) are explicitly surfaced via tools like get_collection_stats.