mcpField
M
mcp-einvoicing-in

mcp-einvoicing-in

ローカル
github.com/cmendezs金融データ17 週間前に更新

mcp-einvoicing-in について

mcp-einvoicing-inは、FORM GST INV-01 schema v1.1に基づき、インドのGST電子請求書JSONを作成・構造検査するMCPサーバーです。オフラインで動作し、IRPから返された署名付きQR文字列を画像化できますが、IRPへの送信は行いません。

主な機能

  1. 01INV・CRN・DBNのJSONデータ作成
  2. 02GST請求書の項目と業務ルール検査
  3. 03GSTIN識別子の検証
  4. 04署名付きQR文字列のPNG化
  5. 05対応する書類範囲の表示

活用シーン

  1. 01IRPへの送信に備えた請求データの作成
  2. 02GSTINと税率の組み合わせのオフライン確認
  3. 03IRPから返された署名付きQRコードの表示

MCP 対応

GST請求データの作成・検証、GSTIN検証、QR画像化のツールをMCPクライアントに公開します。ネットワーク通信やIRPへの送信は行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cmendezs-mcp-einvoicing-in": {
"command": "uvx",
"args": [
"mcp-einvoicing-in"
]
}
}
}
起動コマンドuvx mcp-einvoicing-in

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-einvoicing-in0.2.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-einvoicing-in 🇮🇳

英語 | ヒンディー語

License PyPI version Python mcp-einvoicing-in MCP server

GSTN の FORM GST INV-01 スキーマ v1.1(CGST Act 2017 s.31 および CGST Rule 48(4)、Notification No. 68/2019-Central Tax)に準拠した、インドの GST 電子請求書発行用ツールを提供する Python MCP サーバーです。AI エージェント(Claude、IDE)が GST 電子請求書の JSON ペイロード(INV、CRN、DBN の文書タイプ)を構築して構造的に検証し、IRP から返された署名付き QR 文字列を表示可能な画像としてレンダリングできます。

フェーズ A の範囲。 このパッケージが対象とするのは、オフラインでのペイロード構築、構造検証、GSTIN 税務識別番号の検証のみです。Invoice Registration Portal(IRP)への送信は行いません。ライブ送信(認証/トークン、IRN の生成、IRN のキャンセル)は、NIC の電子請求書 API 仕様がまだ本プロジェクトに提供されていないため保留となっており、後のフェーズで対応する予定です(下記「仕様の提供状況」を参照)。現在実装されている機能の詳細は、利用可能なツールを参照してください。


はじめに

このパッケージは、電子請求書発行 MCP サーバー向けの共通基盤ライブラリである mcp-einvoicing-core を基盤としています。InvoiceDocument の基本モデルと、GSTIN 検証機能 TaxIdentifier.validate_in_gstin を提供します。

mcp-einvoicing-core は依存関係として自動的にインストールされるため、追加の手順は必要ありません。

GST 電子請求書発行はクリアランスモデルのシステムです。請求書が法的に有効となるのは、IRP(NIC が運営する Invoice Registration Portal)がサプライヤーの JSON ペイロードを検証し、Invoice Reference Number(IRN)、受領番号/日付、署名付き QR コードを返した後です(CGST Rule 48(4)/(5))。このパッケージは、サプライヤーが送信するリクエストペイロードを構築して構造的に検証しますが、IRP への送信自体は行いません(上記「フェーズ A の範囲」を参照)。

インストール

PyPI 経由(推奨)
pip install mcp-einvoicing-in

または、事前にインストールせずに uvx を使用する場合:

uvx mcp-einvoicing-in
ソースから
git clone https://github.com/cmendezs/mcp-einvoicing-in.git
cd mcp-einvoicing-in
pip install -e ".[dev]"

設定

現在のフェーズ A の範囲では、このパッケージに環境変数は必要ありません。ネットワーク呼び出しを行わないためです。今後、ライブ IRP 送信が実装された際には IRP/GSP の認証情報が必要となるため、その時点でこのセクションを更新します。

Claude Desktop との連携

Claude Desktop の設定ファイル(claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "einvoicing-in": {
      "command": "uvx",
      "args": ["mcp-einvoicing-in"]
    }
  }
}

Cursor との連携

同じ mcpServers ブロックを、次のいずれかに追加します。

  • グローバル:~/.cursor/mcp.json
  • プロジェクト固有:プロジェクトのルートにある .cursor/mcp.json
{
  "mcpServers": {
    "einvoicing-in": {
      "command": "uvx",
      "args": ["mcp-einvoicing-in"]
    }
  }
}

保存後に Cursor を再読み込みします(またはコマンドパレットから「Reload Window」を実行します)。

Kiro との連携

次のいずれかに追加します。

  • グローバル:~/.kiro/settings/mcp.json
  • ワークスペース:.kiro/settings/mcp.json
{
  "mcpServers": {
    "einvoicing-in": {
      "command": "uvx",
      "args": ["mcp-einvoicing-in"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Kiro は保存時に MCP 設定を自動的に再読み込みします。このパッケージの将来のバージョンで認証情報が必要になる場合は、このファイルに平文のシークレットを記載するのではなく、"VAR_NAME": "${VAR_NAME}" のシェル補間構文を使用してください。

利用可能なツール

範囲
  • in__get_supported_scope — このパッケージが現在サポートする文書タイプ、供給タイプ、および明示的な対象外項目を返します。
ビルドと検証
  • in__build_invoice — 構造化入力を INInvoice に照らして検証し、GST e-invoice JSON ペイロード(INV/CRN/DBN)を構築します。IRN は出力しません。このフィールドは IRP が生成するものであり、サプライヤーが設定するものではありません。
  • in__validate_invoice — オフラインで構造およびビジネスルールを検証します。必須フィールド、列挙値への適合、CGST+SGST と IGST の組み合わせ(明細および書類合計のレベル)、GSTIN と州コードの整合性を確認します。XSD/Schematron による検証はありません。FORM GST INV-01 は JSON であり、XML ではありません。
QR
  • in__render_irp_qr_png — IRP から返された署名付き QR 文字列を、表示可能な PNG として描画します。QR の内容をデコードまたは解釈することはありません。その内容を記載した NIC e-invoice API 仕様は、現時点ではこのプロジェクトで利用できません(下記の「仕様の入手状況」を参照)。

仕様の入手状況

インド国外から最新かつ正確な NIC/GSTN 技術仕様を入手することは困難です。GSTN は厳格な地域ファイアウォールを適用しており、インド国外の IP アドレスは頻繁にブロックまたはレート制限されます。このパッケージは、メンテナーから直接提供された仕様書(FORM GST INV-01 スキーマ v1.1、CGST 通知 68/2019-CT および 72/2020-CT、ならびに現在の AATO 義務化のしきい値を確認する通知 No. 10/2023-CT)のみを使用して構築されており、自動エージェントがインターネットから取得した文書はありません。そのため、次のようになっています。

  • このプロジェクトではまだ利用できないもの: specs/README.md の「Pending specs」表に記載された包括的な一覧。
  • NIC e-invoice API 仕様がなければ、IRP へのライブ送信ツールを責任を持って構築できません。「Phase A scope」を参照してください。

インドにお住まいで、そこに記載された文書を提供できる場合は、Spec Update issue template を使用して issue を作成してください。このテンプレートでは、文書名、公式ソース URL、バージョン、取得日を記録します。その後のプルリクエストで、ソース表の項目と出所/再配布に関する確認を添えて、ファイルを specs/ に追加します。2 段階の手順について詳しくは、CONTRIBUTING.md を参照してください。

アーキテクチャ

INInvoice は InvoiceDocument(mcp_einvoicing_core.models)をサブクラス化しています。FORM GST INV-01 には EN 16931/UBL/CII の系譜がなく、フラットな JSON クリアランスモデルのスキーマであるため、このパッケージでは mcp-cfdi-mx(CFDI)および mcp-nfe-br(NF-e)と同じ InvoiceDocument の経路を採用しています。INInvoiceLine は InvoiceLineItem をサブクラス化し、基底の明細モデルに同等の項目がない、スキーマ固有の GST/HSN/cess フィールドを追加します。GSTIN フィールドは TaxIdentifier.validate_in_gstin を使って検証します。この関数は INInvoice 独自のモデルバリデーターから呼び出されます。このパッケージが識別子検証ロジックを独自に再実装することはありません。ワイヤ形式が XML ではなく JSON であるため、Schematron/XSD バリデーター層はありません(代わりに validators/structural.py が通常の Python によるビジネスルールのチェックを実装しています)。

ベンダー中立性

このサーバーは標準そのものを実装し、書類をローカルで構築・検証します。商用請求書プラットフォームのクライアントではなく、認証情報が自分のインフラストラクチャの外に出ることはありません。

IRP に接続するには GSP(GST Suvidha Provider)が必要です。このパッケージはペイロードをローカルで構築し、構造を検証しますが、ライブ IRP 送信は NIC API 仕様の入手待ちであり、まだ実装されていません(上記の「仕様の入手状況」を参照)。

コントリビューション

開発環境のセットアップ、PR チェックリスト、コミットのスタイルについては、CONTRIBUTING.md を参照してください。

その他の電子請求書発行 MCP サーバー

国サーバー
🌍 世界mcp-einvoicing-core
🇧🇪 ベルギーmcp-einvoicing-be
🇧🇷 ブラジルmcp-nfe-br
🇫🇷 フランスmcp-facture-electronique-fr
🇩🇪 ドイツmcp-einvoicing-de
🇮🇳 インドmcp-einvoicing-in
🇮🇹 イタリアmcp-fattura-elettronica-it
🇲🇽 メキシコmcp-cfdi-mx
🇵🇱 ポーランドmcp-ksef-pl
🇸🇬 シンガポールmcp-invoicenow-sg
🇪🇸 スペインmcp-facturacion-electronica-es
🇦🇪 アラブ首長国連邦mcp-einvoicing-ae

ライセンス

このプロジェクトは Apache 2.0 ライセンスの下でライセンスされています。詳細は LICENSE をご覧ください。 完全なバージョン履歴については、CHANGELOG.md をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。