Skip to main content
Glama

Search Articles

search_articles
Read-onlyIdempotent

Search spaceflight news articles by keyword. Returns matching articles with title, summary, URL, and publication date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return (default 10, max 100)
queryYesSearch query (e.g. "SpaceX Starship launch")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query used
totalYesTotal number of matching articles
articlesYes
returnedYesNumber of articles returned in this response

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "SpaceX Starship launch"
      +  },
      +  {
      +    "limit": 15,
      +    "query": "NASA Moon mission"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "articles": {
      +      "items": {
      +        "properties": {
      +          "id": {
      +            "description": "Article ID",
      +            "type": "number"
      +          },
      +          "image_url": {
      +            "description": "Article image URL",
      +            "type": "string"
      +          },
      +          "published_at": {
      +            "description": "Publication date (ISO 8601)",
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "News site source",
      +            "type": "string"
      +          },
      +          "summary": {
      +            "description": "Article summary",
      +            "type": "string"
      +          },
      +          "title": {
      +            "description": "Article title",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Article URL",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title",
      +          "summary",
      +          "url",
      +          "image_url",
      +          "source",
      +          "published_at"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "description": "The search query used",
      +      "type": "string"
      +    },
      +    "returned": {
      +      "description": "Number of articles returned in this response",
      +      "type": "number"
      +    },
      +    "total": {
      +      "description": "Total number of matching articles",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "query",
      +    "total",
      +    "returned",
      +    "articles"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • removedInput schema / examples
      Removed value: -[
      -  {
      -    "limit": 10,
      -    "page": 1,
      -    "tag": "typescript"
      -  },
      -  {
      -    "page": 2,
      -    "tag": "rust"
      -  }
      -]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "articles": {
      -      "description": "List of article summaries",
      -      "items": {
      -        "properties": {
      -          "author": {
      -            "description": "Article author information",
      -            "properties": {
      -              "name": {
      -                "description": "Author full name",
      -                "type": "string"
      -              },
      -              "username": {
      -                "description": "Author username",
      -                "type": "string"
      -              }
      -            },
      -            "type": [
      -              "object",
      -              "null"
      -            ]
      -          },
      -          "comments": {
      -            "description": "Count of comments",
      -            "type": "number"
      -          },
      -          "description": {
      -            "description": "Article description or excerpt",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "id": {
      -            "description": "Article numeric ID",
      -            "type": "number"
      -          },
      -          "published_at": {
      -            "description": "Publication timestamp (ISO 8601 format)",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "reactions": {
      -            "description": "Count of public reactions",
      -            "type": "number"
      -          },
      -          "reading_time_minutes": {
      -            "description": "Estimated reading time in minutes",
      -            "type": "number"
      -          },
      -          "tags": {
      -            "description": "List of tags associated with article",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "title": {
      -            "description": "Article title",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "Article URL",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "title",
      -          "description",
      -          "url",
      -          "published_at",
      -          "tags",
      -          "reading_time_minutes",
      -          "reactions",
      -          "comments",
      -          "author"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "page": {
      -      "description": "Current page number",
      -      "type": "number"
      -    }
      -  },
      -  "required": [
      -    "page",
      -    "articles"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "articles": {
      +      "description": "List of article summaries",
      +      "items": {
      +        "properties": {
      +          "author": {
      +            "description": "Article author information",
      +            "properties": {
      +              "name": {
      +                "description": "Author full name",
      +                "type": "string"
      +              },
      +              "username": {
      +                "description": "Author username",
      +                "type": "string"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "comments": {
      +            "description": "Count of comments",
      +            "type": "number"
      +          },
      +          "description": {
      +            "description": "Article description or excerpt",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Article numeric ID",
      +            "type": "number"
      +          },
      +          "published_at": {
      +            "description": "Publication timestamp (ISO 8601 format)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "reactions": {
      +            "description": "Count of public reactions",
      +            "type": "number"
      +          },
      +          "reading_time_minutes": {
      +            "description": "Estimated reading time in minutes",
      +            "type": "number"
      +          },
      +          "tags": {
      +            "description": "List of tags associated with article",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "title": {
      +            "description": "Article title",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Article URL",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title",
      +          "description",
      +          "url",
      +          "published_at",
      +          "tags",
      +          "reading_time_minutes",
      +          "reactions",
      +          "comments",
      +          "author"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "page": {
      +      "description": "Current page number",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "page",
      +    "articles"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "limit": 10,
      +    "page": 1,
      +    "tag": "typescript"
      +  },
      +  {
      +    "page": 2,
      +    "tag": "rust"
      +  }
      +]
  5. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds the behavioral detail that it returns articles with title, summary, URL, and publication date, which is useful beyond the annotations.

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?

The description is two short sentences: the first states the primary action, the second the return fields. It is front-loaded and contains zero wasted words.

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?

With only two parameters, both fully described in the schema, an output schema present, and annotations covering safety, the description provides enough context to select and invoke the tool correctly. No critical information is missing.

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?

The input schema already provides full descriptions for both parameters (query and limit) with 100% coverage. The description's keyword reference adds no new parameter semantics, so it stays at the baseline.

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?

The description succinctly states that the tool searches spaceflight news articles by keyword, which is a specific verb-resource pair. It distinguishes itself from siblings like get_articles by focusing on keyword-based search over a defined article set.

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?

The description gives clear context: use it to search spaceflight news articles by keyword. However, it does not mention any alternatives or exclusive conditions (e.g., when to use get_articles instead), so it stops short of a 5.

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.