MCP server that provides tools to fetch and search Hacker News content, including top/new/best stories, detailed story information with comments, user profiles with activity, and news search functionality
This server has 4 tools with basic MCP registration, but critical quality gaps limit production readiness. All tools are properly registered with Zod schemas and descriptions, but descriptions are generic and lack actionable guidance. Parameter descriptions are minimal, most fields lack context about format, constraints, or when to use them. No output schemas are documented, and error handling is silent (try/catch returning null without explaining what went wrong). The server lacks pagination support despite tools that could return large result sets (search_news, get_news). No structured error reporting or tool annotations present. While the implementation is technically sound (proper async/await, axios usage), the tool interface falls short of production quality by arcade.dev standards.
This tool will fetch top, new or best news from the hacker news
This tool will fetch more detail amd information about the news including comments
This tool will fetch more detail amd information about the user including recent activity
This tool will search the news based on search query on hackernews and give the search results
All tool descriptions are under 100 characters and lack actionable context. 'This tool will fetch top, new or best news from the hacker news' doesn't explain WHEN to use this vs search_news, what fields are returned, or typical use cases.
No output schemas documented. LLMs have no way to know what fields are returned (e.g., does get-user-details return 'activity' or 'recent_activity'? Is timestamp ISO 8601 or DD/MM/YYYY?). This forces agents to guess field names and discover structure by trial/error.
Parameter descriptions are missing or trivial. storyId: 'The ID of the story to fetch details for' doesn't explain the format, range, or how to obtain one (must it come from get-news? Can I guess?). userId is equally vague.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Silent error handling: all helper functions return null on failure without explanation. Agents see null and have no guidance on what went wrong (network error? Invalid ID? Invalid newsType?). Error messages should be structured and actionable per pattern:recovery-guide.
No pagination support. get-news hardcodes slice(0, 10), search_news returns unbounded results from Algolia API, getUserInfo returns 10 submitted items. Large result sets are never capped, limit parameters never offered, and no next_cursor/total fields returned. This violates paginated-result pattern and risks context window exhaustion.
Inconsistent date formats: formatTimestampToDDMMYYYY returns 'DD/MM/YYYY' but Hacker News timestamps are Unix seconds, Algolia uses created_at_i (milliseconds). Agents will misinterpret '01/02/2024' as Jan 2 or Feb 1. Should return ISO 8601 (2024-01-02) to eliminate ambiguity.
Tool naming lacks clarity in composition. get-news and search-news are both discovery tools but names don't signal the distinction (get = topmost recent, search = keyword-based). Agents may conflate them or pick the wrong one.
No tool annotations. Tools are READ_ONLY (safe to retry) but this is not declared in the schema via readOnlyHint. An agent framework could leverage this to enable caching or optimized scheduling.