mcpField
Q
quote-vat-accept-to-invoice

quote-vat-accept-to-invoice

ローカル
mcp.zovo.one金融データ21 日前に更新

quote-vat-accept-to-invoice について

フリーランスや企業向けに、VAT 対応の見積もりを作成・管理するローカル MCP サーバーです。承諾された見積もりは明細と金額を維持して、連携する請求書ストアと採番系列を使った請求書に変換できます。

主な機能

  1. 01番号付き見積もりの作成と修正
  2. 02VAT、割引、合計額の計算
  3. 03メール用テキストの出力
  4. 04承諾済み見積もりを請求書化
  5. 05見積もり状態と成約率の追跡
  6. 06ブランド入り A4 PDF の生成

活用シーン

  1. 01顧客向けの価格付き見積もり作成
  2. 02交渉後に未完了の見積もりを修正
  3. 03承諾された見積もりを請求書に変換
  4. 04期限切れ見積もりと成約率の確認

MCP 対応

見積もり管理ツール、未期限の見積もりを返すリソース、フォローアップ用プロンプトを MCP クライアントに提供します。承諾された見積もりから、連携する請求書サーバーのストアに請求書を作成できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbquotes.mcpb0.21.0

ツール

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

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

詳細

mcp-quotes

「Acme に 12 時間、90 EUR に加えて 300 EUR のセットアップ料金、VAT 23%、有効期間 14 日で見積もりを作成して」と言うだけで、今日送れる番号付きの見積書が作成されます。税率ごとの VAT を記載した明細表、整数の最小通貨単位での合計、ご利用のタイムゾーンで計算された有効期限、メールにそのまま貼り付けられるプレーンテキスト版が含まれ、Pro では請求書と同じ A4 PDF レイアウトも利用できます。クライアントが承諾したら、quote_accept が見積書を mcp-invoice ストア内の実際の請求書に変換します。同じクライアント一覧と同じ番号体系を使い、金額を再計算せず見積書から引き継ぎます。すべてお使いのマシン上のプレーンな JSON ファイルに保存され、外部にアップロードされることはありません。

公式 MCP Registry に掲載されています(io.github.theluckystrike/quotes-estimates-proposals-vat-win-rate)。

AI Product Index に掲載されています - mcp.zovo.one/s/quotes で利用できるライブのリモートエンドポイント、無料プラン、登録不要です。

見積書のデモ

チャットから価格と VAT が正確な見積書を送り、1 回の呼び出しで承諾を請求書に変換できます。

60 秒でインストール

@theluckystrike/mcp-quotes の npm 公開は保留中です。それまでは、ワンクリックの .mcpb バンドルまたは クローンしてビルドする方法をご利用ください。

ワンクリック(.mcpb):最新リリースから quotes.mcpb をダウンロードし、Claude Desktop でダブルクリックします: https://github.com/theluckystrike/mcp-servers/releases/latest

(claude_desktop_config.json):

{
  "mcpServers": {
    "quotes": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-quotes"]
    }
  }
}

Claude Code:

claude mcp add quotes -- npx -y @theluckystrike/mcp-quotes

(.cursor/mcp.json):Claude Desktop と同じエントリーです。

ソースから:

git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-servers
npm install
npm run build -w packages/mcp-license -w servers/invoice -w servers/quotes

先に servers/invoice をビルドしてください。金額、VAT、クライアント、番号付けのエンジンは、ここからインポートされます。その後、クライアントの command を node に設定し、引数として servers/quotes/dist/index.js の絶対パスを指定します。

Pro モードで実行するには、同じ設定ブロックで MCP_LICENSE_KEY を設定するか、キーを使って一度 license_activate を呼び出してください。

ツール

ツール機能
quote_createクライアントの見積書を作成します。数量と最小通貨単位での単価を指定する明細項目、項目ごとの VAT または事業者のデフォルト VAT、任意の割引、有効期間を設定します。Q-YYYY-NNNN を割り当てます
quote_listクライアント、合計、有効期限、状態(未処理、期限切れ、承諾済み、辞退済み)を含むすべての見積書を表示します。状態、クライアント、見積日で絞り込めます
quote_get1 件の見積書について、変換後の請求書を含む保存済みレコード全体を取得します
quote_updateまだ未処理の見積書を修正します。合計は再計算されます。承諾済みまたは辞退済みの見積書は編集されません
quote_send_text明細表、VAT の明細、合計、有効期限を含むプレーンテキストの見積書を作成します。メールにそのまま貼り付けられます。無料
quote_accept見積書を承諾済みとしてマークし、請求書に変換します。ストアが存在する場合は請求書サーバーで直接作成し、それ以外の場合は invoice_create ですぐに使える項目として返します
quote_decline理由を添えて失注としてマークします。未処理の見積書に数えられなくなり、受注率に反映されます
quote_deleteまだ誰にも見せていない下書きの見積書を削除し、空いた未処理見積書の枠を取り戻します。送信済み、承諾済み、請求書化済み、またはエクスポート済みの場合は、依存する対象を明示して削除を拒否します。無料
quote_pdfA4 PDF を作成し、パスを返します。Pro
quote_report通貨ごとの未処理、承諾済み、辞退済み、期限切れの合計、未処理のままの金額、受注率を表示します。現在の暦年の年初から今日までの期間は無料です
license_status無料モードまたは Pro モードを表示します
license_activatePro キーを有効化します(オフラインで検証)

リソース:quotes://open は、有効期間内のすべての見積書を JSON として返します。

プロンプト:quote_followup は未処理の見積書、まもなく期限が切れる見積書、すでに期限切れの見積書を確認し、フォローアップ文を作成します。

できること

指示ツール
「Acme に、12 時間、90 EUR に加えてセットアップ費用 300 EUR、VAT 23%、有効期間 14 日間で見積もりを作成して。」quote_create
「送信できるように、メールの文面にして。」quote_send_text
「Q-2026-0003 を 20 時間に変更して、有効期間をさらに 2 週間延ばして。」quote_update
「Acme が承諾しました。請求書を作成して。」quote_accept
「Beta はもっと安いところに決めました。」quote_decline
「誤って Acme に 2 回見積もりを出したので、2 件目を削除して。」quote_delete
「まだ保留中のものと、受注率を教えて。」quote_report
「返答がないまま期限切れになった見積もりはどれですか?」state: "expired" を指定した quote_list

使用例

You: Quote Acme for 12 hours of API work at 90 EUR plus a 300 EUR setup fee,
23% VAT, good for 14 days.

  quote_create {
    client: "Acme", currency: "EUR", validity_days: 14,
    items: [
      { description: "API work",  quantity: 12, unit_price_minor: 9000,  tax_rate: 23 },
      { description: "Setup fee", quantity: 1,  unit_price_minor: 30000, tax_rate: 23 }
    ]
  }
  -> Q-2026-0001, valid until 2026-09-18

Assistant:
  API work    12  x  EUR 90.00   =  EUR 1080.00
  Setup fee    1  x  EUR 300.00  =  EUR 300.00
  Subtotal                          EUR 1380.00
  VAT 23% on EUR 1380.00             EUR 317.40
  TOTAL                              EUR 1697.40
  Valid until 2026-09-18.

You: They said yes.

  quote_accept { id: "Q-2026-0001" }
  -> accepted, invoice INV-2026-0004, due 2026-09-18, total EUR 1697.40

価格は最小通貨単位で入力します。9000 は EUR 90.00、150000 は JPY 150,000 です。入力値に小数は一切含まれないため、価格が 10 分の 1 の値で入力されることはありません。

Free と Pro

FreePro
オープンな見積もり同時に 5 件無制限
quote_send_text(メール送信用テキスト)はい、無制限はい、無制限
承諾、辞退、修正、VAT、割引、多通貨はいはい
quote_delete(下書きのみ)と重複防止機能はいはい
quote_pdfいいえはい
quote_report(案件の進捗と受注率)今年の年初から現在まで任意の日付範囲
PDF のブランディング該当なしフッターのクレジット表記なし。ロゴも使用可能

上限の対象は、まだ OPEN 状態の見積もりです。承諾、辞退、または期限切れになると枠が空くため、見積もりをきちんと完了させるフリーランサーが上限に達することはありません。枠の無駄を防ぐ機能がほかに 2 つあり、どちらも無料です。quote_create は、すでにオープンな見積もりと同一の見積もりを拒否し、該当する見積もりを示します。また、quote_delete は誰にも見られていない下書きを削除し、枠をすぐに空けます。

Pro は 1 回限りの $19、またはコレクション内のすべてのサーバーで利用できる $39 の生涯ライセンスです。

実測に基づく説明:承諾された見積もりを再計算せず、コピーする理由

quote_accept は、保存済みの見積もり明細から請求書を作成します。承諾時点の価格から合計額を再計算する方法も考えられますが、実測の結果、採用しませんでした。この方法では、共有ビジネスプロフィールに現在設定されている VAT 税率が使われ、クライアントに提示した時点の税率が使われないためです。

実測(test/adversarial.test.mjs、「見積もりから承諾までの間に VAT 税率が変更されても、合意した合計額は変わらない」):プロフィールの既定税率 23%で、税抜 EUR 1,000.00 の見積もりを発行すると、クライアントに提示される金額は EUR 1,230.00 です。クライアントから返答がある前に、プロフィールの default_tax_rate が 8%に変更されます。これは税率の変更、新しいクライアント区分、設定の修正などによって起こり得ます。承諾時に再計算すると、合意した書類の金額より EUR 150.00 少ない金額で請求書が作成されます。しかも、その見積もりでは、どちらのレコードにも金額が異なる理由が記録されません。保存済みの明細をコピーすれば EUR 1,230.00 で請求書が作成され、tax_lines[0].rate === 23 というアサーションも成立します。

見積もりの価格を最小通貨単位で受け取り、小数を拒否するのも、同じルールに基づいています。見積もり上の数値と請求書上の数値は、最後まで同じ整数です。

数値、金額、日付

見積書 ID は Q-YYYY-NNNN です。カウンターは年ごとに管理され、見積書を保存する前に書き込まれるため、クラッシュが発生すると ID は消費され、再利用されません。また、既存の ID もスキャンするため、復元した quotes.json から、クライアントがすでに受け取った書類に記載されている ID が再び払い出されることはありません。年は意図的に ID の一部になっています。年初に単純な Q-0001 へリセットすると、昨年 1 月の見積書と衝突するためです。

金額は最初から最後まで整数の補助通貨単位で扱い、1 通貨単位に相当する補助通貨単位の数は、mcp-invoice の ISO 4217 テーブルに基づきます。ほとんどの通貨では 2、JPY、KRW、ISK などでは 0、KWD や湾岸のディナールでは 3、CLF と UYW では 4 です。VAT の計算や金額フォーマッターをここに二重に実装しているわけではありません。computeTotals、currencyDecimals、formatMoney は @theluckystrike/mcp-invoice/lib からインポートされるため、見積書と、それをもとに作成される請求書は、明細ごとに計算した後に合算する場合も、同じ丸め結果になります。1 つの見積書で使える通貨は 1 種類です。明細間で通貨が混在している場合、最初に登場した見出しの通貨で合算するのではなく、処理を拒否します。

日付は ISO 形式の YYYY-MM-DD です。「今日」の日付、したがって見積書の有効期限が切れているかどうかは、共有ビジネスプロファイルで timezone が設定されている場合、そのタイムゾーンで計算されます。そうでないと、まだ米国時間のままのノートパソコンからワルシャワ時間の 00:30 に発行した見積書が前日付になり、1 日早く期限切れになってしまうためです。

データの保存方法

見積書と ID カウンターは ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/quotes/ の下に、それぞれ quotes.json と counter.json として保存されます。生成したファイル用に pdf/ サブフォルダーもあります。quote_accept で作成された請求書は請求書サーバーのディレクトリ .../mcp-servers/invoice/ に書き込まれるため、そこで invoice_list を実行すると一覧に表示され、番号の連番とクライアント一覧も共有されます。

状態を変更するすべての呼び出しは、.../quotes/.lock のアドバイザリロックディレクトリ内で実行されます。請求書を書き込む処理は必ず .../invoice/.lock も取得します。常に見積書、次に請求書の順で取得し、servers/recurring と同じ順序にすることで、2 つのプロセスがデッドロックしないようにしています。保存時はプロセスごとの一時ファイルに書き込み、配置先のファイル名に変更します。実測では、1 つのデータディレクトリに対して 2 つのプロセスが見積書を 40 件作成すると、見積書 40 件と重複のない ID 40 件が残ります(test/concurrency.test.mjs)。

保存ファイルが有効な JSON でない場合、「見積書なし」として扱うことはありません。ファイルはバイト単位でそのまま quotes.json.corrupt-<timestamp> に移動され、隣に .corrupt マーカーが書き込まれます。その後のすべての呼び出しは、読み取りを含めて、人が問題を解決するまで失敗します。解決するには、restore a good copy ... then delete the marker の手順に従ってください。

制限事項と正直な注意点

  • 無料プランでは、同時に保持できる未完了の見積書は 5 件です。テキストのエクスポート、承諾、辞退、修正は無料プランでも無制限に利用でき、パイプラインレポートは現在の暦年の年初から今日までの結果を無料で表示します。PDF と、より長い期間を指定したレポートは Pro の機能です。
  • 承諾時には共有エンジンを通じて請求書が作成されるため、請求書サーバー独自の無料プランの上限である「暦月あたり 3 件の請求書」は適用されません。ここでは見積書の上限が適用され、その旨がレスポンスに示されます。
  • 見積書の有効期限が切れている場合、有効期限を延長する(quote_update {valid_until})か、allow_expired: true を指定するまで、quote_accept は拒否されます。これは意図的な制約です。有効期限が切れた価格は、再確認する必要があるためです。
  • メールは送信されません。quote_send_text でテキストを取得し、quote_pdf でファイルを取得できます。クライアントへの送付はご自身で行ってください。
  • 通貨換算には対応していません。見積書の通貨は作成時に固定され、すべての明細がその通貨で記載されている必要があります。
  • 承諾は取り消せません。作成された請求書は番号の付いた書類であるため、承諾を取り消すことはできません。代わりに、請求書サーバーでその請求書をキャンセルしてください。

プライバシー

すべてのデータはローカルに保存されます。お使いのデータディレクトリ内のプレーンな JSON ファイルです。アカウントも API キーも必要なく、いかなるネットワーク通信も行いません。ライセンスキーはオフラインで検証されます。

theluckystrike が開発しました。サポート:[email protected]

MCP サーバーとしてこれらのドキュメントを使用する

任意の MCP クライアント(Claude、Cursor、Windsurf、VS Code)から、GitMCP 経由でこのリポジトリのドキュメントを直接読み取れます。インストールは不要です。

コメント

MCP は初めてですか?

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

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