MCP Hacker News
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Hacker Newsshow me the top 10 stories from Hacker News"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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"]
}
}
}
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
⚠️ If you are unsure about your Node.js version, run
node --versionin your terminal. Make sure it showsv18.x.xor 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 buildTo test the server with the MCP Inspector:
pnpm inspectoror, if running from the source:
npx @modelcontextprotocol/inspector node dist/index.js
Resources
This MCP server exposes the following fixed resources, each corresponding to a core Hacker News endpoint:
Resource URI | Description | Hacker News API Endpoint |
| Top stories |
|
| Newest stories |
|
| Best (algorithmic) stories |
|
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 |
| Fetch top stories (customizable limit) |
| Fetch best stories (customizable limit) |
| Fetch newest stories (customizable limit) |
| Fetch "Ask HN" posts |
| Fetch "Show HN" posts |
| Fetch job postings |
| Retrieve a specific item (story, comment, etc.) |
| Retrieve a user profile by username |
| Fetch comments for a specific item |
| Get the current maximum item ID |
| 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 substitutenpmoryarnif you prefer, butpnpmis recommended for consistency.
Available Tools
11 toolsgetAskHNStoriesC
Get Ask HN stories
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of stories to return (default: 10, max: 30) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of stories to return (default: 10, max: 50) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The item ID to fetch comments for | |
| depth | No | Maximum depth of comments to fetch (default: 2) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The item ID to fetch |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of jobs to return (default: 10, max: 30) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of stories to return (default: 10, max: 50) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of stories to return (default: 10, max: 30) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of stories to return (default: 10, max: 50) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | The username to look up |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
- First observed
getAskHNStories - First observed
getBestStories - First observed
getComments - First observed
getItem - First observed
getJobStories - First observed
getMaxItemId - First observed
getNewStories - First observed
getShowHNStories - First observed
getTopStories - First observed
getUpdates - First observed
getUser
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Hacker News MCP — search and retrieve stories from Hacker News
Dive into the latest and greatest from the tech world with our Hacker News MCP server.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol (MCP) server that provides tools for searching and fetching information from Hacker News.476MIT
- FlicenseNot gradedqualityDmaintenanceA 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-
- AlicenseDqualityDmaintenanceAn MCP server that enables AI assistants to access real-time Hacker News data including top stories, story details, comments, and search functionality.1143MIT
- AlicenseAqualityDmaintenanceA 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.58MIT