Koreafilings Mcp

by OldTemple91

197 downloads
Not rated
GitHub

About

MCP server for koreafilings.com — AI-summarized Korean DART (전자공시) corporate disclosures, paid per call in USDC via the x402 protocol on Base. Tools: get_pricing (free), get_disclosure_summary (0.005 USDC).

Details

Author
OldTemple91
Downloads
197
Categories
Developer Tools

- Pay-per-call with 0.005 USDC per summary, no subscriptions.
- No API key, no signup, no procurement loop.
- x402 standard payment transport on Base mainnet.
- English summaries with extracted quantitative data (amounts, dates, counterparties).
- Caching: first agent pays LLM cost; subsequent requests hit cache at same flat price.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Koreafilings Mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install the TypeScript SDK via npm install koreafilings, the Python SDK via pip install koreafilings, or the MCP server via uv tool install koreafilings-mcp for Claude Desktop, Cursor, Continue, etc. Configure a payer private key and Base network. Invoke tools: find_company (free), list_recent_filings (free), get_pricing (free), get_recent_filings(ticker, limit) (paid), get_disclosure_summary(rcpt_no) (paid). Also accessible via direct HTTP with curl and x402 v2 payment flow.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "koreafilings mcp": {
            "koreafilings": {
                "command": "uv",
                "args": [
                    "tool",
                    "run",
                    "koreafilings-mcp"
                ],
                "env": {
                    "KOREAFILINGS_PRIVATE_KEY": "0x_your_wallet_private_key",
                    "KOREAFILINGS_NETWORK": "base-sepolia"
                }
            }
        }
    }
}

McpServers

{
    "koreafilings": {
        "command": "uv",
        "args": [
            "tool",
            "run",
            "koreafilings-mcp"
        ],
        "env": {
            "KOREAFILINGS_PRIVATE_KEY": "0x_your_wallet_private_key",
            "KOREAFILINGS_NETWORK": "base-sepolia"
        }
    }
}

Korea Filings

PyPI
PyPI MCP
npm
License
x402

An x402-paid HTTP API that turns Korean
corporate disclosures (DART · 전자공시) into machine-ready English
summaries — pay 0.005 USDC per summary over Base, no API key, no
signup. Built for autonomous AI agents and indie agent builders
who need diverse data sources and prefer pay-per-call to subscriptions.

Korean financial data is the surface we ship today, but the value
propositions that drive adoption are pay-per-call instead of monthly
contracts and standard x402 instead of bespoke auth — the same shape
would apply to any other public-records API. No API key, no signup,
no procurement loop.

Live: <https://koreafilings.com> · API at
<https://api.koreafilings.com> · interactive docs at
/swagger-ui.

What it does

Raw DART data is free, but it's in Korean and structured for human
filings clerks, not LLMs. Korea Filings turns every disclosure into a
structured, cached, English-summarised JSON payload — agents resolve
a Korean company by name for free, then fetch a batch of summaries
for that ticker in one paid x402 call. The summary is built from the
filing body itself (not just the title), so quantitative events come
back with the actual amounts, dilution percentages, counterparty
names, and effective dates extracted from the Korean source. Two
examples — a light governance event and a quantitative capital-raise:

{
  "rcptNo": "20260424900874",
  "summaryEn": "Global SM's stock trading was suspended at 09:00 KST on April 24, 2026, pending an updated electronic registration tied to a planned 1-for-2 stock consolidation. The suspension follows a board resolution dated April 21; trading resumes April 26 once the registration completes. Existing shareholders' record positions are unaffected.",
  "importanceScore": 8,
  "eventType": "TRADING_SUSPENSION",
  "sectorTags": ["Capital Goods"],
  "tickerTags": ["095440"],
  "actionableFor": ["traders"],
  "generatedAt": "2026-04-24T08:47:51Z"
}

A quantitative event — Samsung Electronics dividend decision, returned verbatim from a live Base mainnet paid call (settled on-chain):

{
  "rcptNo": "20260430800106",
  "summaryEn": "Samsung Electronics decided on a quarterly cash dividend of KRW 372 per common share and KRW 372 per preferred share, totaling KRW 2,453,315,636,604. The dividend yield is 0.2% for common shares and 0.3% for preferred shares. The record date is March 31, 2026, with payment scheduled for May 29, 2026.",
  "importanceScore": 7,
  "eventType": "DIVIDEND_DECISION",
  "sectorTags": ["Technology Hardware & Equipment"],
  "tickerTags": ["005930"],
  "actionableFor": ["traders", "long_term_investors"],
  "generatedAt": "2026-05-06T07:29:45.911215Z"
}

The cache is the moat — the first agent to request a disclosure pays
the LLM cost; every subsequent agent for the same rcpt_no hits a
near-zero-cost DB lookup and still pays the same flat 0.005 USDC per
summary. Batch by-ticker calls hit the same cache row-for-row, so a
five-summary call is five cache lookups against one transferred
USDC payment. Margins compound as adoption grows.

How to use it

Pick whichever surface fits your stack. All three speak the same x402
flow under the hood; the wallet that signs the PAYMENT-SIGNATURE header is
the identity. No API keys. No signup.

TypeScript SDK

npm install koreafilings
import { KoreaFilings } from 'koreafilings';

const client = new KoreaFilings({
privateKey: process.env.PAYER_PRIVATE_KEY as 0x${string},
network: 'base',
});

// 1. Free — Korean / English company name → six-digit KRX ticker
const matches = await client.findCompany('Samsung Electronics');
const ticker = matches[0]!.ticker; // "005930"

// 2. Paid — 0.005 × limit USDC, settled via x402 in one round-trip
const filings = await client.getRecentFilings(ticker, 5);
for (const f of filings) {
console.log([${f.importanceScore}/10] ${f.eventType}: ${f.summaryEn});
}
console.log('paid:', client.lastSettlement?.transaction);

Sources for TypeScript / JavaScript callers — works in Node 18+, the
browser, Cloudflare Workers, and Vercel Functions. Full SDK docs in
sdk/typescript/README.md.

Python SDK

pip install koreafilings
from koreafilings import Client

with Client(private_key="0x...", network="base") as client:
# 1. Free name → ticker resolution
matches = client.find_company("Samsung Electronics")
ticker = matches[0].ticker # "005930"

# 2. Paid batch summary fetch (0.005 × limit USDC)
filings = client.get_recent_filings(ticker, limit=5)
for f in filings:
print(f"[{f.importance_score}/10] {f.event_type}: {f.summary_en}")
print("paid:", client.last_settlement.tx_hash)

MCP server (Claude Desktop, Cursor, Continue, …)

uv tool install koreafilings-mcp

In your MCP client's config:

{
  "mcpServers": {
    "koreafilings": {
      "command": "uv",
      "args": ["tool", "run", "koreafilings-mcp"],
      "env": {
        "KOREAFILINGS_PRIVATE_KEY": "0x...",
        "KOREAFILINGS_NETWORK": "base"
      }
    }
  }
}

Five tools become available — three free for discovery, two paid:

- find_company(query)free; trigram fuzzy search of 3,961
KRX-listed companies by Korean name, English name, or ticker.
- list_recent_filings(limit)free; market-wide recent DART
feed (metadata only — let the agent decide what to pay for).
- get_pricing()free; live wallet, network, USDC contract,
per-endpoint price.
- get_recent_filings(ticker, limit)paid 0.005 × limit USDC;
batch AI summaries for one ticker, with the on-chain settlement
transaction hash.
- get_disclosure_summary(rcpt_no)paid 0.005 USDC; single
AI summary for a known receipt number.

The natural agent flow is find_companyget_recent_filings:
one free call to resolve a name to a ticker, one paid call to fetch
summaries for that ticker.

curl / direct HTTP

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.