mcpField
S
spikes

spikes

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

spikes について

Spikesは、AI支援開発で使うフィードバックツールで、ウェブページのレビュアーやコーディングエージェントを対象としています。ウィジェットはページ上の要素単位で、ページ情報とともに意見を記録し、CLIとMCPサーバーからエージェントがフィードバックを参照・管理できます。

主な機能

  1. 01ページ要素へのフィードバック収集
  2. 02セレクターとページ情報の記録
  3. 03フィードバックの絞り込み・出力・解決
  4. 04ローカルとホスト型のデータモード
  5. 05CLIとMCPによるエージェント連携

活用シーン

  1. 01ウェブプロトタイプへの具体的な意見を収集
  2. 02意見が多いページ要素を特定
  3. 03コーディングエージェントによるレビュー内容の確認と対応
  4. 04レビュアーとのフィードバック共有

MCP 対応

`spikes mcp serve`は、フィードバック、共有、レビュアーへの質問を一覧・投稿・管理するツールを公開します。stdioまたはHTTPのトランスポートと、ローカルJSONLまたはホスト型APIのデータに対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bierlingm-spikes": {
"command": "npx",
"args": [
"-y",
"spikes-mcp"
],
"env": {
"SPIKES_TOKEN": "<SPIKES_TOKEN>",
"SPIKES_API_URL": "<SPIKES_API_URL>"
}
}
}
}
起動コマンドnpx -y spikes-mcp
設定が必要な環境変数
SPIKES_TOKENシークレットBearer token for the hosted Spikes API. Required only when using --remote mode against spikes.sh. Local mode reads .spikes/feedback.jsonl and needs no token.
SPIKES_API_URLOverride the Spikes API base URL. Defaults to https://spikes.sh/api. Useful for self-hosted Spikes workers.

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

パッケージ
npmspikes-mcp0.4.1

ツール

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

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

詳細

/ Spikes

AI 支援による開発のフィードバックループ

MIT License Widget Size Free + Pro

AI は 1 時間でプロトタイプを作れます。
フィードバックをアクションに変える部分には、まだ時間がかかります。

クイックスタート · CLI リファレンス · ウィジェットのドキュメント · ホスト型ダッシュボード · セルフホスト


これは何ですか?

Spikes は、AI 支援開発向けのフィードバックツールです。レビュアーはスクリーンショットを使ったり、「あそこのボタン」と説明したり、コンテキストを失ったりすることなく、Web ページ上で対象を絞ったフィードバックを直接残せます。

任意の要素をクリックして、評価し、コメントできます。Spikes は正確な CSS セレクター、バウンディングボックス、ページのコンテキストを取得します。AI エージェントは、すぐに対応できる構造化 JSON を受け取ります。

アカウントは不要です。ビルド手順も不要です。file://、localhost など、どこでも動作します。


クイックスタート

1. CLI をインストールする
curl -fsSL https://spikes.sh/install.sh | sh
# Or: cargo install spikes
2. プロジェクトを初期化する
spikes init                     # Defaults to hosted spikes.sh
# spikes init --self-host       # Opt out — scaffold a self-hosted config instead

spikes init は、デフォルトで https://spikes.sh を指す [remote] セクションを含む .spikes/config.toml を作成します。ホスト型のデフォルト設定をスキップするには、--self-host を渡すか、プロンプトで s と回答します。

3. ウィジェットを HTML に追加する
spikes inject ./mockups/        # Injects widget script tag (uses configured endpoint)
spikes serve                    # http://localhost:3847
4. フィードバックを収集して活用する
spikes list                     # See all feedback
spikes list --json              # Feed to your agent
spikes list --rating no         # Find problems
spikes hotspots                 # Elements with most feedback
spikes resolve <id>             # Mark items done

CLI コマンド

コマンド説明
spikes init設定ファイルを含む .spikes/ ディレクトリを作成します(デフォルトはホスト型。利用しない場合は --self-host)
spikes listフィードバックを一覧表示します(--json、--page、--reviewer、--rating、--unresolved)
spikes show <id>個別のスパイクの詳細を表示します
spikes exportJSON/CSV/JSONL/Cursor/Claude のコンテキストにエクスポートします
spikes hotspotsフィードバックが最も多い要素を表示します
spikes reviewersすべてのレビュアーを一覧表示します
spikes inject <dir>HTML ファイルへのウィジェットの追加/削除を行います(--endpoint <url> で設定済みのエンドポイントを上書きできます)
spikes serveローカル開発サーバーを起動します(--port、--marked、--cors-allow-origin)
spikes mcp serveAI エージェント連携用の MCP サーバーを起動します
spikes pull/push/syncリモートエンドポイントと同期します
spikes share <dir>spikes.sh にアップロードしてすぐに共有します
spikes login/logout/whoami認証を管理します
spikes upgrade/billingStripe 経由で Pro プランに登録します
spikes deploy cloudflareセルフホスト可能な Worker と D1 のひな形を作成します

すべてのコマンドで、スクリプトから利用するための --json を指定できます。CLI リファレンス全文をご覧ください。

ホスト型プロジェクトのスパイクを表示する:

ホスト型ダッシュボード https://spikes.sh/dashboard では、所有するすべてのプロジェクトを一覧表示し、個々のスパイクを確認できます(ページ、評価、解決済みで絞り込み、resolved をインラインで切り替えられます)。ブラウザーから直接サインインできます。Sign in をクリックし、確認ページを開いて、メールで届いたマジックリンクから承認します。CLI は不要です。

ベアラートークン(spikes login で取得する $SPIKES_TOKEN)を使って、JSON API に直接アクセスすることもできます。

# GET /me/projects
# List all projects you own (with spike_count + last_activity)
curl -H "Authorization: Bearer $SPIKES_TOKEN" \
  https://spikes.sh/me/projects

# GET /me/projects/:key/spikes
# List spikes for one of your projects (paginated, filterable: page, per_page,
# filter_page, filter_rating, filter_resolved)
curl -H "Authorization: Bearer $SPIKES_TOKEN" \
  "https://spikes.sh/me/projects/my-project/spikes?page=1&per_page=50"

# PATCH /me/projects/:key/spikes/:id
# Toggle the `resolved` flag on one spike
curl -X PATCH -H "Authorization: Bearer $SPIKES_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"resolved": true}' \
  https://spikes.sh/me/projects/my-project/spikes/<spike_id>

# POST /projects
# Create a new project (user bearer only)
curl -X POST -H "Authorization: Bearer $SPIKES_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "my-project", "allowed_origins": ["https://example.com"]}' \
  https://spikes.sh/projects

# Single-line variant (copy-paste friendly)
curl -H "Authorization: Bearer $SPIKES_TOKEN" https://spikes.sh/me/projects

すべての /me/* エンドポイントはユーザー単位でスコープされており、自分が所有するプロジェクトとスパイクだけを参照できます。別のテナントへのリクエストは 404 PROJECT_NOT_FOUND を返します(列挙による特定を防止)。

セキュリティに関する注意: API キー(sk_spikes_*)と管理者用の SPIKES_TOKEN は、/me/* エンドポイントおよび POST /projects では受け付けられません。これらには spikes login で取得したユーザーベアラートークンが必要です。POST /spikes の収集エンドポイントでは、プロジェクトごとのオリジン許可リストとレート制限が適用されます。拒否されたウィジェットリクエストは、ウィジェットボタン上に小さな赤い #spikes-error-dot インジケーター(404/403/429)として表示されます。


AI エージェントとの連携

Spikes はエージェントに標準対応しています。AI コーディングアシスタントは、ワークフローを離れることなくフィードバックを読み取り、書き込み、管理できます。

npx spikes-mcp            # Zero-install MCP server — just works
# or: spikes mcp serve    # If you have the CLI installed
MCP サーバー — 16 個のツール

spikes mcp serve を実行すると、16 個のツールを公開する Model Context Protocol サーバーが起動します。

ツール目的
get_spikesフィルター(ページ、評価、未解決、url_prefix、since)を指定してフィードバックを一覧表示
get_element_feedback特定の CSS セレクターに対するフィードバックを取得
get_hotspotsフィードバックが最も多い要素を検索
submit_spikeプログラムからフィードバックを作成
resolve_spikeフィードバックを対応済みとしてマーク
delete_spikeスパイクを削除
create_shareファイルをアップロードして共有可能な URL を取得
list_shares有効な共有を確認
get_usage使用状況、上限、支出を確認
reply_to_spikeページ上でレビュアーに回答(任意でステータスとバージョンも指定可能)(ホスト型)
set_spike_statusスパイクを未対応、対応済み、または対応しないとしてマーク(ホスト型)
list_versions / add_versionレビュー対象のバージョンを登録し、バージョンごとの件数を確認(ホスト型)
list_questions / ask_question / get_question_answersレビュアーに質問し、回答を読む(ホスト型)

stdio および HTTP トランスポート、ローカル および リモートのデータモードに対応しています。

spikes mcp serve                              # stdio, local JSONL
spikes mcp serve --remote                     # stdio, hosted API
spikes mcp serve --transport http --port 3848 # HTTP for sandboxed agents
API キー

エージェントにはそれぞれ独自の ID が割り当てられます。メールアドレスも、マジックリンクも、人手による手順も不要です。

spikes auth create-key --name "my-agent"   # → sk_spikes_...
spikes auth list-keys                       # See all keys
spikes auth revoke-key <key_id>            # Revoke

キーは読み取り、書き込み、フルのスコープと、任意の予算上限に対応しています。

エージェント向けの従量課金

エージェント規模の使用に適した従量課金制です。シート単位ではなく、スパイクごとに支払います。

spikes usage    # See current spend and limits

予算上限に達すると、予算の適用により 429 BUDGET_EXCEEDED が返されます。エージェントは上限を超える前に確認できます。

コンテキストのエクスポート

エージェントが利用しやすい形式に最適化された、構造化 Markdown をエクスポートします。

spikes export --format cursor-context > cursor-feedback.md
spikes export --format claude-context > claude-feedback.md
検出
  • llms.txt — 9 個すべての MCP ツール、パラメーター、エージェント向けクイックスタート
  • agents.md — エージェント向けの機械可読なランディングページ
  • Smithery — MCP サーバーレジストリに掲載
  • spikes mcp install — Claude Desktop / Cursor 用の設定を生成

詳細はこちら:llms.txt · agents.md


GitHub Action

フィードバックの品質に基づいて CI を制御します。未解決の否定的なフィードバックが設定したしきい値を超えると、spikes-action はビルドを失敗させます。

name: CI
on: [push, pull_request]

jobs:
  feedback-gate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: bierlingm/spikes/[email protected]
        with:
          threshold: 0           # Fail if any blocking spikes
          ignore-paths: ""     # Optional: pages to ignore
          require-resolution: false

詳しいドキュメントについては、action/README.md をご覧ください。


ウィジェットの属性

簡単なセットアップ — プロジェクトキーを追加するだけで、フィードバックを収集できます。

<script src="https://spikes.sh/spikes.js" data-project="my-app"></script>

data-project を設定すると、フィードバックは自動的に https://spikes.sh/spikes に同期されます。セルフホストする場合を除き、エンドポイントの設定は不要です。

完全な設定 — 使用できるすべての属性:

<script src="https://spikes.sh/spikes.js"
  data-project="my-app"
  data-position="bottom-right"
  data-color="#e74c3c"
  data-theme="dark"
  data-reviewer="Pat"
  data-collect-email="true"
  data-admin="true">
</script>

セルフホスト — 独自のバックエンドを指定します。

<script src="/spikes.js"
  data-project="my-app"
  data-endpoint="https://my-worker.workers.dev/spikes">
</script>
属性説明デフォルト
data-projectプロジェクトキーでフィードバックをグループ化location.hostname
data-positionボタンの角:bottom-right、bottom-left、top-right、top-leftbottom-right
data-colorアクセントカラー(任意の CSS カラー)#e74c3c
data-themeモーダルのテーマ:dark または lightdark
data-reviewerレビュアー名を事前設定(ユーザーに入力を求める)
data-endpoint複数レビュアー間の同期に使用するバックエンド URL。任意 — data-project が設定されている場合、デフォルトは https://spikes.sh/spikes です。https://spikes.sh/spikes(data-project 設定時)、/spikes(ローカル開発時)
data-collect-emailプロンプトにメールアドレス欄を表示false
data-adminレビューモードの機能を有効化false
data-offset-x/y端からのボタンのオフセット—

詳しいドキュメントについては、ウィジェット属性リファレンスをご覧ください。

アーキテクチャ

Spikes は、連携しても単独でも動作する 3 つのコンポーネントで構成されています。

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   CLI       │────▶│   Widget    │◄────│   Worker    │
│  (Rust)     │     │  (Vanilla   │     │ (Cloudflare │
│             │     │    JS)      │     │  + D1)      │
└─────────────┘     └─────────────┘     └─────────────┘
     │                                            │
     │          spikes.sh (hosted)                │
     └────────────────────────────────────────────┘

CLI — ローカル開発、スパイク管理、デプロイ向けの Rust バイナリです。スパイクは ~/.local/share/spikes/ に保存されます。

ウィジェット — gzip 圧縮時に 14KB のバニラ JS です。要素セレクター、バウンディングボックス、評価、コメントを取得します。localStorage を使ってオフラインで動作します。

Worker — 複数レビュアー間の同期、共有、ホスト型デプロイに対応するオプションの Cloudflare Worker + D1 バックエンドです。spikes-hosted/ にあります。


開発

CLI
cd cli
cargo build --release
cargo test              # 160+ tests
cargo run -- --help
ウィジェット
cd widget
# Edit src/spikes.js
# Test by running: spikes serve from the project root
ウィジェットのリグレッションテスト

サイレントデータ損失のバグを検出する CI スイートです(例:許可されていないオリジンで読み込まれたウィジェットが、エラーを表示せずに同期に失敗するケース)。

cd tests/widget
npm install
npx playwright install chromium    # one-time
npm test                           # 23 tests: marker checks + happy/reverse/boundary specs (<60s)

ローカルの agent-ci にも組み込まれています。

npx agent-ci run --workflow workflows-local/widget.yml
Worker

Worker バックエンドは非公開の spikes-hosted リポジトリにあります。テストするには:

cd ../spikes-hosted/worker
npm test              # Worker test suite (vitest)
npx wrangler dev

セルフホスティング

独自のバックエンドが必要ですか?コマンド 1 つでセットアップできます。

spikes deploy cloudflare    # Creates spikes-worker/ directory
cd spikes-worker && npx wrangler deploy

D1 データベース、認証、Stripe の請求連携を含む詳細なセットアップについては、セルフホスティングガイドをご覧ください。

Share と Deploy Cloudflare:どちらを選ぶべきですか?

セットアップなしですぐに共有したい場合は、spikes share を使ってください。ファイルが spikes.sh にアップロードされ、当社のインフラから配信されます。手早いレビューやクライアントからのフィードバックを得たい場合、またはバックエンドを管理したくない場合に最適です。

データの分離(フィードバックが自身の Cloudflare アカウント内に保持されます)、カスタムドメインが必要な場合、またはインフラを完全に管理したい場合は、spikes deploy cloudflare を使ってください。セルフホスティングには Cloudflare アカウントと、初回のデプロイ設定が必要です。


変更点(最近の大規模改修)

  • セキュリティ:PBKDF2 によるパスワードハッシュ化、パストラバーサルの修正、XSS 対策
  • 認証:マジックリンク認証(忘れる心配のあるパスワードは不要)
  • 請求:Pro ティアに対応した Stripe 連携
  • テスト:CLI テストスイート(Rust)+ Worker テストスイート(../spikes-hosted/worker 内)
  • アーキテクチャ:関心事を明確に分離したモジュール式 Worker
  • CI/CD:テストとデプロイのパイプラインを自動化

詳細ドキュメント


Spikes を選ぶ理由

手間いらずscript タグ 1 つだけで、登録もビルド手順も不要
どこでも動作file://、localhost、あらゆるドメインに対応
高精度正確な CSS セレクターを使った要素単位のフィードバック
エージェント向けあらゆる場面で JSON を使用し、パイプやクエリ可能な CLI に対応
独自のインフラセルフホスト型かホスト型かを選択可能
軽量ウィジェットは gzip 圧縮時に 14KB
プライベートトラッキングなし。データは自分のものです

料金

ずっと無料。さらに必要なら Pro。

開始時にアカウントを作成する必要はありません。Pro 機能が必要になったらログインしてください。

無料Pro
価格ずっと $0お支払いいただける金額
共有数5無制限
共有あたりのスパイク数1,000無制限
ウィジェット + CLIフル機能フル機能
セルフホスティングはいはい
パスワード保護—はい
Webhook—はい
バッジの削除—はい

MIT ライセンスです。お支払いは利用権ではなく、感謝の気持ちを表すものです。

準備ができたら spikes upgrade を実行してください。無理にお勧めすることはありません。


ウェブサイト · ドキュメント · GitHub · 課題

MIT ライセンス · AI と協働する開発者のために作られています。

コメント

MCP は初めてですか?

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

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