irkumo-mcp
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., "@irkumo-mcpトヨタ自動車のIRページと決算短信のURLを教えて"
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.
irkumo-mcp
MCP server for irkumo, an API that returns the investor relations (IR) page URL and the
earnings release (kessan tanshin) list URL of 3,821 companies listed in Japan, looked up by securities code,
company name, former name or brand name. Free sign-up at https://api.irkumo.com/account/login gives 50 trial
credits (no card required). Set the key as IRKUMO_API_KEY and run npx -y irkumo-mcp.
上場企業の IR ページや決算短信 URL を検索・取得できる MCP (Model Context Protocol) サーバです。 stdio 経由で Claude Desktop や Claude Code、Cursor などの AI アシスタントから利用できます。
概要
irkumo-mcp は、上場企業 3,821 社の照合済み IR ページ URL や企業属性を提供する irkumo API の MCP ラッパーです。 各道具の呼び出し時に必要な列だけを指定し、クレジットを消費してデータを取得します。
Related MCP server: edinet-mcp
できること
社名や略称・ブランド名から会社コードを 1 社特定 (resolve_company)
条件に合う会社候補の一覧検索 (search_companies)
証券コード指定での IR ページ URL や属性の取得 (get_company)
月次更新などの差分データの取得 (list_changes)
クレジット残高と有効期限の確認 (get_balance)
利用可能な列定義・単価・出典の確認 (list_fields)
必要要件
Node.js 20 以上
irkumo API キー (https://api.irkumo.com/account/login からメールアドレスだけで無料登録でき、お試し 50 クレジット (30 日間有効) が付きます。 リンクを開いたあとアカウントのページでキーを作成してください。カード登録は不要です)
インストールと起動
npx から直接実行 (パッケージ公開後)
npx irkumo-mcpローカルビルドからの実行
cd mcp
npm install
npm run build
node dist/index.js環境変数
変数名 | 必須 | 既定値 | 説明 |
IRKUMO_API_KEY | はい | なし | irkumo API キー (ir_live_... で始まる文字列)。未設定時はエラーとなり終了コード 1 で終了します |
IRKUMO_API_BASE | いいえ | irkumo API のベース URL。ローカル開発時は http://127.0.0.1:8787 などを指定します | |
IRKUMO_SITE_URL | いいえ | サイトのベース URL。402 残高不足時の購入案内リンクに使用されます |
クライアント設定例
1. Claude Desktop
設定ファイル (claude_desktop_config.json) に以下を追加します。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"irkumo": {
"command": "npx",
"args": ["-y", "irkumo-mcp"],
"env": {
"IRKUMO_API_KEY": "ir_live_your_api_key_here"
}
}
}
}ローカルビルドを使用する場合:
{
"mcpServers": {
"irkumo": {
"command": "node",
"args": ["/path/to/ir-url-api/mcp/dist/index.js"],
"env": {
"IRKUMO_API_KEY": "ir_live_your_api_key_here",
"IRKUMO_API_BASE": "http://127.0.0.1:8787"
}
}
}
}2. Claude Code
Claude Code CLI では以下のコマンドで追加します。
claude mcp add irkumo npx -y irkumo-mcp --env IRKUMO_API_KEY=ir_live_your_api_key_here3. Cursor
.cursor/mcp.json に以下を追加します。
{
"mcpServers": {
"irkumo": {
"command": "npx",
"args": ["-y", "irkumo-mcp"],
"env": {
"IRKUMO_API_KEY": "ir_live_your_api_key_here"
}
}
}
}道具一覧と消費クレジット
返答の末尾には必ず credits_charged: N / credits_remaining: M の 1 行が付加されます。
既に持っている列を要求すると余計なクレジットを消費するため、必要な列のみを要求してください。
道具名 | 引数 | 返すもの | 消費クレジット |
resolve_company |
| 最上位 1 社の code と name と match (stage) | 1 (0 件時は 0) |
search_companies |
| 候補の一覧 | 1 (0 件時は 0) |
get_company |
| 1 社の指定列データ | 要求した列数 (1列=1クレジット) |
list_changes |
| 変更行の一覧 | 返された行数 (1行=1クレジット) |
get_balance | なし | クレジット残高とロットの有効期限 | 0 |
list_fields | なし | 列一覧・単価・出典情報 | 0 |
注意点
search_companiesのfieldsには属性列 (code, code4, name, name_current, kana, en, industry, fiscal_month, prefecture, city) のみ指定できます。URL 列 (ir_url, tanshin_url) や別名 (aliases) は指定できません。URL 列が必要な場合は、まず
resolve_companyまたはsearch_companiesで証券コードを取得し、その後get_companyで必要な列を指定してください。
残高不足時の案内
クレジット残高が不足した場合 (HTTP 402)、例外 (エラー) にはならず、以下のように購入ページの案内文が返されます。
残高不足です。購入ページ: https://irkumo.com/pricing.html (残高 0)
credits_charged: 0 / credits_remaining: 0案内された URL から追加のクレジットパックを購入できます。
レート制限
API はキーごとに 20 リクエスト / 10 秒のレート制限が設定されています。
制限を超過した場合 (HTTP 429) は しばらく待って再試行してください。 (レート制限超過) というメッセージが返されます。
少し時間をおいてから再試行してください。
Available Tools
6 toolsget_balanceA
現在のクレジット残高とロットの有効期限一覧を取得します (消費クレジット: 0)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the call consumes 0 credits (a real behavioral trait) and that the operation is a read, but says nothing about authentication, rate limits, or whether the expiry list is paginated or truncated.
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 front-loaded sentence naming the returned data, with the cost note tucked into a parenthetical. Every element earns its place and nothing is redundant.
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 with no output schema, the description adequately conveys both the return content (balance plus lot expiration list) and the cost. It is only slightly incomplete in not hinting at response shape or freshness of the balance 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 tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no compensation is needed.
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 (取得) and two concrete resources (現在のクレジット残高 and ロットの有効期限一覧), so an agent knows exactly what it returns. The sibling tools are all company-search oriented, so there is no ambiguity to disambiguate.
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?
Usage is only implied — an agent infers it should call this when it needs credit/expiry information, but there is no explicit when-to-use, prerequisite, or alternative stated. The '(消費クレジット: 0)' note is a useful cost hint but does not constitute routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companyB
証券コードを指定して1社の詳細情報を取得します (消費クレジット: 指定した列数。1列につき1クレジット)。既に持っている列は要求しないようにしてください。
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 証券コード (4桁または5桁。例: 7203 または 72030) | |
| fields | No | 取得する列 (カンマ区切り。既定 ir_url)。指定した列数分のクレジットを消費します |
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 usefully discloses the credit cost model ('1 credit per column') and a constraint on redundant field requests, but says nothing about auth needs, rate limits, error behavior, or what the response contains.
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?
Two short sentences with the core purpose front-loaded and the cost/constraint note following. Efficient, though the parenthetical cost formula is somewhat dense.
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?
With no output schema and no annotations, an agent gets purpose, input shape, and cost behavior but no sense of the returned payload's structure or size limits. Adequate for a simple 2-parameter lookup, but not thorough.
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 both parameters (code, fields) are already documented, including the default and the credit-cost note on fields. The description largely reiterates the schema's cost statement rather than adding new format or syntax detail — baseline 3 is appropriate.
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?
States a specific verb and resource: retrieve detailed information for one company by stock code. This clearly separates it from search_companies and resolve_company by scope (single-company detail lookup), though it never names a sibling explicitly.
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?
Adds a real usage rule — don't request columns you already have — which is a cost-motivated constraint rather than a when-to-use-vs-alternative directive. It does not say when to prefer this tool over resolve_company or search_companies, so guidance is implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_changesB
指定時点以降のデータ変更履歴を取得します (消費クレジット: 返された行数。1行につき1クレジット)。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数 (1~1000。既定50) | |
| since | Yes | 変更の取得開始時点 (ISO 8601 時刻またはデータバージョン) | |
| column | No | 特定の列名による絞り込み (例: ir_url) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does add genuinely useful context the schema lacks: credit consumption of one credit per returned row. However, it omits auth requirements, whether deletions are included, pagination/ordering behavior, and what the returned history contains.
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 front-loaded sentence giving purpose followed by the cost model. No filler, no repetition of the name, and every clause carries information.
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?
No output schema exists, so the description should ideally outline what the change history contains, but it only covers purpose and cost. For a read tool with three parameters and zero annotations, this is adequate but leaves notable gaps about the returned data and access requirements.
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 all three parameters (limit, since, column) are already documented in the schema. The description adds no syntax or format detail about them, so the baseline 3 applies.
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: retrieving the data change history for a given point in time onward. The purpose is unambiguous and clearly distinct from the company/balance-oriented siblings. It does not, however, explicitly name or differentiate itself from any alternative tool.
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?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. The phrase 'since a specified point in time' only implicitly suggests change-tracking use, which is too thin to count as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fieldsA
利用可能な列の一覧と単価、データの出典情報を取得します (消費クレジット: 0)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses the operation's cost ('消費クレジット: 0', i.e. a free call) and describes what is returned, but it never states the read-only, side-effect-free nature of the operation explicitly.
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 front-loaded sentence that names the resource first and appends the cost note. Every element earns its place with no redundancy.
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 listing tool with no output schema, the description adequately enumerates the returned content (columns, unit prices, source info). It is nearly complete, with only the return structure/shape left unspecified.
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 takes zero parameters, so there is nothing for the schema or description to document; the baseline of 4 for a parameterless tool applies. No parameter semantics are needed or missing.
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?
States a specific verb (取得します/retrieve) and concrete resources: available columns, unit prices, and data source information. The purpose is unambiguous, though it offers no explicit differentiation from the company-oriented siblings (search_companies, get_company).
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?
Usage is only implied – an agent can infer this is the discovery tool for learning what fields exist before searching, but the description never says when to reach for it versus the sibling company tools or what to do with the result. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_companyA
社名や別名から最上位1社を特定してコードと名前と照合情報を返します (消費クレジット: 1。0件時は0)。
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | 検索クエリ (社名または別名) |
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 does add real behavioral context beyond the schema: a cost disclosure (1 credit, 0 when no hits) and the fact that only the single top-ranked match is returned. It omits auth requirements, error/ambiguity behavior, and what '照合情報' actually contains.
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 front-loaded sentence pairing the action with its return values, with the cost note compactly parenthesized. No filler, though the parenthetical slightly interrupts the primary statement.
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 one-parameter tool with no output schema, the description helpfully enumerates the returned fields (code, name, match info) and the credit cost. Only the resolution semantics for ambiguous queries remain unaddressed.
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% and there is only one parameter, whose schema text ('検索クエリ (社名または別名)') already matches the description's '社名や別名'. The description adds no syntax, aliasing, or normalization guidance, so the 3 baseline applies.
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?
States a specific verb (特定) and resource (社名や別名→最上位1社) plus the return payload (コード・名前・照合情報). The '最上位1社' scoping implicitly separates it from search_companies, but it never names a sibling, so it stops short of full 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?
Usage is only implied: call this when you have a name/alias and want a single resolved company. There is no explicit when-not, no mention of search_companies for multi-result lookups, and no stated alternative for exact-vs-fuzzy matching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesB
社名や別名から会社候補の一覧を検索します (消費クレジット: 1。0件時は0)。属性列のみ取得可能です。既に持っている列は要求しないようにしてください。
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | 検索クエリ (社名または別名) | |
| city | No | 所在地の市区町村による絞り込み | |
| limit | No | 取得件数 (1~5。既定3) | |
| fields | No | 取得する属性列 (カンマ区切り。既定 code,name)。属性列のみ指定可。URL列 (ir_url, tanshin_url) は get_company を使用してください | |
| has_ir | No | IRページURLの有無による絞り込み | |
| ir_seed | No | IRページ探索の起点による絞り込み | |
| industry | No | 業種による絞り込み | |
| prefecture | No | 所在地の都道府県による絞り込み | |
| has_tanshin | No | 決算短信ページURLの有無による絞り込み | |
| fiscal_month | No | 決算月 (1~12) による絞り込み |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses credit cost (1 per call, 0 when there are no results) and the key restriction that only attribute columns are retrievable, but says nothing about return shape, pagination, or the result limit behavior (max 5).
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?
Three short, front-loaded sentences with the purpose first, then cost, then the field constraint. No filler or redundancy within the text itself.
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 10-parameter search tool with no annotations and no output schema, the description covers purpose, cost, and a field constraint but leaves the result format, the hard 5-item cap context, and sibling routing unaddressed. Adequate but with visible 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?
Schema description coverage is 100%, so all 10 parameters are already documented in the schema. The description's field-related constraints ('only attribute columns', 'don't request columns you already have') largely duplicate the fields parameter's own schema description, so it adds little beyond the structured data.
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?
States a specific verb+resource: searching a list of company candidates by company name or alias. An agent can identify the operation, though the description does not explicitly name the sibling (get_company/resolve_company) it contrasts with — that routing hint only appears in the schema's fields description.
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?
Gives one real usage rule ('don't request columns you already have'), which is genuinely actionable, but offers no guidance on when to choose this over resolve_company or get_company, nor any prerequisite conditions.
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.
6 tool updates
v0.1.1- First observed
get_balance - First observed
get_company - First observed
list_changes - First observed
list_fields - First observed
resolve_company - First observed
search_companies
TDQS
Scored across 6 tools
resolve_company and search_companies both map names/aliases to companies and could be confused, but their descriptions (top-1 with verification vs. a candidate list) differentiate them. get_company (by code) vs. the search tools is clearly distinct, and the utility tools (get_balance, list_fields, list_changes) are unambiguous.
All six tools use a consistent snake_case verb_noun pattern (resolve_company, get_balance, list_fields, search_companies, get_company, list_changes). Verbs (resolve/get/list/search) map predictably to their operation type.
Six tools is a tight, well-scoped set for a credit-metered company lookup API, with each tool earning its place. It is slightly thin (no batch/multi-company fetch), but appropriate for the apparent scope.
The surface covers the full lookup lifecycle: search=>resolve=>get details, plus field discovery, change history, and balance management, so no obvious dead ends. Only minor gaps like bulk retrieval exist, which an agent can work around by iterating.
Maintenance
Related MCP Connectors
Search Japanese company credit, financials, subsidies, and procurement via AI agents.
Search Japanese subsidies and public company data using J-Grants, gBizINFO, and EDINET.
Search Japanese companies, departments and hiring signals; export CSV/XLSX with authentication.
Remote MCP for Japan's EDINET DB — 3,800 listed companies' financials & filings (OAuth)
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides programmatic access to Japan's EDINET system to search for listed companies and retrieve annual or quarterly financial reports. It parses XBRL filings into structured data, enabling AI assistants to analyze balance sheets, income statements, and cash flows.156 PyPI18Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables access and analysis of Japanese corporate financial data (PL/BS/CF) via EDINET API. Supports searching companies, listing reports, and comparing financials through natural language queries.1MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to access real-time Japanese and global stock market data, including quotes, charts, technical analysis, and market screening.713 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with comprehensive Japanese market intelligence through 27 MCP tools, covering corporate data, macroeconomics, financials, and environmental data from 14 integrated sources.-