Skip to main content
Glama

Santismm Knowledge — Harness Engineering, Agentic AI & Governance

Search every SANTISMM knowledge surface

search_all
Read-onlyIdempotent

Search the core corpus, first-party essays, executable Labs, epistemic claims, the Homeric Atlas and the AI benchmarks (professions and benchmark catalogue) in one call. Use this first when a natural-language question might require a calculation, a long-form essay, a claim audit or a model choice rather than only a core knowledge unit. Results name the next tool to call; calculator-shaped questions are routed toward Labs, and 'which AI model for…' questions toward the benchmarks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesQuestion or topic, in English, Spanish, Portuguese, French, German, Japanese or Simplified Chinese.
localeNoLanguage of the returned body. Default: en.
surfacesNoRestrict the search. Omit to search all six surfaces.
content_localesNoKeep only results whose text is entirely in these languages. `locale` is a presentation preference and still returns substitutions, labelled; this is the hard filter. A result that mixes a language you did not allow is dropped, and so is one that cannot declare its languages.
limit_per_surfaceNoMaximum hits from each surface. Default: 5.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
queryYes
resultsYes
empty_reasonNoWhy a strict content_locales filter returned nothing.
requested_localeYesThe locale this search asked for.
substituted_countYesHow many results are not in the requested language.
unavailable_surfacesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / content_locales / description
      Previous value: -"Keep only results actually written in these languages. `locale` is a presentation preference and still returns substitutions, labelled; this is the hard filter. A result that cannot declare its language is dropped."New value: +"Keep only results whose text is entirely in these languages. `locale` is a presentation preference and still returns substitutions, labelled; this is the hard filter. A result that mixes a language you did not allow is dropped, and so is one that cannot declare its languages."
    • addedOutput schema / properties / results / items / properties / content_locale / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / results / items / properties / content_locale / description
      Previous value: -"The language this result is actually in."New value: +"The single language the whole result is in, or null when it mixes languages. Filter on content_locales, not on this."
    • removedOutput schema / properties / results / items / properties / content_locale / type
      Removed value: -"string"
    • addedOutput schema / properties / results / items / properties / content_locales
      Added value: +{
      +  "description": "Every language this result's text is actually in. More than one means the result mixes them — a localised title with an English summary, for instance.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / results / items / properties / fallback / description
      Previous value: -"True when content_locale differs from the requested locale."New value: +"True unless the whole result is in the requested language."
  2. Changed11 schema fields changed
    • addedInput schema / properties / content_locales
      Added value: +{
      +  "description": "Keep only results actually written in these languages. `locale` is a presentation preference and still returns substitutions, labelled; this is the hard filter. A result that cannot declare its language is dropped.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / surfaces / description
      Previous value: -"Restrict the search. Omit to search all five surfaces."New value: +"Restrict the search. Omit to search all six surfaces."
    • changedInput schema / properties / surfaces / items / enum
      Previous value: -[
      -  "core",
      -  "articles",
      -  "labs",
      -  "claims",
      -  "homeric_atlas"
      -]New value: +[
      +  "core",
      +  "articles",
      +  "labs",
      +  "claims",
      +  "homeric_atlas",
      +  "benchmarks"
      +]
    • addedOutput schema / properties / empty_reason
      Added value: +{
      +  "description": "Why a strict content_locales filter returned nothing.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / requested_locale
      Added value: +{
      +  "description": "The locale this search asked for.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / content_locale
      Added value: +{
      +  "description": "The language this result is actually in.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / fallback
      Added value: +{
      +  "description": "True when content_locale differs from the requested locale.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / results / items / properties / surface / enum
      Previous value: -[
      -  "core",
      -  "articles",
      -  "labs",
      -  "claims",
      -  "homeric_atlas"
      -]New value: +[
      +  "core",
      +  "articles",
      +  "labs",
      +  "claims",
      +  "homeric_atlas",
      +  "benchmarks"
      +]
    • addedOutput schema / properties / substituted_count
      Added value: +{
      +  "description": "How many results are not in the requested language.",
      +  "type": "number"
      +}
    • changedOutput schema / properties / unavailable_surfaces / items / properties / surface / enum
      Previous value: -[
      -  "articles",
      -  "labs"
      -]New value: +[
      +  "articles",
      +  "labs",
      +  "benchmarks"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "query",
      -  "count",
      -  "results",
      -  "unavailable_surfaces"
      -]New value: +[
      +  "query",
      +  "requested_locale",
      +  "count",
      +  "results",
      +  "substituted_count",
      +  "unavailable_surfaces"
      +]
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context beyond the annotations: results carry a suggested next tool, and query shapes are routed toward Labs or benchmarks. It does not, however, disclose latency, result-size or pagination behavior.

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?

Three sentences, front-loaded with the scope before the usage guidance and the routing note. The surface enumeration is dense but each item earns its place by telling the agent what is reachable in one call.

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

Completeness5/5

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

An output schema exists, so return-value shape need not be restated, yet the description still contributes the key post-call behavior (results name the next tool). For a broad federated search, everything an agent needs to decide to call it and what to do after is present.

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%, so all five parameters — including the tricky distinction between `locale` and `content_locales` — are already documented in the schema. The description adds no parameter-level detail, so the baseline 3 applies.

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 (Search) and enumerates exactly what resources are covered — core corpus, essays, Labs, claims, Homeric Atlas, benchmarks — in one call. This clearly separates it from siblings like `search` and `search_articles`, which cover narrower scopes.

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?

Explicitly says 'Use this first when a natural-language question might require a calculation, a long-form essay, a claim audit or a model choice' and then names the routing destinations for two classes of query. It gives both the when-to-use condition and the when-to-defer alternatives.

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.