原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

SlingHook

作者:DylanCourtney584版本 0.5.2i★ –i在你的电脑上运行
注册名称io.github.DylanCourtney584/slinghook

安装

概览

作者提供的说明(英文原文)

Inspect, debug and replay captured webhooks (Stripe, GitHub, Shopify) from your AI agent.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 网店与支付
  • 你需要填写:SLINGHOOK_TOKEN

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: SLINGHOOK_TOKEN, SLINGHOOK_SERVER

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "slinghook": {
      "command": "npx",
      "args": [
        "-y",
        "slinghook",
        "mcp"
      ],
      "env": {
        "SLINGHOOK_TOKEN": "your-value",
        "SLINGHOOK_SERVER": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add slinghook --env SLINGHOOK_TOKEN=your-value --env SLINGHOOK_SERVER=your-value -- npx -y slinghook mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "slinghook": {
      "command": "npx",
      "args": [
        "-y",
        "slinghook",
        "mcp"
      ],
      "env": {
        "SLINGHOOK_TOKEN": "your-value",
        "SLINGHOOK_SERVER": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "slinghook": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "slinghook",
        "mcp"
      ],
      "env": {
        "SLINGHOOK_TOKEN": "your-value",
        "SLINGHOOK_SERVER": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • SLINGHOOK_TOKEN 机密 env
    SlingHook API token (shk_...). Optional after running `npx slinghook login` once.
  • SLINGHOOK_SERVER env
    Server URL. Defaults to https://slinghook.co.za; set it for a self-hosted server.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 DylanCourtney584 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“网店与支付”中的其他服务器比较i

  • 星标数多于此分类中其他 2629 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2629 个服务器的 100% 更新
  • 基础检查结果等于或优于此分类中其他 2629 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

SlingHook 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:SLINGHOOK_TOKEN

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.5.2)于今天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Stripe MCP

MCP server integrating with Stripe - tools for customers, products, payments, and more.

作者:stripe广泛使用★ 204313个月前更新

在云端运行✓ stripe.com

MCP Cn Commerce

8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending

作者:TonyWang-hub起步阶段↓ 73/周★ 9630天前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

slinghook CLI

Forwards webhooks captured by a SlingHook server to a server on your machine, such as localhost:3000. A hosted SlingHook instance can't reach your localhost, so the CLI makes the connection outbound, the same way stripe listen does.

Requires Node 20.17+.

npm install -g slinghook

slinghook auth login --server https://slinghook.co.za slinghook auth status # who you're logged in as slinghook endpoints # list your endpoint UUIDs slinghook mcp # MCP server for AI agents (see below) slinghook listen --forward http://localhost:3000/webhooks

can also be the catch URL you copied, e.g. https://slinghook.co.za/c/

Every command also works with the short name shk, e.g. shk auth login or shk listen --forward …. login, status and logout also work without auth, as in earlier versions.

● Listening on endpoint 3f1c…

Forwarding to http://localhost:3000/webhooks

14:02:11 POST #1234 → 200 37ms sig:valid 14:02:15 POST #1235 → ✗ Connection refused (is your local server running?) 2ms

How it works

  1. Auth. slinghook login works like gh auth login. It asks how you want to log in:
  • Web browser. The CLI shows a one-time code (like BCDF-GHJK) and opens the dashboard. Sign in there however you normally do (password, Google, GitHub, SAML, two-factor) and approve the code. The CLI then receives a new API token named after your computer. The token works in the workspace you approved it from. --web skips the question. Codes expire after 15 minutes.
  • Personal access token. Create one under User Settings → API Tokens (/app/?settings=tokens) and paste it. In scripts and CI use slinghook login --with-token < token.txt, --token shk_…, or set SLINGHOOK_TOKEN.

Only the token is saved, in ~/.config/slinghook/config.json (mode 0600). The server stores only a SHA-256 hash of it. You can see and revoke tokens under User Settings → API Tokens.

  1. Stream. listen opens GET /v1/events/ with Authorization: Bearer . This is the same SSE stream the dashboard uses. On first connect the server sends recent history, which the CLI skips. It forwards only new log events.
  2. Reconnect. The server closes the stream every ~55s by design. The CLI reconnects with Last-Event-ID, so webhooks that arrive during the gap are delivered once and in order. Network errors back off from 1s up to 30s.
  3. Forward. Each webhook is re-sent with its original method, body, query string, and headers. Hop-by-hop headers such as Host and Content-Length are dropped. Signature headers are kept, so your app's verification runs for real. The CLI adds X-Webhook-Replay: true and X-SlingHook-Log-Id. Deliveries run one at a time with a 15s timeout. Payloads that were truncated at capture are skipped. If your server is down, times out, or answers 408, 425, 429 or 5xx, the CLI retries 3 more times (after 1s, 2s and 4s) before moving on. Later webhooks wait, so they still arrive in order. --retries N changes the count (0 to 10).
  4. Report. Each result is posted to POST /api/logs/ /replays, so it appears in the dashboard's replay history. Use --no-report to turn this off.

Team routing: one provider URL, many developers

On the Team plan, a whole team can share one endpoint (Stripe and Shopify only allow a few webhook URLs) and still each get their own events on their own machine. Claim the events that are yours, then listen with --mine:

# Events whose body has metadata.dev = "alice" go to Alice's localhost

slinghook listen --forward http://localhost:3000/webhooks \ --claim data.object.metadata.dev=alice

Or claim by a header or query parameter

slinghook listen --forward http://localhost:3000/webhooks --claim header:X-Dev=alice

--claim saves your claim on the endpoint (replacing your earlier one) and implies --mine. Repeat it to require several conditions. You can also edit claims under Endpoint Settings → Team routing in the dashboard, then run listen --mine without --claim.

With --mine, the CLI forwards only the events routed to you, and the open stream counts you as online. Events nobody claims stay in the shared feed for everyone to see, unless the endpoint is set to give them to whoever is online, in which case they go round-robin to the people running listen --mine. Viewers can watch but can't claim events.

Don't run the CLI and the dashboard's Auto-Relay toggle for the same endpoint at the same time, or each webhook will be delivered twice.

Chaos mode: is your handler idempotent?

On Pro and Team, slinghook chaos takes a saved scenario (or one captured request) and sends it to your handler the way providers really behave:

slinghook chaos <uuid> --forward http://localhost:3000/webhooks --scenario 12 \

--check http://localhost:3000/debug/orders/count

Each event is first sent once (the baseline). Then, in order:

TestWhat is sentPass
duplicatesevery event again2xx
concurrentthe same event 3 times at the same moment2xx for all
out_of_orderthe events again, newest first2xx, or 409/425/429/503 to ask for a retry
malformedthe first body cut in half, empty, and garbage4xx
late_retrythe first event again after --late-delay seconds2xx

Deliveries are sent exactly as captured, signature included, without the X-Webhook-Replay header, so your handler treats them like the provider's own redeliveries. Status codes can't show double side effects, so pass --check with a GET on your app that reflects its state (an order count, a balance). It is read after the baseline and after each test; any change fails that test.

Pick tests with --only duplicates,concurrent. Run without --scenario to list the endpoint's scenarios. The report is saved to the dashboard (⌘K → "Chaos mode"), and the command exits with code 1 when a test fails, so it can run in CI.

MCP server: let your AI agent debug webhooks

slinghook mcp is a Model Context Protocol server. AI coding agents such as Claude Code, Cursor and VS Code start it in the background and call SlingHook as a set of tools, logged in as you. Ask your agent "my Stripe webhook is failing, find out why and fix it", and it can run the whole Catch. Debug. Replay loop:

ToolWhat it doesChanges anything?
list_endpointsYour catch URLs and where each one relaysNo
list_eventsCaptured webhooks as short summaries (no bodies). The 50 newest on every plan; query and before_id search full history (Pro)No
get_eventOne webhook in full: headers, query, body (long bodies cut)No
debug_signatureWhy the signature failed, optionally against a candidate secretNo
replay_eventRe-sends the webhook from your machine to your handler, records it, and returns the verdict: fixed, regressed, still failing or still passingYes: a real delivery
get_replay_resultReplay history and fix verification verdict (both response bodies on Pro)No
list_scenariosSaved scenarios (ordered sets of events) on an endpointNo
run_scenarioReplays every step of a scenario from your machine to your handler and reports each step (back to back, or recorded gaps capped at 5s with keep_timing; 3 runs a minute)Yes: real deliveries
generate_handlerTypes, a fixture and a test (TypeScript, Python, PHP or Go) from a real event, to build a handler around. Writes no files itselfNo
compare_eventsWhat differs between two webhooks, field by field (defaults to the previous event of the same type)No
create_endpointA new catch URL (same name returns the existing one; at most 5 per session; no secrets through the chat)Yes: adds an endpoint

Every event has a number within your account (#12), shown in the dashboard's feed. Name events to your agent however is natural: "event 12", "the latest event", "the latest invoice.paid", or the provider's own id such as Stripe's evt_1Qx.... The inspector's #12 menu also copies a ready-made prompt.

Add it once, after slinghook login:

# Claude Code (macOS, Linux)

claude mcp add slinghook -- slinghook mcp

Claude Code on Windows: npm installs slinghook as a .cmd file, which needs cmd /c

claude mcp add slinghook -- cmd /c slinghook mcp

Other clients take the same command in their JSON config:

{ "mcpServers": { "slinghook": { "command": "slinghook", "args": ["mcp"] } } }

In Claude Code, /mcp shows whether it connected. The agent asks before running replay_event, because the tool is marked as one that changes things.

Safety rails:

  • Replays stay local. replay_event only sends to localhost and private networks (10.x, 172.16-31.x, 192.168.x, host.docker.internal). Webhook bodies are written by third parties, and a crafted one could try to talk your agent into sending stored payloads elsewhere. Start the server with slinghook mcp --allow-remote-targets to lift this.
  • Rate limits. One MCP session makes at most 60 tool calls and 10 replays a minute, so a looping agent stops quickly.
  • Your permissions. Every call uses your token, so the server's rules apply: your workspace, your role (viewers can't replay) and your plan.

The server talks JSON-RPC over stdin and stdout, so it prints nothing to stdout itself; its startup note goes to stderr. To see the protocol, pipe a request in:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | slinghook mcp

Known gaps

  • Bodies travel through the JSON event stream as text, so binary payloads aren't forwarded byte-for-byte.
  • There are no retries yet. A failed delivery is reported, and you can replay it from the dashboard.

Developing

From a checkout of the SlingHook repo, cd cli && npm link puts your working copy on your PATH, and npm test runs the tests.

Publishing

Bump version in package.json, then run npm publish from this folder. The tests run first (prepublishOnly), and only bin/, src/, this README and package.json are included in the package.

问 PopNx