Skip to main content
Glama

stackexchange-mcp-server

Server Details

Search Stack Exchange questions, fetch Q&A threads as markdown, look up tag FAQs and user profiles.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/stackexchange-mcp-server
GitHub Stars
2
Server Listing
@cyanheads/stackexchange-mcp-server
Tool DescriptionsA

Average 4.4/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: site discovery, tag-based FAQ retrieval, free-text search, full thread retrieval, and user profile lookup. The descriptions explicitly cross-reference when to use which, eliminating ambiguity.

Naming Consistency5/5

All tools share the stackexchange_ prefix and follow a consistent verb_noun pattern (get_, list_, search_). The naming style is uniform and predictable.

Tool Count5/5

Five tools is well-scoped for a read-only Stack Exchange client. Each tool covers a distinct, necessary operation without redundancy or bloat.

Completeness5/5

The tool surface covers the full read-only workflow: discover sites, search questions, retrieve tag FAQs, fetch full threads with answers, and inspect user profiles. No significant gaps remain for the intended domain.

Available Tools

5 tools
stackexchange_get_tag_faqGet Stack Exchange Tag FAQA
Read-onlyIdempotent
Inspect

Fetch the highest-voted answered questions for a tag on a Stack Exchange site — the canonical "best answers in X" list. Returns a question list without bodies; use stackexchange_get_thread to read the full body and answers for any result. Use this tool to find the authoritative community resources on a topic (e.g. tag "javascript" on stackoverflow). Use stackexchange_search_questions for free-text search rather than tag-based browsing.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to look up (e.g. "python", "javascript", "docker"). Must match exactly.
siteNoStack Exchange site — use the api_site_parameter value (e.g. "stackoverflow", "superuser"). Defaults to "stackoverflow". Call stackexchange_list_sites to discover valid values.stackoverflow
pageSizeNoNumber of results to return (1–30, default 10).

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe pageSize cap applied to this request.
tagNoTag name used for this FAQ lookup.
siteNoStack Exchange site api_site_parameter used for this lookup.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of results returned.
noticeNoActionable guidance when results are empty or filtered.
quotaMaxNoMaximum API quota calls per day (300 keyless, ~10,000 with API key).
questionsNoHighest-voted answered questions for the specified tag, ordered by votes.
truncatedNoTrue when results were capped at pageSize.
attributionNoContent license notice. Stack Exchange content is licensed under CC BY-SA 4.0 and requires attribution.
quotaRemainingNoRemaining API quota calls for the current day.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the description doesn't need to restate safety. It adds that the return is 'a question list without bodies,' which is crucial for agent expectations, and suggests a follow-up tool. It doesn't mention pagination or rate limits, but those are covered by the pageSize parameter and annotations.

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 sentences: purpose, return limitation, and usage guidance. Each sentence adds distinct value, and the most important detail (what it does) is first. No redundant clauses.

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 read-only, idempotent tool with clear schema and annotations, the description covers the core: what it returns, when to use it, and how to get more detail. The only minor gap is explaining the 'highest-voted' ordering, but that's implied by 'canonical best answers.'

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?

All three parameters have complete descriptions in the schema (100% coverage), so the description adds no new meaning. It does reinforce tag exact matching, but that's already in the schema. Baseline 3 is appropriate.

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 opens with a specific verb and resource: 'Fetch the highest-voted answered questions for a tag' and calls it the canonical 'best answers in X' list. It immediately distinguishes from siblings by pointing to stackexchange_get_thread for full bodies and stackexchange_search_questions for free-text search.

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?

It gives explicit when-to-use: 'Use this tool to find the authoritative community resources on a topic' and states when not to: 'Use stackexchange_search_questions for free-text search rather than tag-based browsing.' It also mentions the alternative for reading full content, stackexchange_get_thread.

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

stackexchange_get_threadGet Stack Exchange Q&A ThreadA
Read-onlyIdempotent
Inspect

Fetch a complete Q&A thread — question body and all answers, accepted answer first then sorted by score, rendered as clean markdown with fenced code blocks. Accepts an integer question ID or a full Stack Exchange question URL (e.g. "https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster" or "11227809"). HTML is normalized to markdown automatically; attribution (author + link) included per CC BY-SA 4.0. Get question IDs from stackexchange_search_questions or stackexchange_get_tag_faq.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoStack Exchange site — use the api_site_parameter value (e.g. "stackoverflow", "superuser"). Defaults to "stackoverflow". Must match the site where the question lives. Call stackexchange_list_sites to discover valid values.stackoverflow
maxAnswersNoMaximum number of answers to include (1–100, default 10). Answers are sorted: accepted first, then by score.
questionIdOrUrlYesNumeric question ID (e.g. "11227809") or a full Stack Exchange question URL (e.g. "https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster"). The integer immediately following /questions/ is extracted from URLs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe maxAnswers cap applied to this request.
linkNoDirect URL to the question.
tagsNoTags applied to this question.
errorNoPresent when the call failed. Absent on success.
scoreNoQuestion score (upvotes minus downvotes).
shownNoNumber of answers returned.
titleNoQuestion title.
answersNoAnswers sorted: accepted answer first, then by score descending.
quotaMaxNoMaximum API quota calls per day (300 keyless, ~10,000 with API key).
truncatedNoTrue when answers were capped at maxAnswers.
authorLinkNoQuestion author profile URL when available.
authorNameNoQuestion author display name when available.
questionIdNoNumeric question ID — identifies this thread on the site.
answerCountNoTotal answers the question has upstream. When greater than the returned answers[] length, more answers exist — raise maxAnswers to fetch them.
authorUserIdNoQuestion author numeric user ID when available — pass to stackexchange_get_user to fetch the full profile.
bodyMarkdownNoQuestion body normalized from HTML to markdown.
quotaRemainingNoRemaining API quota calls for the current day.
acceptedAnswerIdNoID of the accepted answer when one exists.
Behavior4/5

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

Beyond the readOnlyHint, openWorldHint, and idempotentHint annotations, the description discloses several behavioral traits: output normalization to markdown, HTML-to-markdown conversion, attribution per CC BY-SA 4.0, answer sorting (accepted first then score), and the acceptance of both ID and URL with URL parsing. These details add value and imply a consistent, read-only operation.

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 well-structured and front-loaded: the first sentence states the core purpose and output format, the second explains accepted inputs with a concrete example, and the third covers markdown normalization and attribution. Each sentence earns its place with no redundancy, keeping it concise yet informative.

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?

Given the presence of an output schema (indicated true) and the rich parameter descriptions, the description covers the essential operational aspects: input forms, output formatting, sorting, attribution, and source identification. It omits details like error handling or rate limits, but these are not critical for a read-only tool with existing structured schema context, so the description is sufficiently complete.

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 comprehensive descriptions for all three parameters (site, maxAnswers, questionIdOrUrl) covering format, defaults, constraints, and examples. The tool description reiterates some of this (accepting ID or URL, sorting) but adds no new semantic meaning beyond what the schema conveys, so baseline 3 is appropriate given 100% schema coverage.

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 states a specific verb 'Fetch' with a precise resource 'complete Q&A thread', and distinguishes the tool by detailing the output: question body plus all answers, accepted answer first, sorted by score, rendered as markdown. It also differentiates from siblings by referencing search_questions and get_tag_faq as sources for IDs, making its role clear.

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?

It explicitly tells the agent where to obtain question IDs ('Get question IDs from stackexchange_search_questions or stackexchange_get_tag_faq'), which implies this tool is for fetching a specific thread once an ID is known. While it does not state 'use this when you have an ID' or list exclusions, the reference to siblings as ID sources gives adequate contextual guidance.

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

stackexchange_get_userGet Stack Exchange User ProfileA
Read-onlyIdempotent
Inspect

Fetch a Stack Exchange user profile by numeric user ID: reputation, badge counts, top tags by answer score, and account metadata. Useful for credibility context on an answer author — pass the authorUserId from any question or answer in stackexchange_get_thread output. Returns profile fields plus up to 10 top tags by answer score.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoStack Exchange site — use the api_site_parameter value (e.g. "stackoverflow", "superuser"). Defaults to "stackoverflow". Call stackexchange_list_sites to discover valid values.stackoverflow
userIdYesNumeric user ID — use the authorUserId field from a question or answer in stackexchange_get_thread output.

Output Schema

ParametersJSON Schema
NameRequiredDescription
linkNoDirect URL to the user profile.
errorNoPresent when the call failed. Absent on success.
userIdNoNumeric user ID on this Stack Exchange site.
topTagsNoTop tags by answer score (up to 10). Empty array for new users with no answers.
locationNoUser-provided location string when available.
quotaMaxNoMaximum API quota calls per day (300 keyless, ~10,000 with API key).
reputationNoUser reputation score.
websiteUrlNoUser-provided website URL when available.
answerCountNoTotal number of answers posted when provided by the API.
badgeCountsNoBadge counts when provided by the API.
displayNameNoDisplay name shown on the site.
questionCountNoTotal number of questions posted when provided by the API.
quotaRemainingNoRemaining API quota calls for the current day.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds behavioral detail about the returned data, including the cap of 10 top tags by answer score, 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?

Three sentences with no filler: the first states the core operation, the second explains why and how to use it, and the third summarizes output scope. Information is front-loaded and every sentence earns its place.

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?

For a two-parameter read-only tool with a full input schema and an output schema present, the description provides everything needed to invoke it correctly: input source, purpose, and output characteristics. No critical usage context 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?

Schema description coverage is 100%, so the schema fully documents both userId and site. The description reinforces how to obtain the userId, but largely repeats information already present in the schema rather than adding new parameter-level meaning.

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 states a specific verb and resource ('Fetch a Stack Exchange user profile by numeric user ID') and enumerates the returned content (reputation, badge counts, top tags, account metadata). It clearly differentiates from sibling search and thread tools by framing the result as credibility context on an answer author.

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 concrete when-to-use guidance: use it for credibility context and pass the authorUserId from stackexchange_get_thread output. It provides clear context but does not explicitly state when not to use it or name alternatives to exclude.

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

stackexchange_list_sitesList Stack Exchange SitesA
Read-onlyIdempotent
Inspect

Enumerate all sites in the Stack Exchange network — name, api_site_parameter, audience, and URL. The api_site_parameter value is what other tools accept as the site input (e.g. "stackoverflow", "superuser", "serverfault"). Results are fetched live and optionally filtered by name. Use this tool to discover valid site parameters before calling other stackexchange_* tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional case-insensitive name filter — returns only sites whose name contains all provided tokens. Omit to return all sites.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
sitesNoStack Exchange network sites matching the optional name filter.
noticeNoActionable guidance when results are empty or filtered.
quotaMaxNoMaximum API quota calls per day (300 keyless, ~10,000 with API key).
totalCountNoTotal number of sites returned after filtering.
quotaRemainingNoRemaining API quota calls for the current day.
Behavior5/5

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

Annotations already cover readOnlyHint and idempotentHint, so the description takes advantage of the lower bar by adding specific behavioral context such as 'Results are fetched live' and the fact that the output includes `api_site_parameter` values for validation. This goes beyond the structured annotations and clarifies dynamic, network-dependent behavior without contradicting them.

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 remarkably efficient, with three sentences that front-load purpose, then details of the output, and finally usage guidance. No sentence is wasted; the structure flows logically from what the tool does to how to use it.

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?

Given an output schema exists and there's only one optional parameter, the description is fully sufficient. It explains the returned fields, the overall purpose, and the relationship to sibling tools, leaving no ambiguities about why or when this tool should be invoked.

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 provides a thorough description of the only parameter `filter`, with details about case insensitivity and token matching. The main description adds only high-level confirmation that results are 'optionally filtered by name,' which does not meaningfully deepen the schema's already explicit semantics—deserving the baseline score of 3.

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 'Enumerate' and precise resource: all Stack Exchange network sites, listing their fields. Explicitly ties the tool's output (api_site_parameter) to what sibling tools accept as the `site` input, clearly distinguishing this discovery/listing tool from the other stackexchange_* tools.

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?

Explicitly instructs 'Use this tool to discover valid site parameters before calling other stackexchange_* tools,' establishing when to use it and why. It also conditions the optional filter behavior ('optionally filtered by name'), which helps the agent decide when to omit or provide the parameter.

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

stackexchange_search_questionsSearch Stack Exchange QuestionsA
Read-onlyIdempotent
Inspect

Search questions across a Stack Exchange site. Returns ranked questions with title, score, answer count, accepted status, tags, and excerpt — no bodies at this stage. Results supply question_id values for stackexchange_get_thread, which fetches the full question body and all answers. Use the site parameter to target a specific community (e.g. "stackoverflow", "superuser", "unix"); call stackexchange_list_sites to discover valid site values.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoStack Exchange site to search — use the api_site_parameter value (e.g. "stackoverflow", "superuser", "serverfault"). Defaults to "stackoverflow". Call stackexchange_list_sites to discover valid values.stackoverflow
sortNoResult ordering: "relevance" (default, best match), "votes" (highest score first), "activity" (most recently active), "newest" (most recently created).relevance
tagsNoFilter results to questions with all specified tags.
queryYesFull-text search query (e.g. "python async generator send value").
minScoreNoMinimum question score — excludes questions with lower scores. Setting minScore orders results by score (votes), which may differ from the requested sort.
pageSizeNoNumber of results to return (1–30, default 10).
acceptedOnlyNoWhen true, return only questions that have an accepted answer.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe pageSize cap applied to this request.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of results returned.
noticeNoActionable guidance when results are empty or filtered.
quotaMaxNoMaximum API quota calls per day (300 keyless, ~10,000 with API key).
questionsNoQuestions matching the search query, ordered by the specified sort.
truncatedNoTrue when results were capped at pageSize.
attributionNoContent license notice. Stack Exchange content is licensed under CC BY-SA 4.0 and requires attribution.
quotaRemainingNoRemaining API quota calls for the current day.
Behavior4/5

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

Annotations already cover read-only, idempotent, and open-world behavior, and the description does not contradict them. It adds useful non-obvious context: results are ranked, bodies are omitted, and returned question_ids feed stackexchange_get_thread. It does not discuss pagination or rate limits, but those are not required for a read-only search with an output schema.

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?

Three front-loaded sentences: core action first, then return-value scope and a key limitation, then downstream workflow. Every sentence contributes distinct information, and the prose is compact without restating the schema at length.

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 is well-covered by the combination of a 100%-described schema, read-only/idempotent/open-world annotations, an output schema, and a description that explains the search-to-get_thread workflow and how to discover valid sites. An agent has everything needed to decide when to call it and how to invoke it correctly; the only implicit contrast with stackexchange_get_tag_faq is not material to correct invocation.

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 the input schema already documents every parameter's meaning, defaults, and constraints. The description mentions the `site` parameter and list_sites, but that guidance duplicates the schema rather than adding new semantics. Baseline 3 is appropriate because the schema carries the load and the description adds only marginal integration context.

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 opens with a specific verb+resource pair ('Search questions across a Stack Exchange site') and names the exact returned fields (title, score, answer count, accepted status, tags, excerpt), explicitly noting bodies are not included. It differentiates from stackexchange_get_thread by framing search results as providers of question_id values for that sibling, so an agent can distinguish searching from fetching full threads.

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?

It embeds the tool in a workflow: search to find ranked questions, then call stackexchange_get_thread for full bodies/answers, and call stackexchange_list_sites when site values are needed. 'No bodies at this stage' acts as a when-not signal for body retrieval, and the alternatives are named explicitly. This gives an agent clear decision guidance without needing to open sibling schemas.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Wraps the StackExchange API v2.3 to enable reading StackExchange data (questions, answers, etc.) without authentication. Allows AI agents to query StackExchange content through natural language or direct tool calls.
    10
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides LLMs with tools to search Stack Overflow for programming solutions, helping ground responses in real-world code examples.

View all MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.