hp-mcp
Click on "Install 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., "@hp-mcpshow me the latest 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.
@kotoragk/hp-mcp
A sample MCP (Model Context Protocol) server that exposes the kotoragk HP (homepage) public API as read-only tools. It is intentionally small: a thin HTTP client that fetches the existing HP endpoints and returns the JSON to the model.
Use it as a reference for how to build and publish an MCP server in TypeScript.
Tools
Tool | Arguments | Description |
|
| News (お知らせ) list with count and categories |
|
| A single news article, with prev/next links |
| — | Company (会社情報) profile |
Each tool calls ${HP_API_BASE_URL}/hp/... and returns the raw JSON.
Related MCP server: Google News13 MCP Server
Install into Claude Code
claude mcp add hp -- npx -y @kotoragk/hp-mcpTo point at a different backend (e.g. a local Django server), pass the env var:
claude mcp add hp -e HP_API_BASE_URL=http://127.0.0.1:8000 -- npx -y @kotoragk/hp-mcpEnv var | Default | Description |
|
| Base URL of the HP API (no trailing |
Local development
npm install
npm run build # compiles src/ -> dist/
npm start # runs dist/index.js on stdioThe server speaks the MCP protocol over stdio, so running it directly just waits for a client. Use an MCP client (Claude Code, the MCP Inspector, etc.) to interact with it.
Publish
npm login
npm publish --access publicAvailable Tools
3 toolsget_companyGet HP company infoB
Fetch the company (会社情報) profile from the HP.
| 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 of behavioral disclosure. It's clearly a read-only fetch operation (safe), which is a positive signal, but the description doesn't disclose anything beyond that—no mention of what the profile includes, whether it's static/cached, authentication needs, or error behaviors. For a tool with zero annotation coverage, more behavioral context would be expected.
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 concise sentence that fully states its purpose. It's appropriately brief for a zero-parameter tool. Minor demerit: it doesn't use the full 1-2 sentences it could afford to add behavioral or return context.
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?
For a zero-parameter, read-only fetch tool with no output schema, the description is relatively complete. However, it doesn't describe the return value or content scope (what fields the company profile contains). With no output schema and no annotations, some indication of what 'company profile' encompasses would improve completeness. It's adequate but minimal.
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 tool has 0 parameters, and schema coverage is 100% (empty schema), so there are no parameter semantics to explain. The baseline 4 for 0-param tools applies—nothing further is needed since there's nothing to document.
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 'Fetch the company (会社情報) profile from the HP' clearly states the action (fetch) and resource (company profile). It distinguishes reasonably from siblings get_news and get_news_detail, which target news content. Slight weakness: it doesn't name the destination company in the title/description explicitly beyond the function name, and 'HP' is ambiguous (could be Hewlett-Packard or homepage).
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 indicates this fetches company profile info, which is distinct from news-related siblings by context. However, there's no explicit when-to-use guidance or exclusions stated. The implied context (company info vs news) is clear enough to select it, but no explicit alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsGet HP news listA
Fetch the news (お知らせ) list from the HP. Returns news items, total count and categories.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number for pagination (optional). |
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 mentions fetching a list and what's returned, but doesn't state whether this is a read-only operation, sort order, default page size, or any rate limits. For a simple read tool, this is adequate but not rich.
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 one concise sentence spanning two lines that captures purpose, resource, and return contents. Zero waste, front-loaded with the verb 'Fetch'. Ideal length for a tool of this simplicity.
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?
This is a simple list tool with one optional parameter, no output schema, and no annotations. The description covers the return shape (news items, total count, categories) which aids the agent in understanding output. It's reasonably complete for the tool's simplicity, though it could mention pagination behavior or default page size.
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 schema already documents the single 'page' parameter at 100% coverage with a clear 1-based pagination description. The description adds that this is a news list fetch with pagination implied, but since schema coverage is 100%, the baseline of 3 is appropriate and the description doesn't need to add much beyond what's already there.
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 (fetch), resource (news list from HP), and the return data (news items, total count, categories). It's specific and functional. However, it doesn't explicitly distinguish itself from the sibling tool get_news_detail, though the names make the relationship fairly self-evident.
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 implies it returns a paginated list with total count and provides a page parameter for pagination, giving clear context on how to paginate. However, it doesn't explain when to use this vs get_news_detail (which likely retrieves a single news item), nor does it provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_news_detailGet HP news detailA
Fetch a single news article by its number, including previous/next links.
| Name | Required | Description | Default |
|---|---|---|---|
| newsnumber | Yes | The news number (id) to fetch. |
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 discloses that the response includes previous/next links, which is a useful behavioral detail. However, it does not describe navigation pagination behavior, error cases, or what constitutes a 'number' boundary, leaving some gaps for a fetch operation.
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?
A single sentence that is front-loaded with the primary purpose and appends a useful detail about previous/next links. Zero wasted words.
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?
For a single-parameter fetch tool with full schema coverage, the description is nearly complete. The inclusion of the previous/next links detail is valuable context. It could note error behavior for nonexistent newsnumbers, but this is minor for a simple retrieval tool.
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 schema provides 100% coverage with a clear description of 'newsnumber' ('The news number (id) to fetch') and an exclusiveMinimum constraint. The description echoes the parameter concept by saying 'by its number' but adds little beyond the schema's existing documentation.
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 states a specific verb+resource ('Fetch a single news article by its number') and adds useful scope details (includes previous/next links). This clearly distinguishes from the sibling tools since 'get_news_detail' vs 'get_news' implies single-item vs list retrieval, and 'get_company' is a different resource entirely.
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 implies usage by identifying it's for fetching a single article by number, which differentiates it from the sibling list tool 'get_news'. However, it does not explicitly state when to choose this tool over alternatives or provide exclusionary guidance.
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.
3 tool updates
v0.1.0- First observed
get_company - First observed
get_news - First observed
get_news_detail
TDQS
Scored across 3 tools
The three tools target clearly distinct purposes: news listing, news detail, and company profile. get_news and get_news_detail are related but well-differentiated by list vs. single-article granularity. The main potential confusion is an agent confusing get_news's list vs. detail, but the descriptions make the distinction clear.
All tools follow a consistent get_<noun> pattern with snake_case, which is predictable and readable. The only minor deviation is the mixed use of get_news (list) vs. get_news_detail (single), which slightly breaks the implied noun granularity, but overall the convention is uniform.
Three tools is on the low end but borderline acceptable for a simple company HP content server. The scope appears to be news + company info, which a 3-tool set could plausibly cover, though it feels thin for a full website.
The news lifecycle (list + detail) and company profile are covered with no dead ends for the demonstrated use case. However, there are notable gaps: no pagination/create/update/delete for news, no other HP sections (e.g., product listings, contact info), and reading is the only supported operation. For a read-only company wiki this is acceptable, but it lacks breadth.
Maintenance
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
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Free cross-lingual news briefings for AI agents across 89 languages. Read-only, hosted.
News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.
Get access to real-time and historical news data including top headlines from global sources
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to search, retrieve, and interact with HackerNews content including stories, comments, polls, and user information. Provides comprehensive access to all HackerNews API endpoints with 15 specialized tools for content discovery and analysis.15265MIT
- AlicenseBqualityDmaintenanceProvides tools to search and retrieve news across various categories including business, technology, science, and sports via the Google News API. It supports keyword searches, autocomplete suggestions, and region-specific news across multiple languages.11MIT
- FlicenseNot gradedqualityDmaintenanceProvides tools for fetching real-time news and performing AI-powered sentiment analysis and summarization using Mistral AI. It enables users to analyze news trends and extract structured insights through natural language queries.-

AllNewsAPI MCPofficial
AlicenseAqualityAmaintenanceGet access to real-time and historical news data including top headlines from global sources via AllNewsAPI. Supports multiple filter options including keyword search, category, language and more431,4271MIT