Oneshot Mcp

com.oneshotpacks由 oneshotpacks.com 发布v0.1.2更新于 Oct 24, 2026

Search receipt-verified agent build packs, with each pack's real M-of-N pass rate.

已验证STDIO仅桌面开发者工具商业与电商

概览

AI 生成的概览

让编码助手在编辑器内搜索并查看 OneShot 的付费、凭据验证构建包,包括真实的 M/N 通过率。

可以做什么
  • 按关键词(技术栈、问题或细分领域)搜索目录,返回标题、一句话简介、价格与验证状态
  • 紧凑列出整个目录,含每个包的 slug、细分领域、价格与验证状态
  • 查看单个包的完整详情:包含内容、架构要点、规模范围、常见问题、凭据事实、价格、退款说明与购买链接
  • 在无法获取任何目录来源时如实说明,而不是提供过期数据
适用场景
适合在开发过程中确认是否已有针对当前需求的已验证构建包,并在决定购买前查看价格、退款条款与凭据事实。
运行要求
以 stdio 在本地运行,需要 Node.js 22.6 或更高版本;README 说明尚未发布到 npm,在此之前需指向已检出的仓库路径。需要能访问默认目录网址,或本地 packs 目录。可选环境变量 ONESHOT_CATALOG_URL、ONESHOT_SITE_URL 和 PACKS_DIR 可覆盖默认值。
安装前请注意
这是厂商自营目录:每个条目都是 OneShot 出售的产品,结果并非独立推荐。它会读取远程目录网址,失败时回退到 PACKS_DIR 下的本地文件;它只展示价格与购买链接,本身不执行购买。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Oneshot Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

oneshot-mcp

An MCP server that lets your coding agent query the OneShot catalog of receipt-verified build packs without you leaving your editor. Mid-build, your agent can ask "is there a verified pack for this?" instead of you having to remember to check the storefront.

Why you'd add this (honestly)

This is a vendor catalog: it lets your agent query OneShot's own paid build packs, plus their verification data, from inside your normal workflow. It's worth adding because it's useful independent of whether you ever buy anything -- search_packs and list_packs tell you plainly whether a receipt-verified pack exists for what you're building, with real "M of N runs passed" numbers, not marketing copy. get_pack puts the price, refund terms, and exact receipt facts in front of you before you decide anything. But be clear-eyed about what it is: this is OneShot listing its own products to your agent, not an independent recommendation engine. It never calls a pack "best" or invents a verification a receipt doesn't support, and every result carries the price and refund pointer -- but the catalog is ours, and every entry in it is something we sell.

Tools

  • search_packs({ query, limit? }) -- keyword search (stack, problem, or niche) over the catalog. Returns matching packs: title, one-liner, price, verification status stated exactly as the receipt supports (e.g. "3 of 3 clean-room runs passed", or "unverified" if no receipt exists yet), a receipt summary, the refund-policy pointer, and the storefront URL. Never ranks or calls a result "best" -- describes each match and leaves the decision to the caller.
  • get_pack({ slug }) -- full detail for one pack: what you get, architecture-decision highlights, scale envelope, FAQ, exact receipt facts (per-check pass/fail, model, token/wall-time cost) when verified, price, refund pointer, and the buy URL.
  • list_packs() -- the whole catalog, compact: slug, title, one-liner, niche, price, and verification status per pack, plus the refund-policy summary once.

Data source: fetch-with-fallback (not a bundled catalog)

Two options were on the table: read packs/*/pack.yaml + receipt/receipt.json

  • LISTING.md live at runtime, or ship a generated catalog.json baked into the npm package. Chosen: live reads, preferring the storefront's /catalog.json over a local checkout, in that order:
  1. Try GET $ONESHOT_CATALOG_URL (default https://oneshotpacks.com/catalog.json, 3s timeout). Accepts either a bare array of pack objects or { "packs": [...] }.
  2. If that fails for any reason -- network error, non-2xx, not JSON, wrong shape -- fall back to reading packs/*/pack.yaml + LISTING.md + receipt/receipt.json directly off disk under $PACKS_DIR (default ../packs, resolved from the current working directory -- matches storefront/lib/packs.ts's own convention when both this package and packs/ sit at the repo root).
  3. If neither source has anything, list_packs/search_packs say so plainly (catalog_source: "none" + an explanatory note) instead of serving stale bundled data. This server never fabricates catalog contents.

A baked-in catalog.json was rejected because it goes stale the moment a pack is re-verified or newly listed, and every server update would then require a new npm release just to refresh data the storefront already has live. Live reads cost one fetch + a YAML parse -- the same low cost the storefront's own loader pays -- and stay fresh without a redeploy of this server, which is the whole point per docs/03-marketing-distribution.md Lever 2.

The storefront's /catalog.json endpoint is being built concurrently by a colleague and may not exist yet. This server does not depend on it existing: any fetch failure (including a plain 404 today) is treated as "not there yet" and falls straight through to the local-file fallback, logged to stderr, no crash. Once /catalog.json ships, this server picks it up automatically on its next 5-minute cache refresh -- no config change needed as long as it's at the default URL.

Responses are cached in-process for 5 minutes so a long-lived stdio session doesn't refetch on every tool call.

Install

Not yet published to npm (publishing is step one of the launch checklist -- see docs/09-launch-checklist.md). Until then, point your MCP client at the absolute path of this checked-out repo. After publishing, switch to the npx form -- same shape, just swap command/args.

Claude Code

Add to your project's .mcp.json (or via claude mcp add):

json
{  "mcpServers": {    "oneshot": {      "command": "node",      "args": ["/absolute/path/to/oneshot/oneshot-mcp/src/index.ts"]    }  }}

Once published to npm:

json
{  "mcpServers": {    "oneshot": {      "command": "npx",      "args": ["-y", "oneshot-mcp"]    }  }}

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

json
{  "mcpServers": {    "oneshot": {      "command": "node",      "args": ["/absolute/path/to/oneshot/oneshot-mcp/src/index.ts"]    }  }}

Once published to npm, same swap as above ("command": "npx", "args": ["-y", "oneshot-mcp"]).

Env vars (optional, either client config's env block or your shell)

VarDefaultPurpose
ONESHOT_CATALOG_URLhttps://oneshotpacks.com/catalog.jsonRemote catalog tried first
ONESHOT_SITE_URLhttps://oneshotpacks.comBase URL used to build pack/buy links
PACKS_DIR../packs (from cwd)Local fallback packs directory

Requirements

Node >= 22.6 (uses Node's built-in TypeScript type-stripping to run .ts source directly -- no build step, no bundler, no tsc in the loop).

Development

bash
npm installnpm test              # node --test test/tools.test.tsnpm start             # runs the server on stdio (Ctrl-C to stop)node src/index.ts --help

test/tools.test.ts exercises search_packs, get_pack, and list_packs directly against fixture data in fixtures/packs/ (not through the MCP protocol -- the tool logic in src/catalog.ts is plain, transport-agnostic functions; src/index.ts only wires them to the SDK). Coverage: a search hit, a search miss, an unverified pack rendered honestly (no fabricated pass rate), a malformed pack.yaml skipped without crashing the rest of the catalog, and the full fetch-with-fallback chain (remote success, remote 404, remote network error, malformed remote shape, remote-entry-level tolerance, and TTL caching).

来源:README.md,提交 f4a30ec

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分