mcpField
S
spikes

spikes

本地服务
github.com/bierlingm开发工具16 周前更新

关于 spikes

Spikes 是面向 AI 辅助开发的反馈工具,供网页评审者和编码 Agent 使用。它的组件会连同页面上下文记录元素级意见,CLI 和 MCP 服务则让 Agent 查询和管理反馈。

主要功能

  1. 01收集网页元素反馈
  2. 02记录选择器和页面上下文
  3. 03筛选、导出和解决反馈
  4. 04本地与托管数据模式
  5. 05通过 CLI 和 MCP 接入 Agent

适用场景

  1. 01收集网页原型的定向意见
  2. 02找出反馈最多的页面元素
  3. 03让编码 Agent 读取并处理评审意见
  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 可以在一小时内构建出原型。
将反馈转化为行动,仍然是最耗时的环节。

快速开始 · CLI 参考 · Widget 文档 · 托管仪表板 · 自托管


这是什么?

Spikes 是一款面向 AI 辅助开发的反馈工具。它让评审者可以直接在网页上针对特定元素留下反馈——无需截图,无需说“那边的那个按钮”,也不会丢失上下文。

点击任意元素。评分。评论。Spikes 会捕获精确的 CSS 选择器、边界框和页面上下文。你的 AI Agent 会收到可立即采取行动的结构化 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 会创建 .spikes/config.toml,其中包含指向 https://spikes.sh 的 [remote] 配置段。传入 --self-host(或在提示时输入 s)即可跳过托管默认设置。

3. 将 widget 添加到 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>显示单条 spike 的详情
spikes export导出为 JSON/CSV/JSONL/Cursor/Claude 上下文
spikes hotspots列出反馈最多的元素
spikes reviewers列出所有评审者
spikes inject <dir>在 HTML 文件中添加/移除 widget(--endpoint <url> 可覆盖已配置的端点)
spikes serve本地开发服务(--port、--marked、--cors-allow-origin)
spikes mcp serve启动用于集成 AI Agent 的 MCP 服务
spikes pull/push/sync与远程端点同步
spikes share <dir>上传到 spikes.sh,即刻分享
spikes login/logout/whoami身份验证管理
spikes upgrade/billing通过 Stripe 订阅 Pro 级别
spikes deploy cloudflare搭建自托管 Worker + D1

所有命令都支持用于脚本编写的 --json。请参阅完整 CLI 参考。

查看托管项目的 spikes:

托管仪表板 https://spikes.sh/dashboard 会列出你拥有的所有项目,并允许你查看各条 spike 的详情(可按页面、评分和已解决状态筛选,也可直接切换 resolved)。直接在浏览器中登录:点击 登录,打开验证页面,然后通过发送到你邮箱的魔法链接进行确认——无需使用 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/* 端点都限定于用户范围:你只能查看自己拥有的项目和 spikes。跨租户请求会返回 404 PROJECT_NOT_FOUND(防枚举)。

安全说明: /me/* 端点或 POST /projects 不接受 API 密钥(sk_spikes_*)和管理员 SPIKES_TOKEN——这些请求必须使用通过 spikes login 获取的用户持有者令牌。POST /spikes 收集端点会强制执行每个项目的来源允许列表和速率限制;被拒绝的 widget 请求会在 widget 按钮上显示一个小的红色 #spikes-error-dot 指示标记(404 / 403 / 429)。


AI Agent 集成

Spikes 原生支持 Agent。你的 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 会启动一个 Model Context Protocol 服务,提供 16 个工具:

工具用途
get_spikes使用筛选条件(页面、评分、未解决、url_prefix、since)列出反馈
get_element_feedback获取特定 CSS 选择器对应的反馈
get_hotspots查找反馈最多的元素
submit_spike以编程方式创建反馈
resolve_spike将反馈标记为已处理
delete_spike删除一条 spike
create_share上传文件并获取可分享的 URL
list_shares查看当前有效的分享
get_usage查看使用统计、限额和支出
reply_to_spike在页面上回复审核者,可选择设置状态和版本(托管版)
set_spike_status将 spike 标记为待处理、已处理或不予处理(托管版)
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 密钥

Agent 拥有各自的身份。无需邮箱、魔法链接或人工操作:

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

密钥支持读取、写入和完全访问权限范围,并可选设置预算上限。

Agent 分级计费

按使用量计费,适合 Agent 级别的使用。按 spike 付费,而非按席位付费:

spikes usage    # See current spend and limits

达到上限时,预算限制会返回 429 BUDGET_EXCEEDED——Agent 可以在消耗预算前先检查。

上下文导出

导出经过结构化、针对 Agent 使用优化的 Markdown:

spikes export --format cursor-context > cursor-feedback.md
spikes export --format claude-context > claude-feedback.md
发现
  • llms.txt — 全部 9 个 MCP 工具、参数和 Agent 快速入门
  • agents.md — 面向 Agent 的机器可读首页
  • 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。


Widget 属性

简单设置 — 只需添加项目密钥,即可开始收集反馈:

<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按钮与边缘的偏移量—

完整文档请参阅 Widget 属性参考。


架构

Spikes 由三个可协同工作或独立运行的组件组成:

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

CLI — 用于本地开发、管理和部署 spike 的 Rust 二进制程序。将 spike 存储在 ~/.local/share/spikes/ 中。

Widget — 经过 gzip 压缩后仅 14KB 的原生 JavaScript。用于捕获元素选择器、边界框、评分和评论。通过 localStorage 离线运行。

Worker — 可选的 Cloudflare Worker + D1 后端,用于多评审者同步、分享和托管部署。位于 spikes-hosted/ 中。


开发

CLI
cd cli
cargo build --release
cargo test              # 160+ tests
cargo run -- --help
Widget
cd widget
# Edit src/spikes.js
# Test by running: spikes serve from the project root
Widget 回归测试

用于捕获静默数据丢失类问题的 CI 测试套件(例如,Widget 在不允许的来源上加载后无法同步,且未显示错误):

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

自托管

想要使用自己的后端?只需一条命令:

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 防护
  • 身份验证:魔法链接身份验证(无需记忆密码)
  • 账单:集成 Stripe,支持 Pro 套餐
  • 测试:CLI 测试套件(Rust)+ Worker 测试套件(位于 ../spikes-hosted/worker)
  • 架构:模块化 Worker,职责划分清晰
  • CI/CD:自动化测试和部署流水线

详细文档


为什么选择 Spikes

零门槛只需一个 script 标签,无需注册,无需构建
随处可用file://、localhost、任何域名
精准针对元素提供反馈,并包含准确的 CSS 选择器
原生适配 Agent全面使用 JSON、支持管道、CLI 可查询
使用自己的基础设施可自托管,也可使用托管服务 — 由你选择
轻巧Widget 经过 gzip 压缩后仅 14KB
隐私保护不跟踪,你的数据归你所有

定价

永久免费。需要更多功能时可选 Pro。

无需账户即可开始使用。需要 Pro 功能时再登录。

免费版Pro
价格永久 $0按能力付费
分享数量5无限制
每次分享的 spike 数量1,000无限制
Widget + CLI完整功能完整功能
自托管是是
密码保护—是
Webhooks—是
移除徽章—是

采用 MIT 许可。付费是表达感谢,而非获取访问权限。

准备好时运行 spikes upgrade。不必有压力。


网站 · 文档 · GitHub · 问题反馈

MIT 许可证 · 为与 AI 协作的开发者打造。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。