
Ja Normalize
io.github.KojimaHyui01Published by GitHub account KojimaHyui01v0.1.2Updated Oct 24, 2026
Holidays/business days for 200+ countries; Japanese address, name, bank and company normalization.
Overview
A local MCP server that gives an assistant Japanese text normalization and worldwide holiday and business-day lookups, paid per call in USDC via x402.
- What you can do
- Look up holidays and business days for 200+ countries, including regional variants and country-specific weekends, and list supported countries for free. Normalize Japanese addresses into structured fields with coordinates, and split Japanese names into surname and given name with readings and passport-style romaji. Resolve Japanese bank and branch names to institution and branch codes, and company names to corporate numbers and official names. Normalize Japanese text: full-width to half-width, Japanese era dates to ISO, and extraction of phone numbers, postal codes and emails. Fetch Japanese public holidays and bank business-day calculations, and compare JPY crypto prices across domestic交易所.
- When to use it
- Useful when an assistant handles Japanese business data — addresses, personal names, bank details, corporate numbers — or needs holiday and business-day calculations across many countries. Also handy for Japanese date and text cleanup and JPY crypto price checks.
- Requirements
- Runs as a local npm package (ja-normalize-mcp) over stdio on a desktop machine. Network access is needed for the paid API calls. An optional X402_PRIVATE_KEY (Base wallet holding USDC) covers calls beyond the free daily quota; no other authentication is declared.
Installation
In SourceWeft
- Open Ja Normalize in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
x402-ja-api
日本語テキストを「構造化」して返すAPI群。AIエージェントが x402 プロトコルで1コールごとにUSDCを払って使う。
無料で読めるもの: GET / GET /health GET /openapi.json GET /.well-known/x402 GET /llms.txt GET /v1/holidays/countries
売上ダッシュボード(運営者専用 / STATS_TOKEN 必須): https://x402-ja-api.onrender.com/stats — 累計受取USDC・件数・支払元数・日別・直近入金(オンチェーン、Blockscout)+起動後のエンドポイント別 paid/free/402 カウンタ。?format=json で機械向け。
動かす
未払いで叩くと 402 と PAYMENT-REQUIRED ヘッダ(base64 JSON)が返る:
支払いを含むE2E(テストネット・買い手用の別ウォレットが必要):
本番に出す手順
- ウォレット: 受取専用のEVMアドレスを新規作成し
PAY_TO_ADDRESSに設定(秘密鍵はサーバーに置かない。受け取るだけなので不要) - Coinbase CDP: https://portal.cdp.coinbase.com でAPIキーを発行 →
CDP_API_KEY_ID/CDP_API_KEY_SECRET、X402_NETWORK=base(facilitator手数料: 1,000件まで無料、以降 $0.001/件。ガス代はfacilitator負担) - 法人番号API: https://www.houjin-bangou.nta.go.jp/webapi/ でアプリケーションIDを申請 →
HOJIN_APP_ID発行まで2〜4週間。届くまで/v1/company/resolveは 503 を返す - デプロイ: 恒久的なドメインが必須(x402scanはngrok等のトンネルを拒否)。Render / Fly.io / Railway の無料〜最小プランで十分。
PUBLIC_BASE_URLを実URLに - 自己診断:
npm run doctor -- https://your-domain - 登録(発見されるため)
- x402scan:
POST https://www.x402scan.com/api/x402/registry/register-origin {"origin":"https://your-domain"}または UI から - CDP Bazaar: 最初の決済が通ると自動索引(
declareDiscoveryExtension済み) - Circle Agent Marketplace: https://agents.circle.com/services の申請フォーム
- x402Relay(日本): https://x402relay.jp 系のカタログに申請
- x402scan:
構成
注意(法務・税務)
- USDC の受取自体に登録は不要。受け取った対価は円換算で雑所得、保有中の為替差損益も雑所得
- 法人番号データ利用時は「このサービスは国税庁法人番号システムWeb-API機能を利用して取得した情報をもとに作成しているが、サービスの内容は国税庁によって保証されたものではない」旨の表示が必要(
/のレスポンスに追加予定) - 住所データは Geolonia(アドレス・ベース・レジストリ由来)。ライブラリの利用条件に従う
- 祝日データは内閣府「国民の祝日」CSV(政府標準利用規約 v2.0、出典明記)
- 世界の祝日は date-holidays(コードISC、データCC-BY-3.0、出典明記)
- 銀行・支店データは zengin-code(MIT、公開情報から自動収集)。
npm update zengin-codeで追従 - 人名辞書は mecab-ipadic(NAISTライセンス、
data/names/IPADIC-COPYING.txt)と japanese-personal-name-dataset(MIT)由来
次にやること
-
PAY_TO_ADDRESSを本物のウォレットに - 法人番号 Web-API のアプリケーションID申請(リードタイムが一番長いので最初に)
- Render/Fly にデプロイ、
doctor通す - x402scan / Circle / x402Relay に登録
- 死活監視(落ちたら通知)— 登録済みルートの79%が死んでいる市場なので、生きているだけで上位
- インボイス登録番号の有効性検証(国税庁 適格請求書発行事業者公表システム Web-API、別途ID申請)
Source: README.md at commit 1811b60
Tools
0Version history
1- v0.1.2LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.