SideButton MCP Server

io.github.sidebutton由 GitHub 帳號 sidebutton 發布v1.5.2更新於 Oct 25, 2026

Open-source MCP server with browser automation and knowledge packs for AI agents

概覽

AI 產生的概覽

在本機執行的開源 MCP 伺服器,讓程式開發智能體控制瀏覽器、執行 YAML 工作流程,並使用可安裝的領域知識包。

可以做什麼
執行與檢視工作流程:列出、讀取、執行以 YAML 定義的工作流程並查看執行紀錄,發布截圖或報告等工作階段產物。透過 Chrome 擴充功能控制瀏覽器:導覽、點擊、輸入、填寫、選取、懸停、捲動、按鍵、等待、檢查元素、擷取文字或結構化資料、產生快照與截圖、注入 CSS、執行 JavaScript。管理瀏覽器工作階段:檢查擴充功能連線狀態、從目前頁面擷取選擇器、為已連線的分頁設定或清除 HTTP Basic Auth。透過命令列與儀表板安裝及管理知識包(選擇器、資料模型、狀態機、角色手冊)。
適用情境
適合需要讓 AI 程式開發智能體操作真實瀏覽器進行測試、擷取或檢查網頁的情境,也適合想以 YAML 定義可重複的智能體工作流程並在本機或透過 REST 觸發的使用者。想為智能體提供特定網頁應用領域知識的團隊同樣適用。
執行需求
以 Node.js 本機程序執行,可用 npx 或從原始碼啟動;瀏覽器工具需要安裝 Chrome 擴充功能並連線到某個分頁。儀表板與 REST API 監聽本機 9876 埠。LLM 工作流程步驟需要 OPENAI_API_KEY 或 ANTHROPIC_API_KEY,或本機 Ollama。
安裝前請注意
瀏覽器工具可在頁面中點擊、輸入、填寫並執行 JavaScript,工作流程還能執行 shell 指令、建立或留言於 issue 和拉取請求,會變更真實資料。可為分頁儲存 HTTP Basic Auth 憑證。自動化第三方平台可能違反其條款並導致帳號受限。設定對應金鑰後,LLM 步驟會將提示傳送給 OpenAI 或 Anthropic。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SideButton MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

SideButton

Open-source AI agent platform for agentic coding — MCP server, knowledge packs, and AI workflow automation.

[npm] [License]

sidebutton.com · docs.sidebutton.com

[SideButton open-source AI agent platform for agentic coding: MCP server, agentic workflows, knowledge packs]

Run AI coding agents with agentic workflows, knowledge packs, and real browser control. Connect Claude Code, Codex, Cursor, ChatGPT, or any MCP client.

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

What you get

MCP ServerAI agent tools for browser control, workflow execution, and knowledge pack access. Stdio and SSE transports.
REST APITrigger workflows remotely from webhooks, cron jobs, mobile apps, or other agents.
Workflow EngineAI workflow automation with browser, git, issue-tracking, LLM, shell, and control-flow steps. Define agentic workflows in YAML.
Knowledge PacksInstallable domain knowledge — CSS selectors, data models, state machines. Role playbooks turn coding agents into an AI software engineer, QA, or PM.
Chrome ExtensionBrowser commands with real DOM access via WebSocket, not screenshots. Recording mode.
DashboardSvelte UI — workflow browser, run logs, skill pack manager, system status.

Quick Start

bash
# Install and startnpx sidebutton@latest
# Or from sourcepnpm install && pnpm build && pnpm start
# Open http://localhost:9876

CLI

bash
pnpm cli serve          # Start server with dashboardpnpm cli serve --stdio  # Start with stdio transport (for Claude Desktop)pnpm cli list           # List available workflowspnpm cli status         # Check server status
# Skill pack managementpnpm cli registry add <path|url>   # Install skill packs from a registrypnpm cli registry update [name]    # Update installed packspnpm cli registry remove <name>    # Uninstall packs and remove registrypnpm cli search [query]            # Search available skill packs
# Creating skill packspnpm cli init [domain]             # Scaffold a new skill packpnpm cli validate [path]           # Validate pack structurepnpm cli publish [source]          # Publish to a registry

MCP Server

SideButton is an open-source MCP server for AI coding agents. Agents connect to it directly for browser control, workflow automation, and domain knowledge.

Works with Claude Code, Codex, Cursor, Claude Desktop, VS Code, Windsurf, ChatGPT — any MCP client.

Claude Code

bash
claude mcp add sidebutton --transport http http://localhost:9876/mcp

Persists to ~/.claude.json; add --scope project to write ./.mcp.json instead. Full guide: Claude Code SideButton MCP setup.

Codex

Add to ~/.codex/config.toml:

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

Full guide: OpenAI Codex SideButton MCP setup.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Cursor

Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "sidebutton": {      "url": "http://localhost:9876/mcp"    }  }}

MCP Tools

ToolDescription
run_workflowExecute a workflow by ID
get_run_logGet execution log for a run
list_workflowsList all available workflows
get_workflowGet workflow YAML definition
list_run_logsList recent workflow executions
publish_artifactPublish evidence (screenshots, reports) from a session
get_browser_statusCheck browser extension connection
capture_pageCapture selectors from current page
navigateNavigate browser to URL
snapshotGet page accessibility snapshot
clickClick an element
typeType text into an element
press_keySend keyboard keys
scrollScroll the page
extractExtract text from element
screenshotCapture page screenshot (pass path to write a PNG file instead of returning image bytes)
select_optionSelect dropdown option
fillFill input value (React-compatible)
waitWait for element or delay
existsCheck if element exists
extract_allExtract all matching elements
extract_mapExtract structured data from repeated elements
scroll_into_viewScroll element into viewport
hoverHover over element
inject_cssInject CSS into the page (blur/hide elements before a screenshot)
evaluateExecute JavaScript in browser
browser_batchRun a sequence of browser actions in one call
set_basic_authSet HTTP Basic Auth credentials for the connected tab
clear_basic_authClear stored HTTP Basic Auth credentials

REST API

JSON endpoints for external integrations. The same workflows are available via MCP locally and via REST remotely.

bash
# Run a workflowcurl -X POST http://localhost:9876/api/workflows/check_ticket/run \  -H "Content-Type: application/json" \  -d '{"params": {"ticket_id": "PROJ-123"}}'
# List workflowscurl http://localhost:9876/api/workflows
# Get run logcurl http://localhost:9876/api/runs/latest

Trigger workflows from webhooks, cron jobs, mobile apps, or other agents on different machines.

Workflow Engine

YAML-first orchestration for agentic workflows. Step types by family:

Step Types

FamilySteps
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.callCall another workflow with parameters

LLM steps work with Ollama (local), OpenAI, and Anthropic.

Example

yaml
id: check_ticket_statustitle: "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 Interpolation

Use {{variable}} syntax to reference extracted values or parameters:

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

Knowledge Packs

Installable domain knowledge (skill packs) per web app or domain. Knowledge packs power AI code review, automated testing, and enterprise AI agent deployments.

Also referred to as skill packs in code and CLI commands.

  • Selectors — CSS selectors for UI elements
  • Data models — entity types, fields, relationships, valid states
  • State machines — valid transitions per state
  • Role playbooks — role-specific procedures (QA, SE, PM, SD)
  • Common tasks — step-by-step procedures, gotchas, edge cases
bash
sidebutton install github.comsidebutton install atlassian.net

Open registry with published packs for popular web apps. Build and share packs for any domain.

Chrome Extension

Install the SideButton Chrome Extension from the Chrome Web Store.

  • Browser commands — navigate, click, type, extract, scroll, wait, snapshot
  • Real DOM access via CSS selectors — not pixel coordinates, not screenshots
  • Recording mode — capture manual actions as workflows
  • Embed buttons — inject action buttons into any web page
  • WebSocket connection — stable reconnection, works with local or remote server

After installing:

  1. Navigate to any website
  2. Click the SideButton extension icon
  3. Click "Connect This Tab"

Dashboard & Observability

Svelte UI at http://localhost:9876:

  • Workflow browser — list, search, run
  • Run logs — step-by-step execution traces with timing, variables, errors
  • Skill pack manager — install, browse, inspect
  • System status — extension connection, LLM config, server health

SideButton handles multi-agent orchestration — from workflow execution to knowledge injection.

Architecture

┌──────────────────────────────────────────────────────────────────────────┐│                          @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)   │└──────────────┘ └─────────────────┘ └─────────────────┘ └───────────────────┘

Project Structure

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

Environment Variables

VariableRequired ForDescription
OPENAI_API_KEYllm.* stepsOpenAI API key for LLM workflows
ANTHROPIC_API_KEYllm.* stepsAnthropic API key (alternative)

Development

bash
pnpm install       # Install dependenciespnpm build         # Build all packagespnpm start         # Start serverpnpm cli list      # List workflowspnpm cli status    # Check status

Watch Mode

bash
pnpm dev              # Full dev mode (all packages)pnpm dev:server       # Server with auto-restart on :9876pnpm dev:dashboard    # Dashboard watch buildpnpm dev:core         # Core library watch build

Platform Automation Disclaimer

SideButton is a general-purpose browser automation framework. When automating third-party platforms:

  • Review Terms of Service: Many platforms prohibit or restrict automation. You are responsible for complying with the terms of any platform you automate.
  • Account Risk: Automation may result in account restrictions or suspension on some platforms.
  • Use Responsibly: Only automate actions you would perform manually. Respect rate limits and platform guidelines.

The authors do not endorse or encourage violations of third-party terms of service.

License

This project uses mixed licensing — see LICENSING.md:

  • Engine, server, CLI, dashboard — Apache-2.0
  • Browser extension — FSL-1.1-Apache-2.0 (converts to Apache-2.0 on 2029-03-15)

來源:README.md,提交 1d21564

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.5.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分