Skip to main content
Glama
iit-mcp-hudu

iit-mcp-hudu

Get Article Context

hudu_get_article_context
Read-only

Fetch an article with its company and folder context using a numeric ID to retrieve Markdown body and metadata; unauthorized sub-lists return UNAUTHORIZED.

Instructions

Fetch an article with its company and folder context (ArticleContext). Pass the numeric id, not a slug. Bodies here are Markdown; a refused sub-list answers UNAUTHORIZED.

Input Schema

NameRequiredDescriptionDefault
idYesNumeric article id; articles.resolve finds it.
optsNo

Output Schema

NameRequiredDescriptionDefault
contextYes
skippedNo
markdown_lossyNo
markdown_lossy_codesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.6.0
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / id / description
      Previous value: -"Numeric article id (hudu_get_article_context takes the id; use hudu_search or hudu_read / hudu_write / hudu_delete with articles.resolve to find it)."New value: +"Numeric article id; articles.resolve finds it."
    • removedInput schema / properties / id / maximum
      Removed value: -9007199254740991
    • changedInput schema / properties / opts / properties / expand / description
      Previous value: -"Return the full typed records instead of the compact summaries (default false)."New value: +"Full records, not compact summaries."
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / properties / markdown_lossy
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / markdown_lossy_codes
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / skipped
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. First observedv0.2.3

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint; the description supplies behavioral detail they don't cover: bodies are returned as Markdown, and an unauthorized sub-list is surfaced as UNAUTHORIZED rather than silently dropped. It doesn't mention pagination or size limits, but the error-shape and content-format disclosures are substantive additions.

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 short sentences, front-loaded with what is returned, then how to address it, then format/error behavior. The UNAUTHORIZED clause is terse to the point of being slightly cryptic, but nothing is wasted.

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 two-parameter read with an output schema, it covers identity constraints, body format, and an error convention — enough to call it correctly. The remaining gap is expand semantics, which an agent must dig out of the nested schema.

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?

With 50% schema coverage, the description compensates on `id` by reinforcing numeric-not-slug and naming articles.resolve. It says nothing about `opts.expand`, whose only meaning lives in the schema's one-line description, so half the surface is undocumented by the description.

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?

States a specific verb and resource plus its scope: fetch an article together with company and folder context (ArticleContext). That distinguishes it from the generic hudu_read and from the sibling context tools (hudu_get_company_context, hudu_get_asset_context) by naming the resolved entity type.

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?

Adds a real selection constraint — 'Pass the numeric `id`, not a slug' — and points at articles.resolve for finding the id via the schema. But it never says when to prefer this over hudu_get_folder, hudu_read, or the other context tools, leaving the choice to inference from naming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.