Skip to main content
Glama

Get ReliefWeb Training

reliefweb_get_training
Read-onlyIdempotent

Fetch a training listing by ReliefWeb numeric ID with the full description, registration instructions, event link, cost and fee information, dates, languages, and organizing source. Use after reliefweb_search_training, which returns summaries without the description, registration instructions, or cost detail. Reaches concluded listings as well as current ones. A record over the response budget comes back as a section outline naming every section and its byte size; re-call with sections to pull only the ones needed. Nothing is truncated on either path.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

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

Input Schema

NameRequiredDescriptionDefault
idYesReliefWeb numeric training ID. Obtained from reliefweb_search_training results.
sectionsNoSections of the training record to return, named by the sections[].name values an outline response lists. Omit for the whole record, or for a section outline when the record is over the response budget. Records are sparse, so a name this record does not carry is rejected with the names it does. Identity metadata — the record's ID, its name, and its canonical URL — comes back alongside whatever is requested. The call is self-contained — the record is re-fetched and sliced, so no prior call has to be repeated.

Output Schema

NameRequiredDescriptionDefault
idNoReliefWeb numeric training ID.
urlNoReliefWeb node URL for this training listing.
bodyNoFull training description (Markdown) — content, audience, and logistics.
costNoCost class as ReliefWeb records it, such as free or fee-based.
kindNofull when the record — or the sections asked for — is returned in whole; outline when the record exceeded the response budget and only its section index is returned.
errorNoPresent when the call failed. Absent on success.
titleNoTraining title.
typesNoTraining type names, such as Training/Workshop or Course.
citiesNoHost cities, for on-site training.
statusNoListing status: published while the training is current, expired once concluded.
themesNoHumanitarian theme/sector names.
dateEndNoTraining end date (ISO 8601).
formatsNoTraining format names: on-site or online.
sourcesNoOrganizing organizations (short names).
eventUrlNoThe organizer's own page for this training, when published.
sectionsNoEvery section of the record, largest first. Pass the names back in `sections` to retrieve them.
urlAliasNoCanonical ReliefWeb URL for this training listing.
countriesNoCountries tagged on this training.
dateStartNoTraining start date (ISO 8601).
languagesNoLanguage codes of the listing (ISO 639-1).
dateCreatedNoDate this listing was indexed (ISO 8601).
howToRegisterNoRegistration instructions (Markdown) as published by the organizer.
outlineNoticeNoHow to re-call this tool for specific sections of the record.
feeInformationNoFee detail as published by the organizer — amounts, inclusions, and conditions.
careerCategoriesNoCareer category names (humanitarian tracks).
dateRegistrationNoRegistration deadline (ISO 8601).
trainingLanguagesNoLanguage codes the training is delivered in (ISO 639-1).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / body / description
      Previous value: -"Full training description (HTML) — content, audience, and logistics."New value: +"Full training description (Markdown) — content, audience, and logistics."
    • changedOutput schema / properties / howToRegister / description
      Previous value: -"Registration instructions (HTML) as published by the organizer."New value: +"Registration instructions (Markdown) as published by the organizer."
  2. Changed1 schema field changed
    • changedInput schema / properties / sections / description
      Previous value: -"Sections of the training record to return, named by the sections[].name values an outline response lists. Omit for the whole record, or for a section outline when the record is over the response budget. Identity metadata — the record's ID, its name, and its canonical URL — comes back alongside whatever is requested. The call is self-contained — the record is re-fetched and sliced, so no prior call has to be repeated."New value: +"Sections of the training record to return, named by the sections[].name values an outline response lists. Omit for the whole record, or for a section outline when the record is over the response budget. Records are sparse, so a name this record does not carry is rejected with the names it does. Identity metadata — the record's ID, its name, and its canonical URL — comes back alongside whatever is requested. The call is self-contained — the record is re-fetched and sliced, so no prior call has to be repeated."
  3. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "kind"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: No training listing found with the given ID. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "not_found"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "kind"
      -]
  4. Added

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/open-world, and the description adds non-obvious behavior annotations don't: concluded listings are reachable, over-budget records come back as a section outline with byte sizes, and nothing is truncated on either path. The outline/sections mechanics are described somewhat redundantly with the schema's sections description, which costs a bit of uniqueness against a very strong baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Four sentences, front-loaded with what is fetched, then when to use it, then the budget/outline edge case. Every sentence carries distinct information; no restating of the title or name.

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?

Output schema exists, so return shapes needn't be explained, and the description covers the one thing the schema can't: the two-path fetch behavior (full record vs. section outline) and the no-truncation guarantee. For a two-parameter read tool with rich schema and annotations, nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description earns a bump by framing the sections parameter operationally — 're-call with sections to pull only the ones needed' — which explains intent rather than just shape. It stops short of adding format detail beyond the schema, which already specifies names come from outline responses.

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 (fetch) and resource (a training listing by ReliefWeb numeric ID) and enumerates the payload it returns (description, registration instructions, event link, cost, dates, languages, source). It explicitly distinguishes itself from reliefweb_search_training, so an agent can route without opening either schema.

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?

Gives a concrete sequencing rule — 'Use after reliefweb_search_training, which returns summaries without the description, registration instructions, or cost detail' — naming both the alternative and the exact reason to escalate to this tool. Also states the re-call-with-sections path, so the two-call pattern is unambiguous.

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.