Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Message, ask for a quote or book a call with Surfing Dog, through its open-source inbox.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://inbox.surfingdog.ai/mcpターミナルでこれを実行します
claude mcp add --transport http inbox https://inbox.surfingdog.ai/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"inbox": {
"url": "https://inbox.surfingdog.ai/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"inbox": {
"type": "http",
"url": "https://inbox.surfingdog.ai/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://inbox.surfingdog.ai/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
get_business_profileName, time zone, currency, languages and the item types this business accepts, and where it takes any other kind instead (doors_elsewhere: each with its URL, and the platform it is on when there is one).
list_servicesBookable services with duration and price. A price per person (price.per = person) is for each person in the booking: send partySize, and the total is the price times it.
list_productsOrderable products with prices in minor units, each with its barcode (gtin, 14 digits) where it has one and whether it can be had (never a count). A variant names its group and options; price_model says how a price is meant (only fixed is ordered at it: from, range and quote go t
quote_shippingWhat shipping a basket to a place costs, by the business's own rate tables (a read, never an order): for each shipping profile its products ship under, the zone the place is in and each service with its fee in minor units (null with why: id_check, currency, weight_missing, too_he
check_availabilityFree start times for a service between two instants (at most 14 days). A time that has started, or that starts within the business's minimum notice, is not offered.
request_quoteAsk for a price on something custom. Creates a quote_request item.
create_bookingRequest a service at a time. Check availability first. endTime and reservationFor.name may be left out: they follow from the service (its length, its name). A fixed-price service costs the business's price from list_services; a different totalPrice you send is only noted for the
create_orderOrder products. Prices are in minor units. A line naming a product (productId or sku) costs the business's price from list_products, and the total follows; a different price you send is only noted for the business. A line naming no product waits for the business to price it. A pr
get_item_statusThe current state of an item you created, in the business's words: what it proposed and waits for your person to answer (offer, with its terms_sha), who it waits on, what they can do next, and the conversation so far (thread: the business's replies and your person's messages).
accept_offerAccept another time the business proposed for a booking, its quote, its changes to an order, or a change it asks for to a confirmed booking or an accepted order (offer.kind change: the promise moves). This binds your person, so send terms_sha — offer.terms_sha from get_item_statu
decline_offerSay no to another time or to changes the business proposed (the booking request or the order is closed) or to its quote. To a change it asks for to a confirmed booking or an accepted order, no keeps what was agreed; on a change your person asked for (requested_change), it takes t
suggest_timeInstead of the time the business proposed, ask for another: start_time must be one of the free times check_availability lists (the end follows the service's length). The business confirms it or proposes again. On a confirmed booking it asks the business to move it (the end keeps
make_offerAnswer what the business proposed with only what your person would change: another start_time (a booking: one of the free times check_availability lists; a quote request: the time it is for), other quantities for the lines of changes it suggested to an order (by index in offer.te
provide_detailsAnswer what the business asked about an item (get_item_status says it needs a detail). The item moves on; on any other item your details are kept as a message for the business.
withdraw_from_contractYour person withdraws from their booking (one they paid for) or order, within the period the business states (withdrawal on get_item_status). Two steps: without confirm_withdrawal nothing is sent and you get the statement to show them (confirm.statement); send confirm_withdrawal:
request_returnOnce an order's goods reached your person: ask to send them back. reason faulty, not_as_described or wrong_item (the legal guarantee: it costs them nothing), or changed_mind (a withdrawal while the period runs, agreed at once; after it, a return the business answers under its own
cancel_itemCancel an item you created. After the business's cancellation window, a confirmed booking is cancelled late where the business records late cancellations (it may count against the customer), and refused where it does not. A confirmed stay answers first with the fee under its poli
send_messageStart a conversation, or reply on an item you own.
acknowledge_receiptCounter-sign a receipt this item earned, so both sides hold it: a promise, a change both sides agreed to it (kind amended), how it ended, or a refund's. Read the item to find its receipts; then send a compact JWS signed with your own Ed25519 key — header {alg:'EdDSA', typ:'sdi-re
verify_customerWhen a result says identity.recognised is weak, the person gave the email of a customer the business knows. Call this with item_id and access_token to email them six digits; ask the person for the code and call it again with code. Then the business recognises them.
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名はドメイン surfingdog.ai で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
532ミリ秒で応答(HTTP 200)
サインイン不要
20件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは7 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Aiterm MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An inbox for the bookings, orders, quote requests and messages that people and their AI agents send a business. Your rules answer the routine ones, and you see the rest. Open source, and you run it.
Add our demo bike shop to Claude or ChatGPT as a custom connector (an MCP server):
https://demo.surfingdog.ai/mcp
Then ask it: *"Book a bike service with Oficina Maré on Saturday morning."* Watch the booking arrive, and the shop confirm it, at https://demo.surfingdog.ai/demo/live. The demo never emails anyone who uses it, shows no names and is wiped every night.
The same with curl, step by step: https://surfingdog.ai/try/
How ready is a business for AI agents today? The free AI agent readiness checker reads any website the way a customer's assistant would and shows what it can do there, and what to add.
We host it for you, free, at an address on your own domain: get your agent inbox. Or run it yourself, three ways:
On your own server: Point a subdomain, such as inbox.yourbusiness.com, at an Ubuntu or Debian server, then run one command. HTTPS, a backup every night, and updates that undo themselves if they fail.
curl -fsSL https://surfingdog.ai/install.sh | sudo sh
Docker, or a platform you use: the image ghcr.io/surfingdogai/inbox, for amd64 and arm64. The data lives in the volume. deploy/ has the Compose file with HTTPS, and templates for Coolify, Fly.io, Render, Railway and a DigitalOcean Droplet. On Render it is one button (a paid Starter instance, as only those keep a disk): Deploy to Render. By hand, it answers on the server itself only, behind a proxy with TLS that drops a CF-Connecting-IP the caller sent:
(umask 077; echo "INBOX_SECRET_KEY=$(openssl rand -base64 32)" > inbox.env) # keep a copy somewhere safe
docker run -d --name inbox --restart unless-stopped -p 127.0.0.1:8787:8787 \ -v inbox-data:/opt/inbox/data --env-file inbox.env \ -e INBOX_OWNER_EMAIL=you@yourbusiness.com -e INBOX_PUBLIC_URL=https://inbox.yourbusiness.com \ ghcr.io/surfingdogai/inbox:0.2.0
Cloudflare Workers, with D1, a queue and a cron. Press Deploy to Cloudflare. What to have ready, and what to do after, is in the quickstart. By hand, it's path A of the install guide.
From source, on Node 22.16+, 24 or 26 (one process and one SQLite file):
git clone https://github.com/surfingdogai/inbox && cd inbox
pnpm install pnpm --filter @surfingdog/inbox build INBOX_OWNER_EMAIL=you@example.com node apps/inbox/dist/server.mjs # http://localhost:8787
Open http://localhost:8787/login and sign in with that address. With no email set up, the sign-in email is printed in the terminal. The release's inbox-server.tar.gz is the same build: node server.mjs in its folder.
Or give your AI the install guide and let it do the work: it is written for that, with a check after every step. The whole guide to running it yourself, with updates and backups: surfingdog.ai/docs/run-it-yourself.
/openapi.jsonpnpm dev # the server on Node, http://localhost:8787
pnpm dev:workers # the same app on workerd pnpm test # every test, on Node and on Workers ./scripts/verify.sh # everything CI runs
How to send a change, ask for an integration or report a security problem: CONTRIBUTING.md and SECURITY.md.
apps/inbox: the server and the owner app, one codebase for Workers and Nodedeploy: the self-host kit: the one-command installer, the Compose file, the inbox command, platform templatesapps/site: surfingdog.ai, with the docs. It counts visits with Cloudflare Web Analytics only when built with WEB_ANALYTICS_TOKEN set, as our deploy does; any other build sends nothing anywherepackages/core: items, their states, rules and receiptspackages/adapters: REST, MCP, sign-in, email in, webhooks and networkspackages/platform: the database, mail and job seams for each runtimepackages/spec: the discovery manifest and receipt formats, with test vectorspackages/sdk: verify webhooks; sign requests and check receipts from a customer's agentpackages/ui: design tokens and componentspackages/network-check: checks a network against the network protocolexamples/network: a small network of your own, at the protocol's directory levelMIT, for everything in this repository: the server, the app, the site, the spec, the SDK, packages/network-check and examples/network. You can run it, change it and build on it; nothing you build has to be shared. See LICENSE.