mcpField
S
SalesBuildr

SalesBuildr

ローカル
github.comビジネス・マーケティング02 日前に更新

SalesBuildr について

SalesBuildrは、MSP向けの見積もり・営業プラットフォームをMCPクライアントに接続するMCPサーバーです。決定木方式で、会社、連絡先、製品、商談、見積もりの領域別ツールを段階的に提示します。

主な機能

  1. 01会社・連絡先レコードの参照と管理
  2. 02製品カタログと商談の管理
  3. 03明細付き見積もりの作成と取得
  4. 04領域別のツール探索
  5. 05対応ホストでの読み取り専用見積もりカード表示

活用シーン

  1. 01会社や連絡先の情報確認・更新
  2. 02営業パイプラインの商談管理
  3. 03見積もり作成と明細の確認
  4. 04MCP Appsホストでの見積もりカード表示

MCP 対応

SalesBuildr APIを通じて、会社、連絡先、製品、商談、見積もりのツールをMCPクライアントに公開します。ルートのナビゲーションツールで領域を選ぶと、対応ツールが利用可能になります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-ai-salesbuildr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SALESBUILDR_API_KEY",
"-e",
"SALESBUILDR_BASE_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/salesbuildr-mcp:v1.5.9"
],
"env": {
"SALESBUILDR_API_KEY": "<SALESBUILDR_API_KEY>",
"SALESBUILDR_BASE_URL": "<SALESBUILDR_BASE_URL>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e SALESBUILDR_API_KEY -e SALESBUILDR_BASE_URL -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/salesbuildr-mcp:v1.5.9
設定が必要な環境変数
SALESBUILDR_API_KEYシークレットSalesBuildr API key used to authenticate against the SalesBuildr REST API
SALESBUILDR_BASE_URLSalesBuildr API base URL — defaults to the public SalesBuildr endpoint if omitted
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODEシークレットCredential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

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

パッケージ
ocighcr.io/wyre-ai/salesbuildr-mcp:v1.5.9

ツール

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

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

詳細

SalesBuildr MCP サーバー

SalesBuildr の見積もり・営業プラットフォームと連携するための Model Context Protocol(MCP)サーバーです。LLM に過剰な負荷をかけずに、ドメイン固有のツールを提供する意思決定ツリーアーキテクチャを採用しています。

アーキテクチャ

サーバーは意思決定ツリーパターンを使用します。

  1. ルートでは salesbuildr_navigate のみを公開します
  2. ユーザーがドメイン(companies、contacts、products、opportunities、quotes)を選択します
  3. ドメイン固有のツールが salesbuildr_back とともに利用可能になります
  4. ツールの呼び出しは、SalesBuildr API とやり取りするドメインハンドラーにルーティングされます
インタラクティブな見積もりカード(MCP Apps)

salesbuildr_quotes_get は、MCP Apps ホスト(Claude Desktop/web)では、タイトル、ステータス、会社/連絡先、日付、明細項目、合計を表示する、読み取り専用のインタラクティブな見積もりカードとしてレンダリングされます。他のホストでは、プレーンな JSON の動作は変わりません。 このカードはデフォルトでは中立的なデザインで、window.__BRAND__ の注入または MCP_BRAND_* 環境変数(MCP_BRAND_NAME、MCP_BRAND_LOGO_URL、MCP_BRAND_PRIMARY_COLOR、MCP_BRAND_ACCENT_COLOR、MCP_BRAND_BG、MCP_BRAND_TEXT)でブランド設定が可能です。再ビルドは不要です。

ドメイン

ドメインツール説明
companies5会社/アカウント管理(一覧表示、取得、作成、更新、削除)
contacts5連絡先管理(一覧表示、取得、作成、更新、削除)
products2製品カタログ(一覧表示、取得)
opportunities4営業パイプライン(一覧表示、取得、作成、更新)
quotes3明細項目を含む見積もり管理(一覧表示、取得、作成)

ワンクリックデプロイ

重要

クリックする前にご確認ください: このサーバーは @wyre-technology/node-salesbuildr に依存しており、 このパッケージは GitHub Packages npm レジストリでホストされています。GitHub Packages は 匿名アクセスに対応していません。パッケージが公開されていても、すべての npm install に トークンが必要です。クラウドビルダーが npm install を実行するため、トークンを渡す必要があります。 渡さない場合、npm error 401 Unauthorized ... npm.pkg.github.com でビルドに失敗します。

  1. read:packages スコープを持つ GitHub Personal Access Token を作成します (クラシックトークン)。 GitHub アカウントはどれでも使用できます。公開パッケージの読み取りに wyre-technology 組織のメンバーである必要はありません。
  2. デプロイフローで求められたら、ビルド変数としてトークンを追加します。
    • Cloudflare Workers → NODE_AUTH_TOKEN という名前のビルド変数に PAT を設定します (Workers → Settings → Build → Variables and Secrets)。
    • DigitalOcean App Platform → GITHUB_TOKEN という名前の暗号化された環境変数を スコープ Build Time で設定し、PAT を指定します(Dockerfile がインストール時に読み取ります)。

DO にデプロイ

Cloudflare Workers にデプロイ

インストール

このパッケージは GitHub Packages npm レジストリに公開されており、公開パッケージでもトークンが必要です。一度認証してからインストールしてください。

# Authenticate npm to GitHub Packages (token needs the read:packages scope)
export NODE_AUTH_TOKEN=$(gh auth token)   # or a PAT with read:packages

npm install @wyre-ai/salesbuildr-mcp

リポジトリの .npmrc は、すでに @wyre-technology スコープを GitHub Packages に設定し、NODE_AUTH_TOKEN からトークンを読み取るようになっているため、追加の設定は不要です。

設定

.env.example をコピーします。Stdio と AUTH_MODE=env では SalesBuildr の環境変数を読み取ります。ゲートウェイモードでは読み取りません。

環境変数
変数必須デフォルト説明
SALESBUILDR_API_KEYstdio および AUTH_MODE=env の場合-SalesBuildr API キー
SALESBUILDR_BASE_URLいいえライブラリのデフォルトテナント固有のベース URL(例:https://mytenant.salesbuildr.com)
MCP_TRANSPORTいいえstdiostdio または http
MCP_HTTP_PORTいいえ8080HTTP サーバーのポート
MCP_HTTP_HOST実際のシークレットが設定されている場合は 0.0.0.0CONDUIT_S2S_SECRET が設定されている場合のバインドアドレス。コンテナイメージでは 0.0.0.0 が設定されます。シークレットがない場合、MCP_ALLOW_INSECURE_DEV=1 を設定すると、代わりに 127.0.0.1 にバインドします。
AUTH_MODEいいえイメージ以外では envenv または gateway。コンテナイメージと Compose のデフォルトは gateway です。ゲートウェイモードでは、各 /mcp リクエストに X-SalesBuildr-API-Key が必要で、SALESBUILDR_* にはフォールバックしません。
CONDUIT_S2S_SECRETHTTP では必須-サービス間シークレット。値が空または既知のプレースホルダーの場合、HTTP サーバーはエラーをログに記録し、ゼロ以外の終了コードで終了します。Compose はこの値がないと起動しません。実際の値は絶対にコミットしないでください。openssl rand -hex 32 で生成できます。
MCP_ALLOW_INSECURE_DEVいいえ未設定CONDUIT_S2S_SECRET なしで HTTP を起動する場合に限り、ローカル開発用に 1 を設定します。プロセスは警告をログに記録し、X-Gateway-S2S を必須とせず、127.0.0.1 のみにバインドします。ループバック以外の MCP_HTTP_HOST が指定されている場合、起動を拒否します。既知のプレースホルダーシークレットも引き続き拒否されます。

/health と /healthz は認証不要のままで、認証情報を読み取りません。stdio トランスポートでは CONDUIT_S2S_SECRET を使用しません。

HTTP 認証

MCP_TRANSPORT=http で CONDUIT_S2S_SECRET が設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。値は t=<unix seconds>,v1=<hex> で、v1 は CONDUIT_S2S_SECRET をキーとして、文字列 t=<unix seconds> の正確な内容から生成した HMAC-SHA256(小文字の 16 進数 64 文字)です。タイムスタンプはサーバーの時刻との差が 300 秒以内でなければなりません。ヘッダーがないか無効な場合、401 を返します。シークレットがログに書き込まれることはありません。

import { createHmac } from "node:crypto";

const t = Math.floor(Date.now() / 1000);
const v1 = createHmac("sha256", process.env.CONDUIT_S2S_SECRET)
  .update(`t=${t}`)
  .digest("hex");
const xGatewayS2s = `t=${t},v1=${v1}`;

AUTH_MODE=gateway の場合、/mcp には X-SalesBuildr-API-Key も必要です。このヘッダーのみがリクエストの認証情報の取得元です。このヘッダーがないリクエストには 401 を返し、環境変数から SALESBUILDR_API_KEY を読み取りません。

Stdio モード(Claude Desktop)

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

{
  "mcpServers": {
    "salesbuildr": {
      "command": "npx",
      "args": ["@wyre-ai/salesbuildr-mcp"],
      "env": {
        "SALESBUILDR_API_KEY": "your-api-key"
      }
    }
  }
}
HTTP モード(ゲートウェイ)
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" MCP_TRANSPORT=http AUTH_MODE=gateway node dist/index.js

ゲートウェイモードでは、リクエストヘッダーを介して認証情報を渡します。ゲートウェイは各リクエストに X-Gateway-S2S で署名します(HTTP 認証を参照)。

X-Gateway-S2S: t=<unix seconds>,v1=<hex hmac-sha256>
X-SalesBuildr-API-Key: your-api-key
Docker

イメージはコンテナ内で 0.0.0.0(MCP_HTTP_HOST)をリッスンし、デフォルトで AUTH_MODE=gateway を使用します。ポートをループバックに公開し、実際の S2S シークレットを渡してください。ゲートウェイモードでは、SalesBuildr API キーは各リクエストで X-SalesBuildr-API-Key として渡され、環境変数からは読み取られません。

docker run -d \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -p 127.0.0.1:8080:8080 \
  ghcr.io/wyre-ai/salesbuildr-mcp:latest

Compose は CONDUIT_S2S_SECRET が未設定の場合、起動を拒否します。また、AUTH_MODE=gateway を設定し、SALESBUILDR_API_KEY と env_file は設定せず、127.0.0.1:8080:8080 を公開します。

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

シングルテナントの HTTP(AUTH_MODE=env)でも S2S シークレットは必要です。そのうえで SALESBUILDR_API_KEY を使用します。

docker run -d \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=env \
  -e SALESBUILDR_API_KEY=your-api-key \
  -p 127.0.0.1:8080:8080 \
  ghcr.io/wyre-ai/salesbuildr-mcp:latest

シークレットなしのローカル HTTP は、開発用途に限られます。127.0.0.1 にバインドし、警告をログに記録します。ループバック以外の MCP_HTTP_HOST が指定されている場合、起動時に終了します。

MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start

開発

# Install dependencies
npm install

# Run tests
npm test

# Type check
npm run typecheck

# Build
npm run build

# Run locally (stdio)
SALESBUILDR_API_KEY=your-key npm start

# Run locally (HTTP). Refuses to start until CONDUIT_S2S_SECRET is a real secret.
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" MCP_TRANSPORT=http SALESBUILDR_API_KEY=your-key npm start

# Local HTTP only, without a service-to-service secret (always binds 127.0.0.1)
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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