Skip to main content
Glama

Islam West Africa Collection (IWAC)

Filter articles by AI sentiment

search_by_sentiment
Read-onlyIdempotent

Filter articles by gpt-5-6-luna sentiment labels (accent/case-insensitive exact match). One model's reading, not a consensus — 4 other models scored the same articles and often disagree; get_sentiment_distribution with model:"all" shows by how much. subjectivity is much the weakest of the three scales, so treat a set selected on it as a lead to read rather than as a finding.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 20, max 100
offsetNo
countryNoExact country name: Benin | Burkina Faso | Côte d'Ivoire | Niger | Togo (accents optional)
subjectNo
disputedNopolarite | centralite | subjectivite — keep only articles the panel SPLIT on for that field (French field names, as stored). Selects contested readings, not a sentiment value.
polarityNoTrès positif | Positif | Neutre | Négatif | Très négatif | Non applicable
centralityNoTrès central | Central | Secondaire | Marginal | Non abordé
subjectivityNoTrès objectif | Plutôt objectif | Mixte | Plutôt subjectif | Très subjectif — least to most subjective. Unscored where the model answered Non abordé, so this filter also excludes those.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedInput schema / properties / limit / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / limit / minimum
      Removed value: --9007199254740991
    • removedInput schema / properties / offset / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / offset / minimum
      Removed value: --9007199254740991
  2. Changed1 schema field changed
    • addedInput schema / properties / disputed
      Added value: +{
      +  "description": "polarite | centralite | subjectivite — keep only articles the panel SPLIT on for that field (French field names, as stored). Selects contested readings, not a sentiment value.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / subjectivity
      Added value: +{
      +  "description": "Très objectif | Plutôt objectif | Mixte | Plutôt subjectif | Très subjectif — least to most subjective. Unscored where the model answered Non abordé, so this filter also excludes those.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  5. Changed5 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / limit / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / limit / minimum
      Added value: +-9007199254740991
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / offset / minimum
      Added value: +-9007199254740991
  6. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive), and the description goes well beyond them: accent/case-insensitive exact-match semantics, the fact that this reflects one model's reading rather than a consensus, and that subjectivity is the weakest scale. These are material behavioral disclosures an agent cannot infer from 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.

Conciseness4/5

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

The core operation and matching semantics are front-loaded in the first sentence, followed by two sentences of interpretation caveats that each carry real information. Dense but no filler.

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?

No output schema exists, so return values need not be described, and the description covers the key interpretive risks (single-model reading, weak subjectivity scale) plus an alternative tool. Complete enough for an 8-param read-only filter.

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 coverage is 75% and the schema already documents limit, country, disputed, and the three sentiment fields including the subjectivity exclusion rule. The description adds only the model identity and the relative weakness of the subjectivity scale, so it sits at the baseline for schema-heavy coverage rather than compensating for a gap.

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+resource (filter articles) scoped to gpt-5-6-luna sentiment labels, and explicitly names the sibling get_sentiment_distribution for the cross-model view. An agent can distinguish this from search_articles and get_sentiment_distribution without opening a schema.

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

Usage Guidelines4/5

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

Routes the agent to get_sentiment_distribution with model:"all" when cross-model disagreement matters, and warns that a set selected on subjectivity should be read as a lead, not a finding. This gives clear when-to-use context and a caution about interpretation, though it never states explicit exclusions for polarity/centrality use.

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.