Skip to main content
Glama

Only Fake Facts

List topics

list_topics
Read-onlyIdempotent

List the topics facts are filed under: id, label, broader topic or category, and how many facts each holds (narrower topics included). Each topic is a real thing; every fact about it is false. The full vocabulary, with Wikidata matches, is at /taxonomy.json.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_topics"
  }
}

Input Schema

NameRequiredDescriptionDefault
langNoLanguage of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English.

Output Schema

NameRequiredDescriptionDefault
langNo
siteNo
topicsYes
disclaimerYesEvery fact is false.
vocabularyNo
schema_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "disclaimer": {
      +      "description": "Every fact is false.",
      +      "type": "string"
      +    },
      +    "lang": {
      +      "type": "string"
      +    },
      +    "schema_version": {
      +      "type": "integer"
      +    },
      +    "site": {
      +      "type": "string"
      +    },
      +    "topics": {
      +      "items": {
      +        "properties": {
      +          "broader": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "count": {
      +            "type": "integer"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "label": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "vocabulary": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "disclaimer",
      +    "topics"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this a read-only, idempotent, closed-world operation, so the safety profile is covered. The description adds genuinely non-obvious behavior: fact counts include narrower topics, topics are real entities while all facts about them are false (a dataset quirk an agent could otherwise misreport), and a separate endpoint holds the complete vocabulary with Wikidata matches.

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?

Front-loaded with the resource and return shape, then two short contextual sentences. Every sentence carries information; the only mild inefficiency is that the returned fields are enumerated even though an output schema exists.

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?

For a zero-required-parameter list tool with an output schema and full annotation coverage, the description supplies what is needed to call it and to interpret results correctly, including the misleading-nature caveat and the taxonomy pointer. The remaining gap is sibling differentiation versus list_categories.

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?

There is a single optional `lang` parameter with full schema description coverage (including default resolution via Accept-Language), so the schema carries the semantics. The description says nothing about language at all, not even that labels and translations vary by locale, so it adds no meaning beyond the schema — baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource ("List the topics facts are filed under") and even enumerates the returned fields (id, label, broader topic, fact counts). It is clear what the tool does, but it never distinguishes topics from the sibling list_categories, despite mentioning "broader topic or category" — an agent must guess which of the two lists to call.

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?

Usage is only implied: the tool surfaces the vocabulary you would use to pick topics when browsing or filtering facts. There is no explicit when-to-use statement, no when-not-to-use, and no routing to list_categories or search_facts. The pointer to /taxonomy.json for the "full vocabulary" hints at a relationship with another resource but does not clarify selection.

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