mcpField
T
tampermonkey-mcp

tampermonkey-mcp

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

tampermonkey-mcp について

tampermonkey-mcpは、Tampermonkey Editorsブラウザー拡張機能を介してユーザースクリプトを読み書きするMCPサーバーです。AIアシスタントによるスクリプト管理向けに、一覧、読み取り、更新、作成、削除のツールを提供します。

主な機能

  1. 01ユーザースクリプトとメタデータの一覧表示
  2. 02指定したスクリプトの読み取り
  3. 03スクリプト内容の更新
  4. 04ユーザースクリプトの作成と削除
  5. 05接続コードによるブラウザー拡張機能との接続

活用シーン

  1. 01インストール済みスクリプトの内容確認
  2. 02既存スクリプトの変更
  3. 03ユーザースクリプトの作成や削除

MCP 対応

MCPサーバーは、Tampermonkeyユーザースクリプトを管理するツールをAIアシスタントに提供します。接続コードを取得し、Tampermonkey Editors拡張機能に入力して接続します。

設定

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

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

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

パッケージ
npmtampermonkey-mcp0.0.4

ツール

6

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

使用方法

まず、次のブラウザー拡張機能をインストールします。

次に、tampermonkey-mcp をグローバルにインストールします。

npm install -g tampermonkey-mcp@latest

最後に、AI アシスタントが tampermonkey ツールを使用できるように設定します。

{
  "mcpServers": {
    "tampermonkey": {
      "command": "npx",
      "args": [
        "-y",
        "tampermonkey-mcp@latest"
      ]
    }
  }
}

アシスタントは tampermonkey_get_connection_code を呼び出し、Tampermonkey Editors 拡張機能に入力できる接続コードを返します。

Claude Code の設定例

npm install -g @anthropic-ai/claude-code

// either use your local checkout
npm run watch
claude mcp add --transport http --scope project tampermonkey http://localhost:4001/mcp

// or the npm package
npm install -g tampermonkey-mcp@latest
claude mcp add --transport stdio --scope project tampermonkey -- npx -y tampermonkey-mcp

// more browser control needed?
// Open chrome://inspect/#remote-debugging
// [x] Allow remote debugging for this browser instance
// or
chromium --user-data-dir=/tmp/chrome-devtools-mcp-test-profile --remote-debugging-port=9222

npm install -g chrome-devtools-mcp@latest
// install Tampermonkey and Tampermonkey Editors
claude mcp add --transport stdio --scope project chrome-devtools-mcp -- npx -y chrome-devtools-mcp@latest --slim --no-usage-statistics --auto-connect --browser-url http://127.0.0.1:9222

ビルド

npm install
npm run all

Tampermonkey MCP Server のアーキテクチャ

概要

このプロジェクトは、Tampermonkey Editors ブラウザー拡張機能を介して、AI アシスタントが Tampermonkey ユーザースクリプトを読み取り、変更できるようにする MCP(Model Context Protocol)サーバーを実装します。

アーキテクチャコンポーネント

┌─────────────────────────────────────────────────────────────────────────────┐
│                              AI Assistant                                   │
└─────────────────────────────────────────────────────────────────────────────┘
                                   │
                                   │ MCP Protocol (stdio transport)
                                   ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                         tampermonkey_mcp (MCP Server)                       │
│                                                                             │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  server.ts                    │  Main entry point                     │  │
│  │                               │  - HTTP or stdio transport            │  │
│  │                               │  - MCP middleware                     │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
│                                  │                                          │
│                                  ▼                                          │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  tampermonkey.ts              │  MCP Tool Definitions                 │  │
│  │                               │  - tampermonkey_get_connection_code   │  │
│  │                               │  - tampermonkey_list                  │  │
│  │                               │  - tampermonkey_get                   │  │
│  │                               │  - tampermonkey_patch                 │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
│                                  │                                          │
│                                  ▼                                          │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  tampermonkey-ws-client.ts    │  WebSocket Server                     │  │
│  │                               │  - Connection code generation         │  │
│  │                               │  - Authentication handshake           │  │
│  │                               │  - Message relay to extension         │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────────┘
                                   │
                                   │ WebSocket (local, port derived from code)
                                   ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                   Tampermonkey Editors Extension                            │
│                                                                             │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  Service Worker               │  Receives connection code,            │  │
│  │                               │  establishes WebSocket connection     │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
│                                  │                                          │
│                                  │ Chrome Extension Messaging               │
│                                  ▼                                          │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  Content Script               │  Bridges extension ↔ Tampermonkey     │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
│                                  │                                          │
│                                  ▼                                          │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  Tampermonkey                 │  Userscript storage & execution       │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────────┘

接続フロー

  1. MCP Server の起動 - ランダムに選択された利用可能なポートで WebSocket サーバーを作成します
  2. 接続コードの生成 - 形式:<base32(port - 1024)><auth_token><echo_token>
  3. ユーザーが tampermonkey_get_connection_code を呼び出す - 接続コードを取得します
  4. ユーザーが Tampermonkey Editors にコードを入力する - 拡張機能がコードを解析してポートと認証情報を取得します
  5. 拡張機能が MCP サーバーに接続する - 認証付きの WebSocket ハンドシェイクを行います
  6. MCP ツールが使用可能になる - list、get、patch を呼び出せるようになります

認証プロトコル

Extension                              MCP Server
    │                                      │
    │───── auth (token) ──────────────────>│
    │                                      │
    │<──── auth (echo_token) ──────────────│
    │                                      │
    │───── auth (echo_token) ─────────────>│
    │                                      │
    │<──── authOK ─────────────────────────│
    │                                      │
    │<───── pings (every 15s) ─────────────│  (keep-alive)
    │───── pongs ─────────────────────────>│
    │                                      │
    │<───── commands (list/get/patch) ─────│
    │───── responses ─────────────────────>│

MCP ツール

tampermonkey_get_connection_code
  • 目的:WebSocket 接続コードを取得して接続を初期化します。
  • 必須:WebSocket サーバーを起動するため、最初に呼び出す必要があります。
  • 出力:Tampermonkey Editors に入力する接続コード。
tampermonkey_list
  • 目的:利用可能なすべてのユーザースクリプトを一覧表示します。
  • 入力:名前のパターンによる任意のフィルター、または URL パターンの指定。
  • 出力:ユーザースクリプトのメタデータ(名前、名前空間、パス、requires)の配列。
tampermonkey_get
  • 目的:指定したユーザースクリプトの内容を取得します。
  • 入力:path(list から取得)、任意の ifNotModifiedSince タイムスタンプ。
  • 出力:スクリプトの内容、lastModified タイムスタンプ、またはエラー。
tampermonkey_patch
  • 目的:ユーザースクリプトの内容を更新します。
  • 入力:path、value(新しい内容)、楽観的ロック用の任意の lastModified。
  • 出力:成功の確認、またはエラー。
tampermonkey_put
  • 目的:指定した名前と名前空間で新しいユーザースクリプトを作成します。
  • 入力:value(新しいスクリプト)、任意の lastModified。
  • 出力:成功の確認、作成したスクリプトのパス、またはエラー。
  • 必要条件:Tampermonkey Editors 1.0.6+ および Tampermonkey 5.6+
tampermonkey_delete
  • 目的:既存のユーザースクリプトを削除します。
  • 入力:path(list から取得)。
  • 出力:成功の確認、またはエラー。
  • 必要条件:Tampermonkey Editors 1.0.6+ および Tampermonkey 5.6+

基本的なテスト

MCP Server の機能

curl -X POST http://localhost:4001/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "clientInfo": {
        "name": "curl-client",
        "version": "1.0.0"
      },
      "capabilities": {}
    }
  }'

stdio のテスト

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"test-client","version":"1.0.0"},"capabilities":{}}}' | npx -y tampermonkey-mcp
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | npx -y tampermonkey-mcp
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"tampermonkey_list","arguments":{"pattern":""}}}' | npx -y tampermonkey-mcp

コメント

MCP は初めてですか?

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

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