Skip to main content
Glama

Search Questions

search_questions
Read-onlyIdempotent

Search for questions on StackOverflow or any StackExchange site. Returns title, body, score, answer count, tags, and link.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteNoStackExchange site slug (default: stackoverflow). Examples: serverfault, superuser, askubuntu, math, physics
limitNoNumber of results to return (1-20, default 5)
queryYesSearch query string
_apiKeyNoOptional — a StackExchange API key (free, 10k/day) for a dedicated quota. The gateway supplies a platform key; pass your own only to override.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteYesThe StackExchange site slug used for the search
countYesNumber of questions returned
has_moreYesWhether there are more results available
questionsYesArray of search result questions
quota_remainingYesRemaining API quota for this user

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • addedInput schema / properties / _apiKey
      Added value: +{
      +  "description": "Optional — a StackExchange API key (free, 10k/day) for a dedicated quota. The gateway supplies a platform key; pass your own only to override.",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "python async await"
      +  },
      +  {
      +    "limit": 10,
      +    "query": "how to install nodejs",
      +    "site": "askubuntu"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Number of questions returned",
      +      "type": "number"
      +    },
      +    "has_more": {
      +      "description": "Whether there are more results available",
      +      "type": "boolean"
      +    },
      +    "questions": {
      +      "description": "Array of search result questions",
      +      "items": {
      +        "properties": {
      +          "answer_count": {
      +            "description": "Number of answers to the question",
      +            "type": "number"
      +          },
      +          "body": {
      +            "description": "Question body HTML content",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "created": {
      +            "description": "ISO 8601 creation timestamp",
      +            "type": "string"
      +          },
      +          "is_answered": {
      +            "description": "Whether the question has an accepted answer",
      +            "type": "boolean"
      +          },
      +          "last_activity": {
      +            "description": "ISO 8601 last activity timestamp",
      +            "type": "string"
      +          },
      +          "link": {
      +            "description": "URL to the question on StackExchange",
      +            "type": "string"
      +          },
      +          "question_id": {
      +            "description": "Unique question identifier",
      +            "type": "number"
      +          },
      +          "score": {
      +            "description": "Question score (votes)",
      +            "type": "number"
      +          },
      +          "tags": {
      +            "description": "Question tags",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "title": {
      +            "description": "Question title",
      +            "type": "string"
      +          },
      +          "view_count": {
      +            "description": "Number of times the question has been viewed",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "question_id",
      +          "title",
      +          "body",
      +          "score",
      +          "answer_count",
      +          "is_answered",
      +          "tags",
      +          "link",
      +          "view_count",
      +          "created",
      +          "last_activity"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "quota_remaining": {
      +      "description": "Remaining API quota for this user",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "site": {
      +      "description": "The StackExchange site slug used for the search",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "site",
      +    "count",
      +    "has_more",
      +    "quota_remaining",
      +    "questions"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • removedInput schema / examples
      Removed value: -[
      -  {
      -    "query": "python async await"
      -  },
      -  {
      -    "limit": 10,
      -    "query": "how to install nodejs",
      -    "site": "askubuntu"
      -  }
      -]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "count": {
      -      "description": "Number of questions returned",
      -      "type": "number"
      -    },
      -    "has_more": {
      -      "description": "Whether there are more results available",
      -      "type": "boolean"
      -    },
      -    "questions": {
      -      "description": "Array of search result questions",
      -      "items": {
      -        "properties": {
      -          "answer_count": {
      -            "description": "Number of answers to the question",
      -            "type": "number"
      -          },
      -          "body": {
      -            "description": "Question body HTML content",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "created": {
      -            "description": "ISO 8601 creation timestamp",
      -            "type": "string"
      -          },
      -          "is_answered": {
      -            "description": "Whether the question has an accepted answer",
      -            "type": "boolean"
      -          },
      -          "last_activity": {
      -            "description": "ISO 8601 last activity timestamp",
      -            "type": "string"
      -          },
      -          "link": {
      -            "description": "URL to the question on StackExchange",
      -            "type": "string"
      -          },
      -          "question_id": {
      -            "description": "Unique question identifier",
      -            "type": "number"
      -          },
      -          "score": {
      -            "description": "Question score (votes)",
      -            "type": "number"
      -          },
      -          "tags": {
      -            "description": "Question tags",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "title": {
      -            "description": "Question title",
      -            "type": "string"
      -          },
      -          "view_count": {
      -            "description": "Number of times the question has been viewed",
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "question_id",
      -          "title",
      -          "body",
      -          "score",
      -          "answer_count",
      -          "is_answered",
      -          "tags",
      -          "link",
      -          "view_count",
      -          "created",
      -          "last_activity"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "quota_remaining": {
      -      "description": "Remaining API quota for this user",
      -      "type": [
      -        "number",
      -        "null"
      -      ]
      -    },
      -    "site": {
      -      "description": "The StackExchange site slug used for the search",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "site",
      -    "count",
      -    "has_more",
      -    "quota_remaining",
      -    "questions"
      -  ],
      -  "type": "object"
      -}New value: +null
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Number of questions returned",
      +      "type": "number"
      +    },
      +    "has_more": {
      +      "description": "Whether there are more results available",
      +      "type": "boolean"
      +    },
      +    "questions": {
      +      "description": "Array of search result questions",
      +      "items": {
      +        "properties": {
      +          "answer_count": {
      +            "description": "Number of answers to the question",
      +            "type": "number"
      +          },
      +          "body": {
      +            "description": "Question body HTML content",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "created": {
      +            "description": "ISO 8601 creation timestamp",
      +            "type": "string"
      +          },
      +          "is_answered": {
      +            "description": "Whether the question has an accepted answer",
      +            "type": "boolean"
      +          },
      +          "last_activity": {
      +            "description": "ISO 8601 last activity timestamp",
      +            "type": "string"
      +          },
      +          "link": {
      +            "description": "URL to the question on StackExchange",
      +            "type": "string"
      +          },
      +          "question_id": {
      +            "description": "Unique question identifier",
      +            "type": "number"
      +          },
      +          "score": {
      +            "description": "Question score (votes)",
      +            "type": "number"
      +          },
      +          "tags": {
      +            "description": "Question tags",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "title": {
      +            "description": "Question title",
      +            "type": "string"
      +          },
      +          "view_count": {
      +            "description": "Number of times the question has been viewed",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "question_id",
      +          "title",
      +          "body",
      +          "score",
      +          "answer_count",
      +          "is_answered",
      +          "tags",
      +          "link",
      +          "view_count",
      +          "created",
      +          "last_activity"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "quota_remaining": {
      +      "description": "Remaining API quota for this user",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "site": {
      +      "description": "The StackExchange site slug used for the search",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "site",
      +    "count",
      +    "has_more",
      +    "quota_remaining",
      +    "questions"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "python async await"
      +  },
      +  {
      +    "limit": 10,
      +    "query": "how to install nodejs",
      +    "site": "askubuntu"
      +  }
      +]
  6. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool returns specific fields and supports any StackExchange site, but it does not disclose rate limits, authentication nuances, or pagination behavior. It adds some context without contradicting 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 a single sentence that is front-loaded with the action ('Search for questions') and immediately provides scope and return fields. Every word contributes value with no redundancy or vague filler.

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?

The tool has an output schema, so return values are already structured. The description covers purpose, scope, and key output fields. Combined with rich annotations and complete parameter descriptions, it is fully sufficient for an agent to select and invoke this tool correctly.

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 each parameter is already documented. The description does not add additional parameter-specific semantics beyond stating the return fields, which is implicitly tied to the query parameter but not explicitly. Baseline 3 is appropriate because the schema carries the burden.

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 uses the specific verb 'Search', identifies the resource as 'questions', and scopes to 'StackOverflow or any StackExchange site'. It also lists the return fields (title, body, score, answer count, tags, link), which clearly distinguishes it from sibling tools like get_answers or list_questions_by_tag.

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 clearly indicates when to use the tool (searching for questions across StackExchange sites), but it does not explicitly state when not to use it or mention alternatives. Sibling tools exist but are not referenced in the description, so it lacks exclusionary guidance.

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.

TDQS

A3.6/5.0
Disambiguation2/5

The StackExchange tools are distinct, but the dominating data-lookup cluster is highly ambiguous: ask_pipeworx, ask_pipeworx_beta (explicitly identical today), ask_pipeworx_grounded, deep_research, and validate_claim all route into the same underlying tool catalog. The polymorpharket tools also overlap heavily, making selection between bet_research, polymarket_edges, polymarket_arbitrage, and fill-risk checks genuinely hard.

Naming Consistency2/5

The names are all snake_case but otherwise follow no consistent pattern: bare verbs (remember, forget, subscribe), prefixed names (pipeworx_feedback, stack_get_user), composite domain names (ask_pipeworx, generate_llms_txt), and generic verbs (resolve_entity, validate_claim, search_within). The StackExchange subset itself is split between stack_get_user/stack_tags and search_questions/get_answers.

Tool Count2/5

36 tools is already in the 'too many' range for one server, and the mismatch with the server name is severe: only 5 of 36 tools relate to StackExchange. The rest form a broad Pipeworx/prediction-market data platform that would itself be oversized for a focused purpose.

Completeness2/5

For a StackExchange-focused server, the surface has core read operations but lacks question-detail-by-ID, comments, related questions, or any write/community actions, and the 31 unrelated tools do not fill that gap. For the broader apparent Pipeworx platform coverage is broad, but the set has no single coherent domain against which completeness can be meaningfully judged.