mcpField
Q
quote-template

quote-template

リモート
mcp.zovo.one金融データ21 日前に更新
リポジトリ公式サイト

quote-template について

quote-template は、フリーランスや事業者向けに VAT、期限、多通貨の合計を含む見積もりを作成する MCP サーバーです。メール用テキストや A4 PDF を生成でき、受諾された見積もりは記録済みの金額を保って請求書に変換できます。データはローカルの JSON ファイルに保存されます。

主な機能

  1. 01VAT、割引、有効期限付き見積もりの作成
  2. 02メール用プレーンテキストの生成
  3. 03受諾した見積もりを請求書に変換
  4. 04見積もり状況と成約率の確認
  5. 05A4 見積もり PDF の生成

活用シーン

  1. 01税額を含むサービス見積もりの作成
  2. 02見積もり文面のメール送信
  3. 03承認済み見積もりから請求書を作成
  4. 04未完了の見積もりと成約率の追跡

MCP 対応

MCP サーバーとして、見積もりの作成、確認、改訂、受諾、辞退、レポート用ツールを提供します。未期限切れ見積もりのリソースとフォローアップ用プロンプトも備えます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.zovo.one/mcp/quote-template
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.zovo.one/mcp/quote-template認証が必要
パッケージ
mcpbquotes.mcpb0.21.0

ツール

12
パラメーター型必須説明
itemsarrayはい見積もり対象の明細項目
notesstringいいえ合計の下に印字する自由記述。作業範囲や除外事項など。10000 文字以内
clientstringはいクライアント名または ID。請求書サーバーに登録済みの名前を指定すると、住所、メールアドレス、VAT ID が見積書に追加されます
currencystringいいえ既定では、ビジネスのデフォルト通貨が使用されます
tax_ratenumberいいえ個別の税率が指定されていない明細行に適用する VAT の割合です。既定ではビジネスのデフォルト値が使用されます
issue_datestringいいえYYYY-MM-DD。デフォルトはビジネスプロフィールのタイムゾーンでの今日の日付です
valid_untilstringいいえYYYY-MM-DD 形式の明示的な有効最終日。validity_days より優先されます
client_emailstringいいえユーザーから提供された場合のみ使用します。そうでなければ、保存済みの顧客メールアドレスが使用されます
client_vat_idstringいいえクライアントの VAT/税務登録 ID
validity_daysintegerいいえ見積書の有効日数。見積日から起算し、初日と最終日を含みます。デフォルトは 30 日です
client_addressstringいいえQUOTE FOR ブロックに記載する郵送先住所。改行を含められます
discount_percentnumberいいえ各明細行に適用する割引率

詳細

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 つのサーバーを複数のクライアントで再利用できます。