Skip to main content
Glama
wei
by wei

HackerNews MCP Server

A Model Context Protocol (MCP) server that provides comprehensive access to the HackerNews API. This server enables AI assistants and other MCP clients to search, retrieve, and interact with HackerNews content including stories, comments, polls, users, and more.

Features

This MCP server exposes 15 tools covering all available HackerNews API endpoints:

Search & Discovery Tools

  • search-posts - Search posts by relevance (sorted by relevance, points, then comments)

  • search-posts-by-date - Search posts sorted by date (most recent first)

  • search-by-url - Find posts linking to a specific URL

  • search-by-time-range - Search posts within a specific time range

Content Retrieval Tools

  • get-front-page - Get all stories currently on the HackerNews front page

  • get-latest-stories - Get the most recent stories

  • get-latest-comments - Get the most recent comments

  • get-show-hn - Get "Show HN" posts (user projects)

  • get-ask-hn - Get "Ask HN" posts (questions)

  • get-polls - Get latest polls

  • get-top-stories - Get stories with minimum points threshold

Item & User Tools

  • get-item - Get a specific item (story, comment, poll) by ID

  • get-user - Get user information and karma

  • get-posts-by-author - Get all posts by a specific author

  • get-story-comments - Get all comments for a specific story

Related MCP server: Hacker News MCP Server

Installation

Prerequisites

  • Node.js 18 or higher

  • npm or yarn

Setup

  1. Clone this repository:

git clone <repository-url>
cd hn-mcp-server-vibe
  1. Install dependencies:

npm install
  1. Build the server:

npm run build

Usage

Running the Server Directly

You can run the server directly with Node.js:

npm start

Or during development:

npm run dev

Configuring with Claude Desktop

To use this server with Claude Desktop, add the following configuration to your Claude Desktop config file:

On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

On Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hackernews": {
      "command": "node",
      "args": ["/absolute/path/to/hn-mcp-server-vibe/build/index.js"]
    }
  }
}

Replace /absolute/path/to/hn-mcp-server-vibe with the actual path to your installation.

Configuring with Other MCP Clients

For other MCP clients that support stdio transport, configure them to spawn:

node /path/to/hn-mcp-server-vibe/build/index.js

API Examples

Search for Posts

// Search for AI-related stories
{
  "tool": "search-posts",
  "arguments": {
    "query": "artificial intelligence",
    "tags": "story",
    "page": 0,
    "hitsPerPage": 20
  }
}

Get Front Page Stories

{
  "tool": "get-front-page",
  "arguments": {
    "hitsPerPage": 30
  }
}

Get User Information

{
  "tool": "get-user",
  "arguments": {
    "username": "pg"
  }
}

Get Top Stories

// Get stories with at least 500 points
{
  "tool": "get-top-stories",
  "arguments": {
    "minPoints": 500,
    "hitsPerPage": 10
  }
}

Search by Time Range

// Get stories from the last 24 hours
{
  "tool": "search-by-time-range",
  "arguments": {
    "tags": "story",
    "startTime": 1728691200,  // Unix timestamp
    "endTime": 1728777600,     // Unix timestamp
    "hitsPerPage": 20
  }
}

Available Tags

When using search tools, you can filter by the following tags:

  • story - Regular stories

  • comment - Comments

  • poll - Polls

  • pollopt - Poll options

  • show_hn - Show HN posts

  • ask_hn - Ask HN posts

  • front_page - Currently on front page

  • author_USERNAME - Posts by specific author (e.g., author_pg)

  • story_ID - Comments for specific story (e.g., story_1234)

Tags can be combined with commas (AND) or parentheses for OR: author_pg,(story,poll)

Available Numeric Filters

For advanced filtering:

  • created_at_i - Creation timestamp (Unix seconds)

  • points - Number of points/upvotes

  • num_comments - Number of comments

Operators: <, <=, =, >, >=

Examples:

  • points>100 - More than 100 points

  • created_at_i>1672531200 - After specific date

  • points>=50,num_comments>10 - Multiple conditions

Response Format

All tools return structured data with:

  • content - Text representation of the response

  • structuredContent - Parsed JSON object for programmatic access

Search results include:

  • hits - Array of matching items

  • nbHits - Total number of matches

  • nbPages - Total number of pages

  • page - Current page number

  • hitsPerPage - Results per page

Rate Limits

The HackerNews API limits requests to 10,000 per hour per IP address. This server does not implement additional rate limiting, so clients should be mindful of this constraint.

Development

Project Structure

hn-mcp-server-vibe/
├── src/
│   └── index.ts          # Main server implementation
├── build/                 # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

Building

npm run build

Running in Development

npm run dev

API Reference

Full HackerNews API documentation: https://hn.algolia.com/api

License

MIT

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

Troubleshooting

Server not connecting

  • Ensure the build directory exists and contains compiled JavaScript

  • Check that Node.js version is 18 or higher

  • Verify the absolute path in your MCP client configuration

No results returned

  • Check your search query and filters

  • Verify the API is accessible: https://hn.algolia.com/api

  • Check rate limits haven't been exceeded

TypeScript errors

  • Run npm install to ensure all dependencies are installed

  • Run npm run build to compile TypeScript

Support

For issues specific to this MCP server, please open an issue on the repository.

For questions about the Model Context Protocol, see: https://modelcontextprotocol.io

For questions about the HackerNews API, see: https://hn.algolia.com/api

Available Tools

15 tools
get-ask-hnGet Ask HN PostsB

Get latest "Ask HN" posts where users ask questions

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 of behavioral disclosure. It states the tool retrieves posts but lacks details on permissions, rate limits, data freshness, or response format. While it implies a read-only operation, it doesn't confirm safety or other behavioral traits, leaving significant gaps for an agent.

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 without unnecessary words. It is front-loaded and appropriately sized, with every element contributing to clarity, making it highly concise and well-structured.

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 (2 parameters, no annotations, but with an output schema), the description is minimally adequate. It covers the basic purpose but lacks behavioral context and usage guidelines. The presence of an output schema mitigates the need to explain return values, but overall completeness is limited to the core function.

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 two parameters (hitsPerPage and page) with their types and defaults. The description adds no parameter-specific information beyond what the schema provides, resulting in a baseline score of 3 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.

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 ('latest "Ask HN" posts where users ask questions'), making the purpose evident. It distinguishes from some siblings like 'get-top-stories' or 'get-polls' by specifying the content type, though it doesn't explicitly differentiate from similar tools like 'get-show-hn' or 'get-latest-stories' beyond the 'Ask HN' focus.

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 scenarios for using 'get-ask-hn' over other tools like 'search-posts' or 'get-latest-stories', nor does it specify prerequisites or exclusions, leaving usage context implied at best.

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

get-front-pageGet HackerNews Front PageB

Get all stories currently on the HackerNews front page

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 for behavioral disclosure. It states it 'gets' stories, implying a read-only operation, but doesn't mention any behavioral traits like rate limits, authentication needs, or what 'front page' means (e.g., real-time vs. cached). This leaves gaps for a tool that likely involves network calls.

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 without any wasted words. It's front-loaded and appropriately sized for a simple data retrieval tool.

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 tool's low complexity (simple retrieval), high schema coverage, and presence of an output schema, the description is reasonably complete. It could benefit from clarifying the relationship with sibling tools, but for a basic read operation, it provides enough context to understand what the tool does.

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 schema description coverage is 100%, with clear descriptions for both parameters (hitsPerPage and page). The description doesn't add any parameter-specific information beyond what the schema provides, such as explaining how pagination interacts with 'front page' stories. This meets the baseline for high schema coverage.

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 ('all stories currently on the HackerNews front page'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-top-stories' or 'get-latest-stories', which might have overlapping functionality, so it doesn't reach the highest 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 'get-top-stories' and 'get-latest-stories', there's no indication of how this tool differs in context or scope, leaving the agent to guess based on names alone.

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

get-itemGet HackerNews Item by IDB

Get a specific HackerNews item (story, comment, poll, etc.) by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the item to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlNo
textNo
titleNo
authorNo
pointsNo
childrenNo
parent_idNo
created_atYes

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 full burden. While it implies a read operation, it doesn't disclose important behavioral traits like rate limits, authentication requirements, error handling, or what happens with invalid IDs. The description is minimal and lacks operational context.

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 - a single sentence that communicates the core purpose without any wasted words. It's front-loaded with the essential information and doesn't include unnecessary elaboration.

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 has an output schema (which handles return values) and high schema coverage, the description is minimally adequate. However, for a tool with no annotations and many sibling alternatives, it should provide more context about when and how to 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?

With 100% schema description coverage, the input schema already fully documents the single 'id' parameter. The description adds marginal value by clarifying that IDs retrieve 'items (story, comment, poll, etc.)', but doesn't provide additional semantic context beyond what the schema provides.

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 ('HackerNews item') with specificity about retrieving by ID. It distinguishes from some siblings like 'get-front-page' or 'get-top-stories' by focusing on individual items, but doesn't explicitly differentiate from all similar tools like 'get-user' which also retrieves by ID.

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 many sibling tools available (like 'get-story-comments', 'search-posts', etc.), there's no indication of when this specific ID-based retrieval is preferred over other methods.

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

get-latest-commentsGet Latest HackerNews CommentsB

Get the most recent comments posted to HackerNews

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 full burden for behavioral disclosure. It mentions retrieving 'most recent comments' but doesn't specify whether this is a read-only operation, if there are rate limits, how freshness is determined, or what the output format looks like. The description is too vague 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 states the core functionality without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy to parse quickly.

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 that there's an output schema (which handles return values), 100% schema coverage for parameters, and no complex behavioral aspects, the description is minimally adequate. However, for a tool with no annotations, it should provide more context about the operation's nature (e.g., read-only, potential limitations) to be truly 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 has 100% description coverage, with both parameters ('hitsPerPage' and 'page') clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the structured schema, so it meets the baseline expectation but doesn't provide extra 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 ('most recent comments posted to HackerNews'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-story-comments' or 'search-posts-by-date', which might also retrieve comments in different contexts.

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 'get-story-comments' (which might fetch comments for a specific story) or 'search-posts-by-date' (which could filter comments by time). It simply states what the tool does without context about appropriate use cases.

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

get-latest-storiesGet Latest HackerNews StoriesB

Get the most recent stories posted to HackerNews

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 of behavioral disclosure. It states the action ('Get') but doesn't mention any behavioral traits such as rate limits, authentication needs, response format, or whether it's a read-only operation. This leaves significant gaps for a tool that interacts with an external API like HackerNews.

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 without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 moderate complexity (2 parameters, no annotations, but with an output schema), the description is minimally adequate. It covers the basic purpose but lacks usage guidelines and behavioral context. The presence of an output schema means return values are documented elsewhere, so the description doesn't need to explain outputs, but it should address more operational aspects.

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, clearly documenting both parameters (hitsPerPage and page) with defaults. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without extra 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 verb ('Get') and resource ('most recent stories posted to HackerNews'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from siblings like 'get-top-stories' or 'get-front-page', which might also retrieve stories but with different criteria, so it misses full sibling distinction.

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 many sibling tools available (e.g., get-top-stories, get-front-page, search-by-time-range), there's no indication of context, exclusions, or comparisons, leaving the agent to guess based on tool names alone.

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

get-pollsGet HackerNews PollsB

Get latest polls posted to HackerNews

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

TDQS

B3.2/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 mentions 'latest polls' but doesn't specify sorting order, rate limits, authentication needs, or what 'latest' means (e.g., time window). For a read operation with zero annotation coverage, 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 without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 tool's low complexity (a simple read operation), 100% schema coverage, and the presence of an output schema (which handles return values), the description is reasonably complete. However, the lack of behavioral details (e.g., sorting, rate limits) and usage guidelines relative to siblings slightly reduces completeness.

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 schema description coverage is 100%, so the input schema fully documents both parameters (hitsPerPage and page) with descriptions and defaults. The description doesn't add any parameter-specific information beyond what's in the schema, meeting the baseline for high schema coverage.

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 ('latest polls posted to HackerNews'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-top-stories' or 'get-latest-stories' in terms of content type, though 'polls' is a specific HackerNews feature.

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 'get-top-stories' or 'search-posts', nor does it mention any prerequisites or constraints. It simply states what the tool does without contextual usage information.

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

get-posts-by-authorGet Posts by AuthorB

Get all posts (stories, comments, etc.) by a specific author

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)
tagsNoFilter by type (e.g., "story", "comment")
usernameYesThe username of the author

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 posts but doesn't cover critical aspects like whether it's read-only (implied by 'Get'), pagination behavior (hinted in schema but not explained), rate limits, authentication needs, or error handling. This leaves significant gaps for a tool with 4 parameters and potential API constraints.

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 purpose ('Get all posts by a specific author') with a brief clarification in parentheses. There is no wasted verbiage, repetition, or structural issues, making it easy for an agent to parse quickly.

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 has an output schema (which handles return values) and 100% schema coverage for parameters, the description's minimalism is partially acceptable. However, for a tool with 4 parameters, no annotations, and siblings like 'search-posts', it lacks context on behavioral traits (e.g., pagination defaults, error cases) and usage guidelines, making it incomplete for optimal agent decision-making.

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 schema description coverage is 100%, providing clear documentation for all parameters (e.g., 'hitsPerPage' for pagination, 'tags' for filtering). The description adds no additional parameter semantics beyond implying author-based retrieval via 'by a specific author', which aligns with the 'username' parameter. This meets the baseline score of 3 for high schema coverage.

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 ('posts by a specific author'), distinguishing it from siblings like 'get-user' (which retrieves user profiles) or 'search-posts' (which searches posts more broadly). However, it doesn't explicitly differentiate from 'search-posts-by-date' or 'get-latest-stories' in terms of author-specific filtering, leaving some ambiguity.

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 (e.g., needing a valid username), exclusions (e.g., not for posts by multiple authors), or comparisons to siblings like 'get-user' (for author details) or 'search-posts' (for broader searches), leaving the agent to infer usage context.

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

get-show-hnGet Show HN PostsA

Get latest "Show HN" posts where users showcase their projects

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

TDQS

A3.6/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 but offers minimal behavioral context. It mentions 'latest' posts but doesn't specify recency criteria, sorting order, or data freshness. No information about rate limits, authentication needs, or error handling is included.

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 without unnecessary words. It's appropriately sized and front-loaded with the core functionality.

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 tool's moderate complexity (list retrieval with pagination), 100% schema coverage, and presence of an output schema, the description is reasonably complete. However, it lacks behavioral details that would be helpful for an agent, such as sorting behavior or data source characteristics.

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 parameters. The description adds no parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter semantics.

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 clearly states the specific action ('Get') and resource ('latest "Show HN" posts'), with explicit mention of the content type ('where users showcase their projects'). It distinguishes this tool from siblings like 'get-ask-hn' or 'get-top-stories' by specifying the Show HN category.

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

Usage Guidelines3/5

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

The description implies usage for retrieving Show HN posts, but provides no explicit guidance on when to use this versus alternatives like 'get-latest-stories' or 'search-posts'. There's no mention of prerequisites, exclusions, or comparative scenarios with sibling tools.

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

get-story-commentsGet Comments for a StoryB

Get all comments for a specific story by story ID

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)
storyIdYesThe ID of the story

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

TDQS

B3.2/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 all comments' but doesn't clarify if this is a read-only operation, how pagination works beyond the schema, or any rate limits or authentication needs. This is inadequate for a tool with parameters and 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 purpose without any wasted words. It's appropriately sized for a straightforward retrieval tool, earning the highest score for conciseness.

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 tool's moderate complexity (3 parameters, 1 required), 100% schema coverage, and the presence of an output schema (which handles return values), the description is mostly complete. However, it lacks behavioral context and usage guidelines, which are minor gaps in an otherwise well-supported setup.

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 schema description coverage is 100%, so the schema already documents all parameters (storyId, hitsPerPage, page) with their types and defaults. The description adds no additional meaning beyond implying retrieval by story ID, which is already covered in the schema, resulting in a baseline score.

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 ('all comments for a specific story'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get-item' or 'get-latest-comments', which might also retrieve comments in different contexts, so it doesn't reach the highest 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 siblings like 'get-latest-comments' for recent comments or 'get-item' for general item retrieval, leaving the agent without context for selection among similar tools.

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

get-top-storiesGet Top Stories by PointsB

Get stories with a minimum number of points, sorted by date

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
minPointsNoMinimum number of points (default: 100)
pageNoPage number for pagination (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

TDQS

B3.3/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 mentions sorting by date and points filtering, but doesn't describe pagination behavior, rate limits, authentication needs, or what happens with invalid parameters. For a tool with 3 parameters and no annotations, this leaves significant gaps in understanding its operational 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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized for this type of filtering tool and front-loads the key information.

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 has an output schema (which handles return values) and 100% schema description coverage, the description is minimally adequate. However, for a tool with 3 parameters and no annotations, it should provide more behavioral context about how the tool actually operates beyond just stating the filtering criteria.

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 schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema by implying that 'minPoints' is the primary filter and results are date-sorted, but doesn't provide additional context about parameter interactions or constraints.

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 ('stories') with specific filtering criteria ('with a minimum number of points, sorted by date'). It distinguishes from siblings like 'get-latest-stories' by emphasizing the points-based filtering rather than recency, but doesn't explicitly name alternatives for point-based queries.

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

Usage Guidelines3/5

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

The description implies usage when stories need to be filtered by points and sorted by date, but doesn't explicitly state when to use this tool versus alternatives like 'get-front-page' or 'search-posts'. No guidance on prerequisites or exclusions is provided.

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

get-userGet HackerNews User InfoB

Get information about a specific HackerNews user

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesThe username to look up

Output Schema

ParametersJSON Schema
NameRequiredDescription
aboutNo
karmaYes
usernameYes

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 of behavioral disclosure. It states the tool 'Get information' but doesn't specify what information is returned (e.g., karma, about, submission history), whether it's read-only, or any rate limits or authentication needs. This leaves significant gaps in understanding the tool's 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 a single, clear sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and efficient, making it easy to understand at a glance, 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 parameter) and the presence of an output schema, the description is minimally adequate. However, with no annotations and incomplete behavioral details, it doesn't fully cover aspects like return values or usage context, leaving room for improvement despite the structured support.

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 description adds no parameter semantics beyond what the input schema provides. The schema has 100% coverage with a clear description for the 'username' parameter. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or add extra meaning.

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: 'Get information about a specific HackerNews user.' It includes a specific verb ('Get') and resource ('HackerNews user'), making the action and target explicit. However, it doesn't differentiate from sibling tools like 'get-posts-by-author' or 'search-posts,' which might also involve user-related data, so it doesn't reach the highest 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 scenarios like retrieving user profiles versus posts, or how it differs from siblings such as 'get-posts-by-author' or 'search-posts.' Without such context, users might struggle to choose the correct tool.

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

search-by-time-rangeSearch Posts by Time RangeB

Search for posts within a specific time range (Unix timestamps)

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeYesEnd time in Unix timestamp (seconds)
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)
queryNoSearch query text (optional)
startTimeYesStart time in Unix timestamp (seconds)
tagsNoFilter tags (e.g., "story", "comment")

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 full burden for behavioral disclosure. It mentions 'Search for posts' but doesn't describe what constitutes a post, whether results are paginated (though schema hints at it), what the output format looks like, rate limits, authentication requirements, or error conditions. The description is minimal and lacks important operational context.

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 - a single sentence that states the core purpose without any fluff. It's front-loaded with the essential information and wastes no words, making it efficient for an agent to parse.

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 existence of an output schema (which handles return values) and 100% schema description coverage, the description doesn't need to explain parameters or return format. However, for a search tool with 6 parameters and multiple sibling alternatives, the description should provide more context about when to use it and what behavioral expectations exist beyond the basic operation.

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 parameters are well-documented in the schema itself. The description adds only that the time range uses 'Unix timestamps,' which is already stated in the schema for startTime and endTime. No additional semantic context is provided beyond what's in the structured fields.

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 ('Search') and resource ('Posts') with the specific constraint 'by Time Range', which distinguishes it from generic search tools. However, it doesn't explicitly differentiate from sibling tools like 'search-posts-by-date' or 'search-posts', leaving some ambiguity about when to choose this specific time-range search.

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 multiple sibling search tools available (e.g., 'search-posts', 'search-posts-by-date', 'search-by-url'), there's no indication of when this time-range search is preferred or what distinguishes it from other filtering mechanisms.

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

search-by-urlSearch Posts by URLB

Search for HackerNews posts that link to a specific URL

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
pageNoPage number for pagination (default: 0)
urlYesThe URL to search for

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 of behavioral disclosure. It only states the basic action without mentioning critical details like rate limits, authentication needs, pagination behavior beyond the schema, or what the output contains. For a search tool with no annotation coverage, this is a significant gap in transparency.

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 core functionality without any fluff or redundancy. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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 moderate complexity (search operation with pagination), no annotations, and the presence of an output schema, the description is minimally adequate. It covers the basic purpose but lacks behavioral context and usage guidance. The output schema mitigates some completeness issues, but the description should do more to compensate for the absence of annotations.

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 already documents all three parameters (url, hitsPerPage, page) with their purposes and defaults. The description adds no additional semantic context beyond implying URL-based filtering, which aligns with the schema. This meets the baseline for high schema coverage.

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: 'Search for HackerNews posts that link to a specific URL.' It specifies the verb ('search'), resource ('HackerNews posts'), and target ('specific URL'). However, it doesn't explicitly differentiate from sibling tools like 'search-posts' or 'search-posts-by-date' beyond the URL focus, 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 'search-posts' and 'search-posts-by-date' available, it lacks explicit instructions on scenarios where URL-based searching is preferred over other search methods or general browsing tools.

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

search-postsSearch HackerNews PostsB

Search HackerNews posts by relevance (sorted by relevance, then points, then number of comments)

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
numericFiltersNoNumeric filters (e.g., "points>100", "created_at_i>1672531200")
pageNoPage number for pagination (default: 0)
queryYesSearch query text
tagsNoFilter tags (e.g., "story", "comment", "poll", "show_hn", "ask_hn", "front_page", "author_USERNAME", "story_ID")

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

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 full burden for behavioral disclosure. It mentions sorting behavior, which is valuable, but doesn't cover other important aspects like pagination handling (implied by 'page' parameter), rate limits, authentication requirements, error conditions, or what the output contains. For a search tool with 5 parameters, 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, efficient sentence that communicates the core functionality and sorting behavior without any wasted words. It's appropriately sized for the tool's complexity and gets straight to the point.

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 that there's an output schema (which handles return values) and 100% schema description coverage, the description provides adequate context for basic understanding. However, for a search tool with multiple sibling alternatives and no annotations, it should ideally provide more guidance on usage scenarios and behavioral expectations beyond just sorting.

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 schema description coverage is 100%, providing good documentation for all 5 parameters. The description adds the sorting criteria ('by relevance, then points, then number of comments'), which gives context about how results are ordered beyond what individual parameters specify. However, it doesn't explain parameter interactions or provide additional semantic context beyond the schema.

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 ('search') and resource ('HackerNews posts'), and specifies the sorting criteria ('by relevance, then points, then number of comments'). However, it doesn't explicitly differentiate from sibling tools like 'search-by-time-range' or 'search-posts-by-date', which reduces it from 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 multiple sibling search tools available (e.g., 'search-by-time-range', 'search-posts-by-date'), there's no indication of when this relevance-based search is preferred over time-based or date-based searches.

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

search-posts-by-dateSearch HackerNews Posts by DateB

Search HackerNews posts sorted by date (most recent first)

ParametersJSON Schema
NameRequiredDescriptionDefault
hitsPerPageNoNumber of results per page (default: 20)
numericFiltersNoNumeric filters (e.g., "points>100", "created_at_i>1672531200")
pageNoPage number for pagination (default: 0)
queryNoSearch query text (optional)
tagsNoFilter tags (e.g., "story", "comment", "poll", "show_hn", "ask_hn", "front_page", "author_USERNAME", "story_ID")

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
pageYes
nbHitsYes
nbPagesYes
hitsPerPageYes

TDQS

B3.2/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 only mentions sorting behavior ('most recent first') but doesn't describe pagination behavior, rate limits, authentication requirements, error conditions, or what the output contains. For a search tool with 5 parameters, this is insufficient behavioral context.

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 communicates the core functionality without any wasted words. It's appropriately sized for a search tool and front-loads the essential information. Every word earns its place.

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 that there's an output schema (which handles return values), 100% schema description coverage, and no annotations, the description is reasonably complete for its purpose. It could be more complete by explaining the relationship to sibling tools and providing more behavioral context, but the combination of good schema documentation and output schema reduces the burden on the description.

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 schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter information beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the parameter documentation work, though the description could have provided context about how parameters interact.

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 ('search') and resource ('HackerNews posts'), and specifies the sorting method ('by date, most recent first'). It distinguishes from some siblings like 'get-top-stories' by emphasizing search functionality, but doesn't explicitly differentiate from 'search-posts' or 'search-by-time-range' which appear to be closely related alternatives.

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 'search-posts' or 'search-by-time-range'. It mentions sorting by date but doesn't explain if this is the primary use case or how it differs from other search tools. No explicit when/when-not statements or alternative recommendations are provided.

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. Dates show when Glama detected each change.

  1. 15 tool updatesv1.0.0
    • First observedget-ask-hn
    • First observedget-front-page
    • First observedget-item
    • First observedget-latest-comments
    • First observedget-latest-stories
    • First observedget-polls
    • First observedget-posts-by-author
    • First observedget-show-hn
    • First observedget-story-comments
    • First observedget-top-stories
    • First observedget-user
    • First observedsearch-by-time-range
    • First observedsearch-by-url
    • First observedsearch-posts
    • First observedsearch-posts-by-date

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific HackerNews content types or search methods, with clear boundaries like get-latest-stories vs get-top-stories. However, some overlap exists between search-posts and search-posts-by-date, which could cause confusion as both search posts but differ primarily in sorting.

Naming Consistency5/5

All tools follow a consistent kebab-case naming pattern with a verb-noun structure, such as get-front-page or search-by-url. This uniformity makes the tool set predictable and easy to navigate, with no deviations in style or convention.

Tool Count4/5

With 15 tools, the count is slightly high but reasonable for a HackerNews server, covering various content types and search functionalities. It might feel a bit heavy, but each tool appears to serve a specific, useful purpose in the domain.

Completeness5/5

The tool set provides comprehensive coverage for accessing HackerNews content, including stories, comments, polls, users, and multiple search methods. There are no obvious gaps; it supports full read operations and search capabilities, aligning well with the server's purpose.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to access HackerNews content through structured search, front page retrieval, latest posts monitoring, detailed item fetching with comment trees, and user profile viewing via the Algolia API.
    5
    63
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to access Hacker News content through 9 comprehensive tools for fetching stories, comments, user profiles, and job postings. Supports flexible output formats, pagination, and various story categories (top, new, best, Ask HN, Show HN).
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to read and search Hacker News for top stories, comments, user profiles, and job listings using the Firebase and Algolia APIs. It facilitates natural language research into community discussions and technological trends across the HN platform.
    8
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wei/hn-mcp-server-vibe'

If you have feedback or need assistance with the MCP directory API, please join our Discord server