mcpField
S
SideButton

SideButton

ローカル
github.com/sidebutton開発ツール58 週間前に更新

SideButton について

SideButtonは、ブラウザー自動化、YAMLワークフロー、インストール可能なドメイン知識パックを組み合わせた、コーディングエージェント向けのオープンソースプラットフォームです。実DOMにアクセスするChrome拡張機能のほか、REST APIとダッシュボードも備えています。

主な機能

  1. 01実DOMを使ったブラウザー操作
  2. 02YAMLワークフローの実行
  3. 03ドメイン知識パックのインストール
  4. 04REST APIによるワークフローのリモート起動
  5. 05実行ログ付きSvelteダッシュボード

活用シーン

  1. 01CSSセレクターを使ったブラウザー操作の自動化
  2. 02YAMLによる複数ステップのコーディングワークフロー実行
  3. 03Webhookや定期実行からのワークフロー起動
  4. 04コーディングエージェントへのドメイン別手順の追加

MCP 対応

MCPサーバーはブラウザー操作、ワークフロー実行、実行ログ、知識パックへのアクセス用ツールを提供します。stdioとSSEのトランスポートに対応しています。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"sidebutton": {
"command": "npx",
"args": [
"-y",
"sidebutton"
]
}
}
}
起動コマンドnpx -y sidebutton

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

パッケージ
npmsidebutton

ツール

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

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

詳細

SideButton

エージェント型コーディング向けのオープンソース AI エージェントプラットフォーム — MCP サーバー、ナレッジパック、AI ワークフロー自動化を提供します。

npm License

sidebutton.com · docs.sidebutton.com

エージェント型コーディング向けのSideButtonオープンソースAIエージェントプラットフォーム:MCPサーバー、エージェント型ワークフロー、ナレッジパック

エージェント型ワークフロー、ナレッジパック、実際のブラウザー操作を使って、AI コーディングエージェントを実行できます。Claude Code、Codex、Cursor、ChatGPT、または任意の MCP クライアントを接続できます。

npx sidebutton@latest
# Dashboard at http://localhost:9876

利用できる機能

MCP サーバーブラウザー操作、ワークフロー実行、ナレッジパックへのアクセスを行う AI エージェントツールです。Stdio および SSE トランスポートに対応しています。
REST APIWebhook、cron ジョブ、モバイルアプリ、その他のエージェントから、リモートでワークフローをトリガーできます。
ワークフローエンジンブラウザー、git、課題追跡、LLM、シェル、制御フローの各ステップを使った AI ワークフロー自動化です。エージェント型ワークフローを YAML で定義できます。
ナレッジパックインストール可能なドメイン知識です。CSS セレクター、データモデル、状態マシンなどが含まれます。役割別プレイブックを使って、コーディングエージェントを AI ソフトウェアエンジニア、QA、または PM として活用できます。
Chrome 拡張機能スクリーンショットではなく、WebSocket 経由で実際の DOM にアクセスするブラウザーコマンドです。記録モードも利用できます。
ダッシュボードSvelte UI です。ワークフローブラウザー、実行ログ、スキルパックマネージャー、システムステータスを利用できます。

クイックスタート

# Install and start
npx sidebutton@latest

# Or from source
pnpm install && pnpm build && pnpm start

# Open http://localhost:9876
CLI
pnpm cli serve          # Start server with dashboard
pnpm cli serve --stdio  # Start with stdio transport (for Claude Desktop)
pnpm cli list           # List available workflows
pnpm cli status         # Check server status

# Skill pack management
pnpm cli registry add <path|url>   # Install skill packs from a registry
pnpm cli registry update [name]    # Update installed packs
pnpm cli registry remove <name>    # Uninstall packs and remove registry
pnpm cli search [query]            # Search available skill packs

# Creating skill packs
pnpm cli init [domain]             # Scaffold a new skill pack
pnpm cli validate [path]           # Validate pack structure
pnpm cli publish [source]          # Publish to a registry

MCP サーバー

SideButton は、AI コーディングエージェント向けのオープンソース MCP サーバーです。エージェントは直接接続し、ブラウザー操作、ワークフロー自動化、ドメイン知識を利用できます。

Claude Code、Codex、Cursor、Claude Desktop、VS Code、Windsurf、ChatGPT など、あらゆる MCP クライアントで動作します。

Claude Code
claude mcp add sidebutton --transport http http://localhost:9876/mcp

~/.claude.json に保存されます。代わりに ./.mcp.json に書き込むには、--scope project を追加してください。詳しい手順はClaude Code SideButton MCP のセットアップをご覧ください。

Codex

~/.codex/config.toml に追加します。

[mcp_servers.sidebutton]
command = "sidebutton"
args = ["serve", "--stdio"]

詳しい手順はOpenAI Codex SideButton MCP のセットアップをご覧ください。

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "sidebutton": {
      "command": "npx",
      "args": ["sidebutton", "--stdio"]
    }
  }
}
Cursor

~/.cursor/mcp.json に追加します。

{
  "mcpServers": {
    "sidebutton": {
      "url": "http://localhost:9876/mcp"
    }
  }
}
MCP ツール
ツール説明
run_workflowIDを指定してワークフローを実行します
get_run_log実行のログを取得します
list_workflows利用可能なすべてのワークフローを一覧表示します
get_workflowワークフローの YAML 定義を取得します
list_run_logs最近のワークフロー実行を一覧表示します
publish_artifactセッションの証拠(スクリーンショット、レポート)を公開します
get_browser_statusブラウザー拡張機能の接続状態を確認します
capture_page現在のページからセレクターを取得します
navigateブラウザーで URL に移動します
snapshotページのアクセシビリティスナップショットを取得します
click要素をクリックします
type要素にテキストを入力します
press_keyキーボードキーを送信します
scrollページをスクロールします
extract要素からテキストを抽出します
screenshotページのスクリーンショットを取得します(画像バイト列を返す代わりに PNG ファイルを書き込むには、path を渡します)
select_optionドロップダウンのオプションを選択します
fill入力値を設定します(React 対応)
wait要素または指定時間を待ちます
exists要素が存在するか確認します
extract_all条件に一致するすべての要素から抽出します
extract_map繰り返し表示される要素から構造化データを抽出します
scroll_into_view要素がビューポート内に入るまでスクロールします
hover要素にカーソルを合わせます
inject_cssページに CSS を挿入します(スクリーンショットを撮る前に要素をぼかす/非表示にします)
evaluateブラウザーで JavaScript を実行します
browser_batch1 回の呼び出しで一連のブラウザー操作を実行します
set_basic_auth接続中のタブに HTTP Basic Auth の認証情報を設定します
clear_basic_auth保存済みの HTTP Basic Auth の認証情報を消去します

REST API

外部連携用の JSON エンドポイントです。同じワークフローをローカルでは MCP 経由で、リモートでは REST 経由で利用できます。

# Run a workflow
curl -X POST http://localhost:9876/api/workflows/check_ticket/run \
  -H "Content-Type: application/json" \
  -d '{"params": {"ticket_id": "PROJ-123"}}'

# List workflows
curl http://localhost:9876/api/workflows

# Get run log
curl http://localhost:9876/api/runs/latest

Webhook、cron ジョブ、モバイルアプリ、または別のマシン上にある他のエージェントからワークフローを起動できます。

ワークフローエンジン

エージェント型ワークフロー向けの YAML ファーストなオーケストレーションです。ファミリー別のステップタイプ:

ステップタイプ
ファミリーステップ
browser.*navigate、click、type、fill、extract、extractAll、extractMap、snapshot、screenshot、wait、exists、hover、key、scroll、scrollIntoView、select_option、injectCSS、injectJS
git.*createPR、getPR、listPRs、getIssue、listIssues
issues.*create、get、search、comment、attach、transition
llm.*classify、decide、generate
control.*if、foreach、retry、stop
shell / terminalshell.run、terminal.open、terminal.run
data.*first、get
workflow.callパラメーターを指定して別のワークフローを呼び出します

LLM ステップは Ollama(ローカル)、OpenAI、Anthropic で動作します。

例
id: check_ticket_status
title: "Check Jira ticket and classify"
steps:
  - type: browser.navigate
    url: "https://your-org.atlassian.net/browse/{{ticket_id}}"
  - type: browser.extract
    selector: "[data-testid='status-field']"
    as: current_status
  - type: control.if
    condition: "{{current_status}} != 'Done'"
    then:
      - type: llm.classify
        prompt: "Should this ticket be closed? Context: {{current_status}}"
        classes: [close, keep_open]
        as: decision
変数の補間

抽出した値やパラメーターを参照するには、{{variable}} 構文を使用します。

steps:
  - type: browser.extract
    selector: ".username"
    as: user
  - type: shell.run
    cmd: "echo 'Hello, {{user}}!'"

ナレッジパック

Web アプリやドメインごとにインストールできるドメイン知識(スキルパック)です。ナレッジパックは、AI コードレビュー、自動テスト、エンタープライズ向け AI エージェントのデプロイを支援します。

コードや CLI コマンドでは、スキルパックとも呼ばれます。

  • セレクター — UI 要素の CSS セレクター
  • データモデル — エンティティの種類、フィールド、関係、有効な状態
  • 状態マシン — 状態ごとの有効な遷移
  • ロール別プレイブック — ロール固有の手順(QA、SE、PM、SD)
  • 一般的なタスク — 手順ごとの説明、注意点、エッジケース
sidebutton install github.com
sidebutton install atlassian.net

人気の Web アプリ向けに公開済みのパックを登録したレジストリを開きます。あらゆるドメイン向けにパックを作成して共有できます。

Chrome 拡張機能

Chrome ウェブストアから SideButton Chrome Extension をインストールします。

  • ブラウザーコマンド — 移動、クリック、入力、抽出、スクロール、待機、スナップショット
  • CSS セレクターによる実際の DOM へのアクセス — ピクセル座標やスクリーンショットは使用しません
  • 記録モード — 手動操作をワークフローとして記録
  • ボタンの埋め込み — 任意のウェブページにアクションボタンを挿入
  • WebSocket 接続 — 安定した再接続が可能で、ローカルサーバーとリモートサーバーの両方に対応

インストール後:

  1. 任意のウェブサイトに移動します
  2. SideButton 拡張機能のアイコンをクリックします
  3. 「このタブを接続」 をクリックします

ダッシュボードと可観測性

http://localhost:9876 に Svelte UI があります。

  • ワークフローブラウザー — 一覧表示、検索、実行
  • 実行ログ — タイミング、変数、エラーを含むステップごとの実行トレース
  • スキルパックマネージャー — インストール、閲覧、確認
  • システムステータス — 拡張機能の接続、LLM 設定、サーバーの状態

SideButton は、ワークフローの実行からナレッジの注入まで、複数のエージェントのオーケストレーションを処理します。

アーキテクチャ

┌──────────────────────────────────────────────────────────────────────────┐
│                          @sidebutton/server                               │
│                                                                          │
│  ┌─────────────────────┐   ┌──────────────────────────────────────────┐  │
│  │  stdio Transport    │   │    Fastify HTTP + WebSocket (port 9876)  │  │
│  │  ─────────────────  │   │    ────────────────────────────────────  │  │
│  │  stdin → JSON-RPC   │   │  GET  /        → Dashboard (Svelte)      │  │
│  │  stdout ← JSON-RPC  │   │  GET  /ws      → Chrome Extension WS     │  │
│  │  (Claude Desktop)   │   │  POST /mcp     → MCP JSON-RPC (SSE)      │  │
│  └──────────┬──────────┘   │  GET  /api/*   → REST API                │  │
│             │              └──────────────────────┬───────────────────┘  │
│             │                                     │                      │
│             └──────────────────┬──────────────────┘                      │
│                                ▼                                         │
│  ┌────────────────────────────────────────────────────────────────────┐  │
│  │                       @sidebutton/core                              │  │
│  │                                                                     │  │
│  │  - Workflow types & parser (YAML)                                  │  │
│  │  - Step executors (YAML step types)                                │  │
│  │  - Variable interpolation                                          │  │
│  │  - Execution context & events                                      │  │
│  └────────────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────────────┘
      ▲                ▲                      ▲                      ▲
      │ stdio          │ WebSocket            │ HTTP POST            │ REST
      ▼                ▼                      ▼                      ▼
┌──────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌───────────────────┐
│Claude Desktop│ │ Chrome Extension│ │   Claude Code   │ │   Mobile App      │
│ (MCP stdio)  │ │ (Browser Auto)  │ │   (MCP SSE)     │ │   (REST Client)   │
└──────────────┘ └─────────────────┘ └─────────────────┘ └───────────────────┘
プロジェクト構成
sidebutton/
├── packages/
│   ├── core/              # @sidebutton/core — workflow engine
│   │   └── src/
│   │       ├── types.ts       # Workflow types
│   │       ├── parser.ts      # YAML loader
│   │       ├── executor.ts    # Workflow runner
│   │       └── steps/         # Step implementations
│   ├── server/            # @sidebutton/server — MCP + HTTP + CLI
│   │   ├── bin/               # CLI entry point
│   │   └── src/
│   │       ├── server.ts      # Fastify HTTP server
│   │       ├── stdio-mode.ts  # stdio transport entry point
│   │       ├── extension.ts   # WebSocket client
│   │       ├── mcp/           # MCP handlers
│   │       │   ├── handler.ts    # MCP JSON-RPC logic
│   │       │   ├── stdio.ts      # stdio transport adapter
│   │       │   └── tools.ts      # Tool definitions
│   │       └── cli.ts         # Commander CLI
│   └── dashboard/         # Svelte web UI
│       └── src/
│           ├── App.svelte
│           └── lib/
├── extension/             # Chrome extension
├── workflows/             # Public workflow library
├── actions/               # User-created workflows
├── skills/                # Installed skill packs
└── run_logs/              # Execution history

環境変数

変数必要な対象説明
OPENAI_API_KEYllm.* ステップLLM ワークフロー用の OpenAI API キー
ANTHROPIC_API_KEYllm.* ステップAnthropic API キー(代替)

開発

pnpm install       # Install dependencies
pnpm build         # Build all packages
pnpm start         # Start server
pnpm cli list      # List workflows
pnpm cli status    # Check status
ウォッチモード
pnpm dev              # Full dev mode (all packages)
pnpm dev:server       # Server with auto-restart on :9876
pnpm dev:dashboard    # Dashboard watch build
pnpm dev:core         # Core library watch build

プラットフォーム自動化に関する免責事項

SideButton は汎用のブラウザー自動化フレームワークです。サードパーティのプラットフォームを自動化する場合:

  • 利用規約を確認してください: 多くのプラットフォームでは、自動化が禁止または制限されています。自動化するプラットフォームの利用規約を遵守する責任は、お客様にあります。
  • アカウントのリスク: 一部のプラットフォームでは、自動化によってアカウントが制限または停止される場合があります。
  • 責任を持ってご利用ください: 手動で行う操作のみを自動化してください。レート制限とプラットフォームのガイドラインを遵守してください。

著者は、サードパーティの利用規約への違反を支持または推奨しません。

ライセンス

このプロジェクトでは複数のライセンスを採用しています。詳しくは LICENSING.md をご覧ください。

  • エンジン、サーバー、CLI、ダッシュボード — Apache-2.0
  • ブラウザー拡張機能 — FSL-1.1-Apache-2.0(2029-03-15 に Apache-2.0 に移行)

コメント

MCP は初めてですか?

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

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