Skip to main content
Glama
paabloLC

MCP Hacker News

by paabloLC

mcp-hacker-news

A Model Context Protocol (MCP) server for Hacker News built with TypeScript.

This MCP server acts as a bridge between the official Hacker News API and AI-powered tools that support the Model Context Protocol, such as Claude and Cursor.

It enables these tools to fetch and interact with live Hacker News data (posts, comments, users) via standardized MCP endpoints.

Using with Claude Desktop or Cursor

Add to your Claude desktop config (claude_desktop_config.json) or your Cursor config file (mcp.json) :

{
  "mcpServers": {
    "mcp-hacker-news": {
      "command": "npx",
      "args": ["-y", "mcp-hacker-news"]
    }
  }
}

Demo: Claude using MCP Hacker News

Related MCP server: Paws-on-MCP

Features

  • Integrates with the official Hacker News API to fetch posts, comments, and user information.

  • Exposes standard Model Context Protocol endpoints for seamless integration with Claude, Cursor, and other LLM-based tools.

  • Fetches the latest Hacker News data for AI and automation workflows.

Requirements

  • Node.js version 18 or higher is required.

  • npm or pnpm as a package manager.

⚠️ If you are unsure about your Node.js version, run node --version in your terminal. Make sure it shows v18.x.x or higher.
How to upgrade Node.js


Want to contribute? Just follow the steps below

Clone the repository and install dependencies:
git clone https://github.com/paablolc/mcp-hacker-news.git
cd mcp-hacker-news
pnpm install
pnpm build
  • To test the server with the MCP Inspector:

pnpm inspector
  • or, if running from the source:

npx @modelcontextprotocol/inspector node dist/index.js

mcp-inspector

Resources

This MCP server exposes the following fixed resources, each corresponding to a core Hacker News endpoint:

Resource URI

Description

Hacker News API Endpoint

hackernews://top

Top stories

/v0/topstories

hackernews://new

Newest stories

/v0/newstories

hackernews://best

Best (algorithmic) stories

/v0/beststories

These three collections match the main list endpoints officially provided by the Hacker News API.
Other types of stories (Ask HN, Show HN, Jobs, etc.) and item-specific lookups are available as tools (see below), allowing for flexible querying with custom parameters.

Tools

The following tools are available for advanced or parameterized queries. These allow you to fetch other Hacker News content beyond the fixed resources above:

Tool Name

Description

getTopStories

Fetch top stories (customizable limit)

getBestStories

Fetch best stories (customizable limit)

getNewStories

Fetch newest stories (customizable limit)

getAskHNStories

Fetch "Ask HN" posts

getShowHNStories

Fetch "Show HN" posts

getJobStories

Fetch job postings

getItem

Retrieve a specific item (story, comment, etc.)

getUser

Retrieve a user profile by username

getComments

Fetch comments for a specific item

getMaxItemId

Get the current maximum item ID

getUpdates

Fetch recently updated items and profiles

Check the code or inline documentation for supported arguments and usage examples for each tool.


Tip:
Make sure you have pnpm installed for development setup.
You can substitute npm or yarn if you prefer, but pnpm is recommended for consistency.

Available Tools

11 tools
getAskHNStoriesC

Get Ask HN stories

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of stories to return (default: 10, max: 30)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get Ask HN stories' but doesn't explain what 'Get' entails—e.g., whether it fetches live data, returns cached results, has rate limits, or requires authentication. For a tool with no annotation coverage, this leaves critical behavioral traits unspecified.

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 extremely concise—just three words—and front-loaded with the core action and resource. There is no wasted language or unnecessary elaboration, making it efficient for quick understanding. Every word earns its place, though this brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'Ask HN' stories are, how they're retrieved, or what the return format looks like (e.g., list of items with IDs, titles). For a tool that likely interacts with an API (Hacker News), more context is needed to ensure the agent can use it effectively.

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 has 100% description coverage, with the 'limit' parameter fully documented in the schema (type, default, max). The description adds no parameter information beyond what the schema provides, so it doesn't enhance semantics. However, since schema coverage is high, the baseline score of 3 is appropriate as the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get Ask HN stories' clearly states the action (get) and resource (Ask HN stories), making the basic purpose understandable. However, it doesn't distinguish this tool from its siblings like 'getTopStories' or 'getNewStories' beyond the 'Ask HN' qualifier, leaving the specific scope vague. It's adequate but lacks differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention what 'Ask HN' stories are, how they differ from other story types (e.g., 'Top' or 'New'), or any prerequisites. Without this context, the agent must infer usage from the tool name alone, which is insufficient.

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

getBestStoriesB

Get best stories from Hacker News (algorithmically ranked)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of stories to return (default: 10, max: 50)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'algorithmically ranked' which adds some behavioral context, but lacks details on rate limits, authentication needs, pagination, or response format. For a read operation with no annotations, this leaves significant gaps in understanding how the tool behaves.

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, efficient sentence that directly states the tool's purpose. It's front-loaded with the core action and resource, with no wasted words. Every part of the sentence earns its place by clarifying the ranking mechanism.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one optional parameter, no output schema, no annotations), the description is minimally adequate. It covers what the tool does but lacks context on usage, behavioral details, or output. Without annotations or output schema, the agent has incomplete information about the tool's operation and results.

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 the 'limit' parameter. The description adds no parameter-specific information beyond what the schema provides. According to guidelines, baseline is 3 when schema coverage is high (>80%) and no param info is in 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?

The description clearly states the action ('Get') and resource ('best stories from Hacker News') with additional context about ranking ('algorithmically ranked'). It distinguishes from siblings like 'getTopStories' or 'getNewStories' by specifying the 'best' algorithmic ranking. However, it doesn't explicitly contrast with all siblings like 'getAskHNStories' or 'getJobStories'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'getBestStories' over siblings like 'getTopStories' or 'getNewStories', nor does it specify prerequisites or exclusions. The agent must infer usage from the name and description alone.

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

getCommentsC

Get comments for a specific item

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe item ID to fetch comments for
depthNoMaximum depth of comments to fetch (default: 2)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get comments' but doesn't describe what the return format looks like, whether it's paginated, if there are rate limits, or any error conditions. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

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, clear sentence that efficiently conveys the tool's purpose without any wasted words. It's front-loaded with the essential information and appropriately sized for a simple retrieval tool. Every word earns its place by directly contributing to understanding what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is incomplete. It lacks information about return values, error handling, or behavioral traits like pagination or rate limits. While the purpose is clear, the description doesn't provide enough context for an agent to fully understand how to use the tool effectively in practice.

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 both parameters ('id' and 'depth') with clear descriptions. The tool description adds no additional meaning beyond what the schema provides, such as explaining what 'depth' means in the context of comments or providing examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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?

The description clearly states the action ('Get') and resource ('comments for a specific item'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools that might also retrieve comments, though none are listed among the provided siblings. The description avoids tautology by specifying what is being retrieved rather than just restating the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons with sibling tools like 'getItem' that might also provide comment-related data. The agent is left to infer usage based on the tool name and parameters alone.

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

getItemC

Get a specific item (story, comment, job, etc.) by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe item ID to fetch

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets' an item, implying a read operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or what happens if the ID is invalid. This leaves significant gaps for a tool with no annotation coverage.

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, efficient sentence that front-loads the core action ('Get a specific item') and includes key details (item types and ID requirement) without any wasted words. It's appropriately sized for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain return values, error cases, or behavioral traits like rate limits. For a tool with no structured data support, more context is needed to adequately guide an AI agent.

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%, with the single parameter 'id' documented as 'The item ID to fetch'. The description adds minimal value by mentioning the item types (e.g., story, comment) but doesn't provide additional syntax or format details beyond what the schema already specifies.

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?

The description clearly states the verb ('Get') and resource ('a specific item'), specifying it can fetch various item types like stories, comments, and jobs by ID. However, it doesn't explicitly differentiate from siblings like 'getComments' or 'getUser', which might fetch similar items through different mechanisms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'getComments' or 'getUser', which might retrieve similar data. The description implies usage for fetching by ID but lacks explicit context, prerequisites, or exclusions.

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

getJobStoriesC

Get job postings from Hacker News

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of jobs to return (default: 10, max: 30)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information on rate limits, authentication needs, error conditions, pagination, or what format the job postings are returned in. For a read operation with zero annotation coverage, this leaves significant gaps.

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, clear sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information ('Get job postings from Hacker News'). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the return value looks like (e.g., list of job objects, raw text), any dependencies on other tools, or behavioral constraints. For a tool that fetches data, more context about the output format and usage patterns would be helpful.

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%, with the single parameter 'limit' fully documented in the schema (type, description, default, max). The description adds no parameter information beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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?

The description clearly states the action ('Get') and resource ('job postings from Hacker News'), making the purpose immediately understandable. It distinguishes from some siblings like 'getTopStories' or 'getUser' by specifying job postings, though it doesn't explicitly differentiate from 'getAskHNStories' or 'getShowHNStories' which are also story types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'getTopStories', 'getNewStories', and 'getAskHNStories', there's no indication whether this tool is for current job postings, historical data, or how it differs from other story-fetching tools. No exclusions or prerequisites are mentioned.

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

getMaxItemIdB

Get the current maximum item ID

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool 'gets' something, implying a read-only operation, but doesn't disclose behavioral traits like whether it's cached, real-time, requires authentication, or has rate limits. This is inadequate for a tool with zero annotation coverage.

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, clear sentence with no wasted words. It's front-loaded with the core purpose, making it efficient and easy to parse, which is ideal for such a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'maximum item ID' means (e.g., numeric, timestamp-based), the return format, or error handling. For a tool with no structured data support, more context is needed.

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?

The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description doesn't add parameter details, which isn't needed here, but it could have mentioned implicit dependencies (e.g., context or defaults). Baseline is 4 for zero parameters.

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?

The description clearly states the action ('Get') and the resource ('maximum item ID'), making the purpose understandable. However, it doesn't differentiate from siblings like 'getItem' or 'getUpdates' that might also retrieve ID-related information, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'getItem' that might retrieve specific items by ID, there's no indication if this is for metadata, initialization, or other contexts, leaving usage ambiguous.

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

getNewStoriesB

Get newest stories from Hacker News

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of stories to return (default: 10, max: 50)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves stories but doesn't mention any behavioral traits such as rate limits, authentication needs, pagination, or what happens if the limit exceeds available stories. This leaves significant gaps in understanding how the tool behaves in practice.

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, clear sentence with zero wasted words. It is front-loaded with the core purpose ('Get newest stories'), making it highly efficient and easy to parse, which is ideal for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one optional parameter) and high schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it lacks details on behavioral aspects and return values, making it incomplete for fully informed use without additional context.

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 has 100% description coverage, fully documenting the 'limit' parameter with its type, default, and max value. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage without adding value.

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?

The description clearly states the action ('Get') and resource ('newest stories from Hacker News'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from siblings like 'getTopStories' or 'getBestStories' beyond the 'newest' qualifier, which is why it doesn't reach a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'getTopStories' or 'getBestStories'. It lacks any context about what 'newest' means (e.g., by time, by ID) or prerequisites for use, leaving the agent to infer usage from the name alone.

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

getShowHNStoriesC

Get Show HN stories

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of stories to return (default: 10, max: 30)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without detailing traits like whether it's read-only, safe, paginated, or rate-limited. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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 extremely concise with a single sentence, front-loaded and free of unnecessary words. It efficiently conveys the core purpose without waste, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., story objects, IDs), behavioral constraints, or how it fits with siblings. For a tool with minimal structured data, more context is needed to be fully helpful.

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%, with the single parameter 'limit' fully documented in the schema. The description adds no parameter information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get Show HN stories' states the basic action (get) and resource (Show HN stories), but it's vague about what 'get' entails (e.g., list, fetch, retrieve) and doesn't differentiate from siblings like 'getNewStories' or 'getTopStories' beyond specifying the story type. It provides minimal but functional purpose information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention context, prerequisites, or exclusions, leaving it unclear how it differs from sibling tools like 'getNewStories' or 'getTopStories' beyond the story category.

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

getTopStoriesC

Get top stories from Hacker News (up to 500 available)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of stories to return (default: 10, max: 50)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool fetches stories and mentions availability ('up to 500'), but lacks details on rate limits, authentication needs, error handling, or response format. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence with zero wasted words. It's front-loaded with the core purpose and includes a useful scope note, making it appropriately sized and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a simple input schema, the description is incomplete. It lacks behavioral context (e.g., rate limits, response structure) and doesn't compensate for the absence of structured fields, making it inadequate for a tool that likely returns data.

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 has 100% description coverage, documenting the 'limit' parameter with default and max values. The description adds no additional parameter information beyond implying a range ('up to 500'), which doesn't enhance the schema's details. Baseline 3 is appropriate as the schema does the heavy lifting.

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?

The description clearly states the action ('Get') and resource ('top stories from Hacker News'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from siblings like 'getBestStories' or 'getNewStories' beyond mentioning 'top stories', which is somewhat vague compared to the specific sibling names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'getBestStories' or 'getNewStories'. It mentions 'up to 500 available', which hints at scope but doesn't clarify context or exclusions, leaving the agent with minimal usage direction.

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

getUpdatesB

Get recently updated items and profiles

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'recently updated' which implies time-based behavior, but doesn't disclose what 'recently' means (e.g., time window, pagination), whether it's read-only or has side effects, or how results are formatted. This leaves significant behavioral gaps.

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, efficient sentence with no wasted words. It's front-loaded with the core action and resources, making it easy to parse. Every word contributes meaning, achieving ideal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0 parameters and no output schema, the description is minimally complete for a simple retrieval tool. However, with no annotations and siblings that suggest complex content types (e.g., stories, comments, users), it should clarify what 'items and profiles' includes or how it differs from other getters, leaving room for improvement.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a high baseline score. It could be a 5 if it explicitly noted the lack of parameters, but it's still very effective.

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?

The description 'Get recently updated items and profiles' clearly states the verb ('Get') and resources ('recently updated items and profiles'), making the purpose understandable. However, it doesn't specifically differentiate this tool from its siblings like 'getNewStories' or 'getTopStories' that also retrieve content, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'getNewStories' and 'getTopStories' that retrieve specific story types, there's no indication whether this tool is for general updates, time-based filtering, or different content categories, leaving usage unclear.

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

getUserC

Get user profile information

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesThe username to look up

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' information (implying a read operation) but doesn't mention authentication needs, rate limits, error conditions, or what specific profile information is returned. This leaves significant behavioral gaps for a tool with no annotation coverage.

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 extremely concise with a single, clear sentence that states the core purpose without any wasted words. It's perfectly front-loaded and earns its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that retrieves data. It doesn't explain what 'user profile information' includes, how results are formatted, or any behavioral constraints. For a data retrieval tool with zero structured context, this leaves too many gaps.

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 has 100% description coverage, with the single parameter 'username' clearly documented. The description doesn't add any parameter semantics beyond what the schema provides (like format examples or constraints), so it meets the baseline for high schema coverage without adding value.

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?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('user profile information'), making it immediately understandable. However, it doesn't differentiate this tool from its siblings (like 'getItem' which might also retrieve user-related data), which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or how it differs from sibling tools like 'getItem' or 'getComments' that might also retrieve user data, leaving the agent without usage direction.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • First observedgetAskHNStories
    • First observedgetBestStories
    • First observedgetComments
    • First observedgetItem
    • First observedgetJobStories
    • First observedgetMaxItemId
    • First observedgetNewStories
    • First observedgetShowHNStories
    • First observedgetTopStories
    • First observedgetUpdates
    • First observedgetUser

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific Hacker News resources: different story types (Ask HN, Best, New, Show HN, Top, Job), comments, items by ID, max item ID, updates, and user profiles. There is no overlap in functionality that would cause confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get' as the verb and descriptive nouns (e.g., getAskHNStories, getComments, getUser). The naming is uniform throughout the set, using camelCase consistently without any deviations.

Tool Count5/5

With 11 tools, the server is well-scoped for accessing Hacker News data. Each tool serves a specific and necessary function, covering various story categories, comments, items, updates, and user profiles without being excessive or insufficient.

Completeness5/5

The tool set provides comprehensive coverage for reading Hacker News data, including all major story types, comments, items, updates, and user profiles. There are no obvious gaps for a read-only API, and agents can fully navigate the Hacker News ecosystem without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    A Model Context Protocol (MCP) server that provides tools for searching and fetching information from Hacker News.
    4
    76
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol (MCP) server implementing the latest MCP specification with tools, resources, prompts, and enhanced sampling capabilities that features HackerNews and GitHub API integrations for AI-powered analysis.
    327
    -
  • A
    license
    D
    quality
    D
    maintenance
    An MCP server that enables AI assistants to access real-time Hacker News data including top stories, story details, comments, and search functionality.
    1
    14
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A server that enables AI assistants to access, analyze, and understand HackerNews content through standardized Model Context Protocol interfaces, providing tools for searching posts, analyzing users, and tracking trending topics.
    5
    8
    MIT