
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@binaryandthread/mcp
Advanced tools
Binary & Thread MCP server — buy a piece from inside your AI agent. 10 deterministic, read-mostly tools over the shared Store API client; the card never enters the chat and the agent can never self-complete a purchase.
Buy a Binary & Thread heavyweight piece from inside your AI agent (Claude, etc.). A small,
deterministic MCP server (stdio) exposing 10 read-mostly tools
over the same shared Store API client the bt CLI uses, so the agent can browse, stage, and
hand off a purchase without ever putting a card in the chat.
The agent can never complete a purchase or set a shipping address. The card is entered by you, on the storefront's Stripe page, in your own browser. The MCP just hands you the link.
| tool | what it does |
|---|---|
list_products | the catalog, text-only (no per-item images, keeps the agent's context lean) |
get_product | one piece's specs + its image (rendered and the Blob URL as a text floor) |
add_to_cart | create-or-reuse a cart; returns the cart_id as the durable handle |
get_cart | the authoritative server cart + total (incl. VAT) |
checkout | mints {checkout_url, session_id} instantly, never polls, never opens a browser, never sets an address |
check_payment | polls the session once; the agent re-calls at its own cadence |
get_order_status | status/timeline by display id + exact email (no address; not-found on a mismatch) |
report_issue | file a bug report, emailed to the maintainer, server-redacted; returns a reference |
teapot | 418, a deadpan easter egg (no input) |
fortune | a deterministic developer aphorism (optional seed) |
Distributed via npx from the verified @binaryandthread npm namespace, published from locked
CI with npm 2FA (hardware key) + publish provenance (signed releases). Always install the
scoped package; do not trust a bare bt-mcp binary from an unverified source (anti-impersonation,
SECURITY G11/G14/T10/T11).
Listed in the official MCP Registry as com.binaryandthread/store, under a DNS-verified
namespace we own rather than a personal GitHub account. (Superseded 2026-09-17: this line used to
say a listing was "deferred until the API is stable". The API has been stable since 0.3.0 and the
sentence was quietly arguing against the cheapest discovery surface available to us.)
Zero-config, the server ships pointed at the live store (the store URL + publishable key are baked in; the key is public by design). The minimal config is just:
// Claude Desktop / Claude Code MCP config (claude_desktop_config.json or .mcp.json)
{
"mcpServers": {
"binary-and-thread": {
"command": "npx",
"args": ["-y", "@binaryandthread/mcp"]
}
}
}
Override any of it via env for local dev / staging, or to attach your customer token:
{
"mcpServers": {
"binary-and-thread": {
"command": "npx",
"args": ["-y", "@binaryandthread/mcp"],
"env": {
"BT_STORE_URL": "http://localhost:9000", // override the baked-in prod URL (dev/staging)
"BT_PUBLISHABLE_KEY": "pk_...", // PUBLIC by design, never a secret key
"BT_REGION": "se", // optional ISO-2 (se · us · any EU country e.g. de/fr/ie); region-resolved, never hardcoded
"BT_TOKEN": "..." // optional customer JWT (own scope), from your keychain, NEVER the chat
}
}
}
}
| var | required | notes |
|---|---|---|
BT_STORE_URL | no | the Medusa Store API base URL (default: production) |
BT_PUBLISHABLE_KEY | no | the publishable key, public by design (default: production; a secret sk_ key is rejected) |
BT_TOKEN | no | the customer JWT (own data only); read from the OS keychain / a configured env, never from the chat |
BT_REGION | no | ISO-2 country code to resolve pricing — se (SEK), us (USD), or any EU country e.g. de/fr/ie (EUR); never a hardcoded currency literal. Sets the default; list_products / get_product / add_to_cart also take a per-call region arg that overrides it (a country we don't ship to is refused, not priced in the wrong currency). |
A cold agent doesn't have to infer the flow: the server exposes a getting-started resource
(bt://getting-started) describing the list_products → get_product → add_to_cart → checkout → check_payment flow and the money boundary, and a buy prompt that walks the purchase (respecting
that the card + address are entered by the human in the browser, never in the chat).
checkout returns a hand-off URL + session id
and says so in its result text, "I can't complete this for you." The human browser-hop is mandatory.@binaryandthread/store-client),
over https, with a ≤2MB byte cap + a timeout. A non-allowlisted / data: / http: URL is never
fetched, it degrades to the Blob-URL text floor. List views are text-only.get_order_status returns status only, never a shipping address./store/* only,
no admin op, no shell, no free-form execution.Claude renders MCP ImageContent natively on claude.ai / the API, but Claude Code has a base64-bloat
bug (#31208, ~15–25k tokens/image) and can
fail to render it. So get_product always emits the Blob URL as a text block too, the reliable
floor. The buy is never blocked on rendering.
Some designs are sold in two fits, regular and oversize, priced apart. list_products marks them
(fits, price_from), get_product lists sizes and prices per fit (pass fit to narrow), and
add_to_cart requires fit for them: without it the tool returns an error naming both fits, and
nothing is added. Colours follow the ship-to region (khaki is available on the oversize fit in the US only).
FAQs
Binary & Thread MCP server — buy a piece from inside your AI agent. 10 deterministic, read-mostly tools over the shared Store API client; the card never enters the chat and the agent can never self-complete a purchase.
The npm package @binaryandthread/mcp receives a total of 61 weekly downloads. As such, @binaryandthread/mcp popularity was classified as not popular.
We found that @binaryandthread/mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.