rate-card について
適用開始日付きの商品価格と役割別の時間単価を管理する MCP サーバーです。カタログ項目から請求書用と見積書用の明細を生成し、それぞれの形式と価格単位を区別します。
主な機能
- 01日付別の SKU 価格行管理
- 02役割別の時間単価設定
- 03請求書・見積書用明細の生成
- 04テキストまたは PDF での価格表出力
- 05カタログの価格充足状況の集計
活用シーン
- 01カタログ SKU を使った請求書の価格設定
- 02役割別単価による見積明細の作成
- 03過去の日付で有効な価格の確認
- 04通貨別の価格未登録項目の確認
MCP 対応
カタログとレートカードのツールを MCP クライアントに公開し、invoice_create と quote_create の形式に合わせた明細を生成します。請求書や見積書そのものは作成しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-catalogue
公式 MCP Registry(io.github.theluckystrike/catalogue)に掲載されています。
請求書と見積書の両方が参照できる場所に、価格表と料金表をそれぞれ 1 つずつ保管します。
商品にコード、名前、単位、最小通貨単位での価格、そしてその価格が適用される日を登録します。役割にも同じ方法で時間単価を登録します。次に、顧客が購入した品目のリストをカタログに渡すと、価格が設定済みの明細項目が返されます。数量、説明、単価、VAT 税率が、invoice_create が受け取る引数の形式と quote_create が受け取る引数の形式にそれぞれ正確に一致します。
何も捏造せず、二重に保存することもありません。SKU は価格の行を保持し、それぞれに適用開始日があります。日付時点の価格は呼び出し時に算出されるため、7 月に価格を上げても、6 月の案件の見積価格が書き換わることはありません。不明なコードに対しては、推測した価格ではなく、コードを明記した拒否が返されます。
@theluckystrike/mcp-catalogue の npm 公開は保留中のため、現在 npx -y @theluckystrike/mcp-catalogue は 404 を返します。それまでは、ワンクリックで使える .mcpb バンドルか、クローンしてビルドする方法をご利用ください。
インストール
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または
%APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"catalogue": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-catalogue"]
}
}
}
Claude Code
claude mcp add catalogue -- npx -y @theluckystrike/mcp-catalogue
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト)に、Claude Desktop と同じエントリを設定します。
ツール
| ツール | 機能 |
|---|---|
sku_set | カタログ項目を追加するか、価格を再設定します。コード、名前、単位、任意の VAT 税率、および通貨、価格帯、適用開始日を指定した最小通貨単位での価格を設定します |
sku_get | 指定日の SKU の価格を、該当する行と、すでに登録されている後続の価格とともに返します |
sku_list | 適用中の価格を含むカタログを、コードのプレフィックス、通貨、価格帯で絞り込みます |
sku_delete | 誤って追加した項目を削除します。ほかの項目が依存していないものに限ります。すべてのプランで無料です |
rate_set | 役割の料金表に、適用開始日と、任意で SKU を紐付けて時間単価を設定します |
rate_get | 指定日の役割の時間単価、またはすべての料金表を返します |
lines_resolve | SKU と役割の明細リストに価格を設定し、invoice_create 用および quote_create 用の項目に変換します |
price_list_text | 適用中の価格、適用開始日、続いて人件費をプレーンテキストで出力します |
price_list_pdf | 通貨と価格帯ごとの A4 PDF 形式の価格表を出力します |
catalogue_report | SKU、適用中の行、後続の行に置き換え済みの行、デフォルト通貨で価格がない行を表示します |
license_status / license_activate | Free または Pro の状態と、アップグレード方法を表示します |
Free と Pro の比較
| Free | Pro | |
|---|---|---|
| カタログ内の SKU | 25 | 無制限 |
| SKU ごとの価格行 | 100 | 100 |
| 料金表 | 無制限 | 無制限 |
| 設定、価格取得、一覧表示、明細の解決 | はい | はい |
| 価格表(テキスト) | はい | はい |
| 未使用の SKU の削除 | はい | はい |
standard 以外の価格帯 | いいえ | はい |
| 価格表(PDF) | いいえ | はい |
| カタログレポート | いいえ | はい |
Pro の購入先:https://mcp.zovo.one/buy/catalogue(このサーバーは一度限りの支払いで $19、すべてのサーバーは $39、生涯利用可能)。キーはオフラインで検証され、情報が外部に送信されることはありません。
価格の決まり方
価格行は (currency, tier, valid_from, amount) です。ある日付の価格は、その日付以前で最も新しい valid_from の行から、該当する通貨と価格帯に基づいて決まります。すでに存在するキーに行を設定すると置き換えられるため、同じキーを持つ行が 2 つできることはなく、「その日の価格」が運任せになることもありません。すべての行より前の日付には価格がなく、拒否されます。まだ存在していなかった価格は、価格とはみなされません。
通貨の換算は行いません。PLN の見出しの下に EUR の価格を表示するのは捏造した数字になるため、指定された通貨の価格がない SKU は、価格なしとして一覧表示され、catalogue_report で件数が集計されます。
測定されたインサイト
このカタログが連携する2つのサーバーは、同じ価格を異なる単位で受け取り、その差は正確に100倍です。 invoice_create の項目は MAJOR 単位の unit_price を受け取ります(「主要通貨単位での単価。例:90 EUR なら 90」、servers/invoice/src/index.ts)。一方、quote_create の項目は MINOR 単位の unit_price_minor を受け取ります(「9000 = 90.00 EUR、90 = JPY 90。小数は不可」、servers/quotes/src/index.ts)。どちらのフィールドも単価と呼ばれ、どちらも単なる数値を受け取ります。また、どちらのツールも、渡された数値がもう一方のツール向けにスケーリングされているかどうかを判別できません。unit_price に渡された 45000 は、EUR 45,000.00 の有効な請求書明細になります。
test/unit.test.mjs の解決例で測定すると、正しいペイロードの合計は EUR 2,613.63 です。同じ項目を使い、見積もりサーバーのフィールドを請求書サーバーのエンジンに渡すと、合計は EUR 261,363.00 となり、テストスイートではこれが正確に100倍であると検証しています。KWD のような小数点以下3桁の通貨では1000倍になります。そのため、カタログでは情報を損なわない唯一の形式である最小通貨単位で価格を保存し、1回の呼び出しで2種類のペイロードを両方とも生成し、それぞれの単位を出力します。これが、lines_resolve が、呼び出し側で再構成する「価格」を1つ返すのではなく、2つのペイロードを返す理由のすべてです。
さらに、保存される価格はすべて最小通貨単位の整数です。そのため、invoice_create 自身の computeTotals は、主要通貨単位の値を元の整数にそのまま丸めて戻します。解決結果の rounding_drift_minor は仕組み上ゼロであり、テストスイートでも検証しています。これは「請求書には価格表に表示された金額が記載される」ことを機械的に検証できる形にしたものです。
プライバシー
すべてのデータはローカルに保存されます:${XDG_DATA_HOME:-~/.local/share}/mcp-servers/catalogue/。どのツールもネットワーク呼び出しを行いません。このサーバーがそのディレクトリの外でアクセスするファイルは、デフォルト通貨、デフォルトの VAT 率、および価格表の先頭に表示する名前を取得するために読み取り専用で参照する、共有ビジネスプロフィールのみです。請求書も見積書も作成しません。
theluckystrike によって作成されました。
これらのドキュメントを MCP サーバーとして使用する
MCP クライアント(Claude、Cursor、Windsurf、VS Code)は、インストール不要で GitMCP 経由でこのリポジトリのドキュメントを直接読み取れます:
- ドキュメント MCP URL:https://gitmcp.io/theluckystrike/mcp-catalogue
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。