プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Salonrunner MCP

作者:topness-msftバージョン 0.2.0i★ –iパソコンで動く
レジストリ名io.github.topness-msft/salonrunner-mcp

インストール

概要

作者による説明(英語の原文)

Self-hosted MCP to find, book, and cancel salon appointments via SalonRunner.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他
  • 入力が必要なもの:SALONRUNNER_SALON_ID, SALONRUNNER_USERNAME, SALONRUNNER_PASSWORD

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: SALONRUNNER_SALON_ID, SALONRUNNER_USERNAME, SALONRUNNER_PASSWORD, SALONRUNNER_READ_ONLY

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "salonrunner": {
      "command": "npx",
      "args": [
        "-y",
        "salonrunner-mcp"
      ],
      "env": {
        "SALONRUNNER_SALON_ID": "your-value",
        "SALONRUNNER_USERNAME": "your-value",
        "SALONRUNNER_PASSWORD": "your-value",
        "SALONRUNNER_READ_ONLY": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add salonrunner --env SALONRUNNER_SALON_ID=your-value --env SALONRUNNER_USERNAME=your-value --env SALONRUNNER_PASSWORD=your-value --env SALONRUNNER_READ_ONLY=your-value -- npx -y salonrunner-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "salonrunner": {
      "command": "npx",
      "args": [
        "-y",
        "salonrunner-mcp"
      ],
      "env": {
        "SALONRUNNER_SALON_ID": "your-value",
        "SALONRUNNER_USERNAME": "your-value",
        "SALONRUNNER_PASSWORD": "your-value",
        "SALONRUNNER_READ_ONLY": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "salonrunner": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "salonrunner-mcp"
      ],
      "env": {
        "SALONRUNNER_SALON_ID": "your-value",
        "SALONRUNNER_USERNAME": "your-value",
        "SALONRUNNER_PASSWORD": "your-value",
        "SALONRUNNER_READ_ONLY": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • SALONRUNNER_SALON_ID 必須 env
    Your salon's numeric id (from your booking URL)
  • SALONRUNNER_USERNAME 必須 env
    Your SalonRunner client login (same as the booking site)
  • SALONRUNNER_PASSWORD 秘密 必須 env
    Your SalonRunner client password
  • SALONRUNNER_READ_ONLY env
    Set to 'true' to disable booking/cancelling (read-only)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント topness-msft で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの18334件のうち0%よりスターが多い
  • このカテゴリのほかの18334件のうち14%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの18334件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Salonrunner MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:SALONRUNNER_SALON_ID, SALONRUNNER_USERNAME, SALONRUNNER_PASSWORD

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは4 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, ProAgentStore

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211一昨日更新
インストール

ProAgentStore

作者:ProAgentStore

MCP-first control plane for ProAgentStore agents and private instances.

クラウドで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

salonrunner-mcp

An MCP server that lets an AI assistant find, book, and cancel salon appointments through your personal SalonRunner / Rosy Salon Software client account — the same booking site many salons use.

It's self-hosted: you deploy your own instance. Run it locally as a tool (Claude Desktop, Cursor, Copilot CLI) where credentials stay on your machine, or as a remote connector for claude.ai where you log in with your SalonRunner account on the connector's login screen.

⚠️ Unofficial, uses undocumented endpoints, personal use only. Read DISCLAIMER.md.

Tools

ToolWhat it does
list_servicesList bookable services (name, id, price)
list_providersList stylists; optionally only those who do a given service
find_availabilityOpen slots for a service over a date range (optionally one provider)
list_my_appointmentsYour upcoming appointments
book_appointmentBook a slot returned by find_availability
cancel_appointmentCancel by appointment id

How it works

list/find/book/cancel

│ this server ──login──► app.salonrunner.com (session cookie) │ ──authv2─► customer JWT (30 min, auto-refreshed) │ ──reads──► app.rosysalonsoftware.com/api/v2 (Bearer JWT) └──────writes───► /customer/appointments/{book,cancel}.json (cookie)

customerId is discovered from your account after login; corporateId is read from the JWT. Availability is computed from the provider's per-service duration and the salon's slot grid (SALONRUNNER_SLOT_MINUTES, default 15).

Configuration

There are two ways to run it, and they get their salon credentials differently:

  • Local (stdio): credentials come from the environment (.env).
  • Remote (HTTP, claude.ai): credentials are entered on the connector's login screen and encrypted into the token — the server needs no salon credentials in its environment.
VariableUsed byNotes
SALONRUNNER_SALON_IDstdio (+ optional HTTP)The id in your booking URL …/customer/login.htm?id=XXXXX. In HTTP mode it's optional — if set, it pre-fills the salon id on the connector's login screen (handy for single-salon deployments and re-auth)
SALONRUNNER_USERNAME / SALONRUNNER_PASSWORDstdioYour client login
SALONRUNNER_CUSTOMER_IDbothAuto-discovered; set only if discovery fails
SALONRUNNER_SLOT_MINUTESbothSalon booking granularity (default 15)
SALONRUNNER_READ_ONLYbothtrue disables book/cancel while you try it out
SESSION_SIGNING_KEYHTTPSigns tokens + encrypts the credentials inside them; survives restarts/scale-to-zero (>=16 chars)
PUBLIC_URLHTTPThis server's public URL, e.g. https://your-app.fly.dev

In HTTP mode the salon id + username + password are collected on the login screen (validated by a real SalonRunner login) and encrypted into the OAuth token, so one deployment can serve multiple salons and there are no salon secrets on the server.

Option A — Local (Claude Desktop / Cursor / Copilot CLI)

Published on npm as salonrunner-mcp. Install globally:

npm install -g salonrunner-mcp

Then point your client at the salonrunner-mcp command (no build, no absolute paths). Claude Desktop (claude_desktop_config.json):

{

"mcpServers": { "salonrunner": { "command": "salonrunner-mcp", "env": { "SALONRUNNER_SALON_ID": "21248", "SALONRUNNER_USERNAME": "you@example.com", "SALONRUNNER_PASSWORD": "your-password" } } } }

Prefer no global install? Use "command": "npx" with "args": ["-y", "salonrunner-mcp"] and the same env.

Run from a clone instead

npm install && npm run build

Then use "command": "node" with "args": ["/absolute/path/to/salonrunner-mcp/dist/stdio.js"] and the same env.

No hosting, no OAuth — credentials stay on your machine. Recommended if you don't need claude.ai.

Option B — Remote (claude.ai custom connector)

claude.ai can only use remote MCP servers, so you deploy your own instance.

Deploy to Fly.io
fly launch --no-deploy          # pick a unique app name; creates the app

fly secrets set \ SESSION_SIGNING_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))") \ PUBLIC_URL=https://YOUR-APP.fly.dev fly deploy fly scale count 1 # in-memory MCP sessions: keep a single instance

No salon credentials are configured here — users supply them on the login screen. The server refuses to start without SESSION_SIGNING_KEY. Credentials are validated by a real SalonRunner login and then encrypted into the (signed) token, which claude.ai stores, so the app scales to zero between uses and you authorize only once — cold starts (~3s) are transparent and never re-prompt.

Connect in claude.ai
  1. Settings → Connectors → Add custom connector.
  2. URL: https://YOUR-APP.fly.dev/mcp
  3. Claude opens the connector's login screen → enter your salon id + username + password.
  4. The six tools appear in chat.
Run the remote server locally (testing)
SESSION_SIGNING_KEY=local-dev-please-change PUBLIC_URL=http://localhost:8787 npm run start:http

Security model

Two independent auth layers:

  1. claude.ai ↔ this server — OAuth 2.1 (PKCE + dynamic client registration). The login screen authenticates the user with a real SalonRunner login; the credentials are then AES-GCM encrypted and embedded inside the HMAC-signed token (keyed by SESSION_SIGNING_KEY). No server-side session store, so authorization survives restarts and scale-to-zero.
  2. this server ↔ SalonRunner — login → session cookie → short-lived JWT, auto-refreshed, using the credentials decrypted from the caller's token.

The server holds no salon credentials at rest — they live (encrypted) inside each user's token and are only decrypted in memory per request. One deployment can serve multiple salons. A leaked token can't be revoked individually; rotate SESSION_SIGNING_KEY to invalidate all tokens (everyone re-enters credentials once). Keep SESSION_SIGNING_KEY secret and serve only over HTTPS.

Notes & limitations

  • Built on undocumented customer endpoints; they can change without notice. Base URLs are configurable so you can adapt quickly.
  • Real bookings/cancellations incur the salon's cancellation-policy fees. Tools surface the service/provider/time before acting; consider running with SALONRUNNER_READ_ONLY=true first.
  • SALONRUNNER_SLOT_MINUTES must match your salon's scheduling grid (default 15) for accurate availability.
  • The officially documented, partner-only Rosy Salon Software API (api.salonrunner.com) is a separate product requiring a salon-issued ApiKey; this project does not use it.

License

MIT — see LICENSE. No warranty.

PopNxに聞く