Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
GooodBilling 公式 MCP Server — Claude Desktop / Cursor 等の MCP 対応クライアントから AI ファーストで請求書・見積を操作する
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
GOOODBILLING_API_TOKEN, GOOODBILLING_API_BASE_URL标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"gooodbilling": {
"command": "npx",
"args": [
"-y",
"@gooodbilling/mcp-server"
],
"env": {
"GOOODBILLING_API_TOKEN": "your-value",
"GOOODBILLING_API_BASE_URL": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add gooodbilling --env GOOODBILLING_API_TOKEN=your-value --env GOOODBILLING_API_BASE_URL=your-value -- npx -y @gooodbilling/mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"gooodbilling": {
"command": "npx",
"args": [
"-y",
"@gooodbilling/mcp-server"
],
"env": {
"GOOODBILLING_API_TOKEN": "your-value",
"GOOODBILLING_API_BASE_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"gooodbilling": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@gooodbilling/mcp-server"
],
"env": {
"GOOODBILLING_API_TOKEN": "your-value",
"GOOODBILLING_API_BASE_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
GOOODBILLING_API_BASE_URL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 gooodbilling 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:GOOODBILLING_API_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.14)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Intervals MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Remote MCP server for intervals.icu run data and analysis
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
GooodBilling 公式 MCP Server。Claude Desktop / Cursor 等の MCP 対応クライアントから、AI ファーストで請求書・見積書を操作できます。
「A 社向け Web 制作 30 万円で請求書作って」「保守費 10 万円も追加して」「これで送信して」— PC を開かず、チャットだけで業務を完結できます。
設定 > AI 連携 > API トークン を開くgb_live_...) を 1 度だけコピー⚠️ トークンは発行時に 1 度だけしか表示されません。必ずすぐに MCP クライアントの設定に登録してください。
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonmcpServers セクションに以下を追加{
"mcpServers": { "gooodbilling": { "command": "npx", "args": ["-y", "@gooodbilling/mcp-server"], "env": { "GOOODBILLING_API_TOKEN": "gb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } } }
ツールアイコンに gooodbilling が表示されれば成功です。
Claude / ChatGPT 等の AI は、あなたのチャットを 複数の MCP (Gmail / Calendar / Drive / Stripe など) や Web 検索 から拾える状態で受け取ります。「カナリア出版の連絡先教えて」とだけ言われると、AI は GooodBilling の取引先なのか実在出版社なのか判断できず、確認質問されるか Web 検索に流れます。
これを避けるため、セッション最初の 1 発目 だけ以下のヒント語を含めてください。2 発目以降は文脈が確立されるので省略 OK です。
| 段階 | 例 | プレフィックス必要? |
|---|---|---|
| Tier 1: GooodBilling 固有語 | 請求書 / 未払い / 未入金 / 売掛 / 見積 / 案件 / インボイス | ❌ 不要 (単独で OK) |
| Tier 2: 他システムにもある語 | 連絡先 / 売上 / 送信 / 設定 / 取引履歴 | ✅ 必要 |
| Tier 3: 固有名詞のみ | 会社名だけ (カナリア出版 等) | ✅ 必要 |
どれか 1 つ含めれば OK:
GooodBillingで / GooodBillingの請求システムの / 請求管理の取引先の / 顧客の / 売上先のAI 連携の (送信機能・設定の文脈)| ❌ 曖昧 (Web 検索に流れる / 確認質問される) | ✅ 確実に呼ぶ |
|---|---|
カナリア出版の連絡先教えて | 取引先のカナリア出版の連絡先教えて |
今月の売上どんなもん? | 請求システムの今月の売上は? |
送信機能 ON だっけ? | AI 連携の送信機能 ON だっけ? |
あの会社の電話番号 | 顧客の○○社の電話番号 |
請求書 未払い 未回収 売掛金 見積 案件 のような Tier 1 語を含む場合はそのまま使えます:
カナリア出版に 5 万円で請求書出して ← 請求書 で確定未払いある? ← 未払い で確定未回収教えて ← 未回収 で確定カナリアの見積一覧見せて ← 見積 で確定AI クライアントに Stripe など他の請求・決済 MCP が同時接続されていると、Tier 1 単語であっても AI 側がそちらを優先することがあります (「未払い」「請求書」等は Stripe のドメインにも存在するため)。
その環境では 最初の 1 発目に `GooodBillingで` を付けるのが最も確実:
| フレーズ | 起こりうる挙動 (Stripe 併用時) |
|---|---|
未払いある? | Stripe を優先選択する可能性 |
売上どう? | Stripe Payments の売上を見に行く |
請求書一覧 | Stripe Invoices を優先することがある |
対策の優先順:
GooodBillingで未払いある?売掛金の未回収どう? / 請求書 (発行側) の未払い見せて適格請求書の発行状況 等の業務特化語を使う → 2 発目以降は省略可| クライアント | プレフィックス | 備考 |
|---|---|---|
| Claude Desktop / Cursor | (上記ルール) | ツール権限「常に許可」推奨 |
| ChatGPT (Custom GPTs Actions) | 不要 | OpenAPI で 1 API のみ呼ぶため曖昧性なし |
| LINE / Slack Bot | 不要 | Bot 実装が GooodBilling API のみ叩く設計 |
| Zapier / Make / n8n | 不要 | トリガー/アクションで API 明示。スコープ最小化推奨 |
draft 状態)👤 ユーザー
「A社向けに、Web制作費 30万円で請求書ドラフトを作って」
🤖 Claude search_customers({query: "A社"}) → cus_xxx (株式会社サンプルA) create_invoice_draft({customer_id: "cus_xxx", title: "Web 制作費", ...}) → { id: "inv_yyy", status: "draft", total_amount: 330000, pdf_preview_url: "..." }
「下書きを作成しました。 取引先: 株式会社サンプルA 合計: ¥330,000 (税込) PDF を確認する 内容に問題なければ『送信して』とお伝えください。」
👤 ユーザー 「保守費 10万円も追加して」
🤖 Claude get_invoice({invoice_id: "inv_yyy"}) → 現状取得 update_invoice_draft({invoice_id: "inv_yyy", items: [Web制作費, 保守費]}) → total_amount: 440000
「修正しました。保守費 10万円を追加し、合計 ¥440,000 になりました。 更新後の PDF を確認」
👤 ユーザー 「OK、送信して」
🤖 Claude send_invoice({invoice_id: "inv_yyy"}) → status: "sent"
「A社の担当者様 (billing@example.com) へ送付完了しました。 控えがあなたのメールにも届きます。」
このセクションは MCP Server を組み込むアプリケーション (LINE Bot, Slack Bot, 音声アシスタント等) の実装者向けです。AI モデルがツール呼出を組み立てる際に守ってほしい原則です。
create_invoice_draft / create_quote_draft に渡す customer_id は、必ず `search_customers` で取得した実在 ID を使ってください。AI が記憶や推測で UUID を組み立てると 422 invalid_request が返ります。
検索結果が 0 件の場合は、新規取引先を勝手に登録せず、ユーザーに正式名称の確認を促してください。
items[].tax_rate_code は 省略を推奨します。サーバー側が以下の優先順位で自動補完します:
AI が幻覚で軽減税率を勝手に当てる事故を構造的に避けられます。指定する場合はテナントの税率マスタに登録されたコード (例: STD10, RED8) を渡してください。
update_invoice_draft / update_quote_draft を呼ぶ前に、必ず `get_invoice` / `get_quote` で最新状態を取得し、items[] をメモリ上で merge してから PATCH してください。
items[] を含む PATCH は配列全置換のため、merge を怠ると既存明細が失われます。
send_invoice / send_quote は 取引先へメール送付を実行し、取り消し不可です。
呼出前に必ず pdf_preview_url をユーザーに提示し、明示同意 (「送信して」「OK」等) を取得してください。AI が単独判断で送信することは避けてください。
送信系ツールは idempotency_key を省略可能です。MCP Server が UUID を自動生成して付与します。
同一送信意図 (例: ユーザーが「送信」と 2 回連続で入力した場合) では、同じ idempotency_key を渡すと二重送信が構造的に防止されます。
discard_invoice_draft / discard_quote_draft は draft 状態の書類のみを破棄できます。
確定済 (issued / sent / paid) 書類の取消は API では行わず、ユーザーに「Web 画面での赤伝処理が必要」と案内してください。
| 変数 | 必須 | 既定値 | 説明 |
|---|---|---|---|
GOOODBILLING_API_TOKEN | ✅ | — | API トークン (gb_live_...) |
GOOODBILLING_API_BASE_URL | ❌ | https://gooodbilling.com | API ベース URL (セルフホスト / staging 用) |
FATAL: GOOODBILLING_API_TOKEN is not set で起動失敗→ MCP クライアント設定の env セクションにトークンが正しく設定されているか確認してください。
invalid_token が返る→ トークンが失効済 / 期限切れの可能性。管理画面で再発行してください。
insufficient_scope が返る→ トークンに必要なスコープが付与されていません (例: send_invoice には emails:send + invoices:write が必要)。管理画面でスコープを確認し、不足があれば再発行してください。
send_disabled_by_tenant が返る→ テナント管理者が「AI / API 経由送信」を一時停止しています。管理画面 設定 > AI 連携 > API トークン > 送信設定 で有効化してください。
customer_email_missing が返る→ 取引先の担当者にメールアドレスが登録されていません。Web 画面で取引先担当者のメールを設定するか、send_invoice の to パラメータで明示指定してください。
MIT