Veridigit について
Veridigitは、識別子の構造を検査するMCPサーバー兼型付きTypeScriptライブラリです。IBAN、決済カード、ISBN-13、VINをチェックサムと形式規則で検証し、ネットワーク通信なしで構造化された結果とエラー理由を返します。
主な機能
- 01mod-97によるIBAN検証
- 02Luhnによるカード検査とブランド判定
- 03ISBN-13のチェック数字検証
- 04VINの形式とチェック数字の検査
- 05構造化結果とエラー理由
- 06型付きTypeScriptライブラリ
活用シーン
- 01処理前の決済情報チェック
- 02フォームに入力された識別子の検証
- 03エージェントによる確定的な識別子検査
MCP 対応
MCPサーバーはMCPクライアントに`validate_iban`、`validate_card`、`validate_isbn`、`validate_vin`ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| iban | string | はい | 検証するIBAN。空白は無視されます。 |
詳細
veridigit
AI エージェント向けの、構造化識別子の確実な検証 — 推測ではなくチェックサムで。
LLM は、不正な IBAN を平気で受け入れ、カードのチェックディジットを間違え、ISBN や VIN のチェックディジットをでっち上げ、カードのブランドを誤って推測します。veridigit は、代わりに決定論的で信頼できる答えをエージェントに提供します。実際のチェックサムアルゴリズムを実行し、解析した各部分と明確なエラー理由を含む構造化された結果を返します。
エージェントがその場で呼び出す MCP サーバーと、アプリからインポートできる型付き TypeScript ライブラリの両方として提供されます。
v1 でサポート:
- IBAN — ISO 7064 mod-97 チェックサムと国別の長さ。75 か国以上に対応します。
- 決済カード — Luhn(ISO/IEC 7812)チェックサム、BIN によるブランド検出(Visa、Mastercard、Amex、Discover、Diners、JCB、UnionPay)、および長さのルール。
- ISBN-13 — 978/979 のプレフィックスと mod-10 の加重チェックディジット。
- VIN — ISO 3779 の文字セット(I/O/Q を除外)と、9 桁目の置換チェックディジット。
理由
無作為に生成された、記憶にない識別子 32 件を対象に、ツールを使わない最先端モデルはチェックディジットを91% の確率で間違えました。内訳は、IBAN 100%、VIN 100%、ISBN-13 88%、カード/Luhn 75% でした。一方、veridigit の誤りは**0%**です。失敗は見えにくいものです。モデルは自信に満ちた整った回答を返しますが、実際には間違っています。veridigit は推測をアルゴリズムに置き換えます。
ベンチマークと再現可能なハーネス:https://qinisolabs.github.io/veridigit
91% という数値は、ある最先端モデルを温度 0、ツールなしで使用した結果です。
bench/のハーネスを使って、お好きなモデルで実行してみてください。
MCP サーバーとして使用
// in your MCP client config
{
"mcpServers": {
"veridigit": { "command": "npx", "args": ["-y", "veridigit"] }
}
}
公開されるツール:validate_iban、validate_card、validate_isbn、validate_vin。
ライブラリとして使用
npm install veridigit
import { validateIban, validateCard, validateIsbn13, validateVin } from "veridigit";
validateIban("GB82 WEST 1234 5698 7654 32");
// { valid: true, countryCode: "GB", country: "United Kingdom", checkDigits: "82", ... }
validateCard("4111 1111 1111 1111");
// { valid: true, luhnValid: true, brand: "Visa", lengthValid: true, ... }
validateIsbn13("978-0-306-40615-7"); // { valid: true, type: "ISBN-13", checkDigit: "7", ... }
validateVin("1HGCM82633A004352"); // { valid: true, checkDigit: "3", ... }
ヘルパーのエクスポートも利用できます:ibanCheckDigits、luhnValid、luhnCheckDigit、detectBrand、isbn13CheckDigit、vinCheckDigit、supportedIbanCountries。
対象範囲
veridigit は識別子の構造、つまり形式とチェックサムを検証します。銀行口座、カード、書籍、車両が実在するか、有効か、または誰かに所有されているかは確認しません。ネットワーク呼び出しも行いません。
開発
npm install
npm run build # tsc -> dist/
npm test # parity/known-answer tests via tsx
厳選された参照データ(IBAN の国別仕様、カードの BIN 範囲)は data/ にあります。
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。