Agent Press Wire

io.github.dylancaponiv0.1.1更新於 Oct 4, 2026

Announce launches and distribute press releases to 500+ news sites. Pay per call in USDC (x402).

概覽

AI 產生的概覽

讓助理草擬並發布新聞稿,或將其分發到新聞網站,並按次以你自己 Base 錢包中的 USDC 付款。

功能
此伺服器提供三個工具:announce_launch_newsroom 會依產品網址草擬 350-450 字的 AP 風格新聞稿,並以 1 美元發布到公開、可被搜尋索引的 newsroom 頁面;distribute_press_release 會草擬 450-600 字的稿件,並透過新聞專線分發到 500 多家新聞網站以及 100 多家電視與廣播網站,收費 99 美元,premium 等級為 299 美元並額外涵蓋 AP News、USA Today、Barchart 與 StreetInsider;get_release_status 免費,會回傳專線訂單的狀態與報導連結。付費呼叫透過 x402 在 Base 上以 USDC 結算,服務方表示僅在任務成功時收費。
適用情境
當你希望助理把產品網址與簡短說明變成一篇已發布的新聞稿,或把稿件推送到廣泛的新聞專線分發,而且願意按次以加密貨幣付費時使用。若只需要草擬文字則不需要它,因為付費工具會實際發布或分發。
執行需求
透過 npx 以 stdio 程序在本機執行,需要 Node 20+。Base 錢包私鑰透過環境變數 X402_PRIVATE_KEY 提供;未設定時伺服器只會報價。支出由 MAX_SPEND_USD(預設 0,僅報價)與 MAX_TOTAL_SPEND_USD 限制,帳本目錄由 AGENT_PRESS_WIRE_HOME 指定(預設 ~/.agent-press-wire)。PRESS_API_URL 可覆寫 API 基礎網址以供測試。不需要帳號或 API 金鑰。
安裝前請注意
付費工具會從 X402_PRIVATE_KEY 對應的錢包花費真實 USDC,請使用只存入你打算花費金額的專用錢包。單次價格為 1、99 與 299 美元。每一筆已簽署的付款授權都會計入帳本,即使 HTTP 呼叫失敗也一樣,因為它在到期前仍可能結算;重試前請先查看錢包。發布與分發會把稿件內容傳送給第三方新聞網站,專線呼叫還需要提供城市、國家與聯絡電子郵件。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Agent Press Wire,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Agent Press Wire MCP server

An MCP server that lets AI agents (Claude Desktop, Claude Code, Cursor, any MCP client) announce product launches and distribute press releases through Agent Press Wire. Each call is paid in USDC on Base over x402, from your own wallet. No account, no API key.

Tools

ToolPriceWhat it does
announce_launch_newsroom$1 USDCDrafts a 350-450 word AP-style press release from your product URL and publishes it on a public, search-indexed newsroom page. About 20 seconds.
distribute_press_releasetier: "wire" $99 USDC, tier: "premium" $299 USDCDrafts a 450-600 word release and distributes it over a newswire to 500+ news sites plus 100+ TV and radio network sites. Premium adds AP News, USA Today, Barchart and StreetInsider. Requires city, country, contact_email. Returns an order_id.
get_release_statusFreeStatus and live coverage links for a wire order.

The service only charges when the job succeeds. Failed drafts, rejected topics and wire rejections are not charged.

Safety: quote mode by default

Paid tools charge real USDC. Settings that control spending:

  • X402_PRIVATE_KEY: private key of your own Base wallet holding USDC. Without it the server only quotes.
  • MAX_SPEND_USD: the most the server may pay for a single call. Default 0, which means quote only: every paid tool returns the x402 price terms and never pays.
  • MAX_TOTAL_SPEND_USD: lifetime cap across all calls and restarts. Defaults to MAX_SPEND_USD, so out of the box you get at most one paid call until you raise it. Spend is tracked in a ledger at ~/.agent-press-wire/spend.json (override the directory with AGENT_PRESS_WIRE_HOME). Every signed payment authorization is counted, whatever the HTTP outcome, because the server could still settle it until it expires. If a call failed and your wallet shows no transfer for its nonce after valid_before, you can delete that entry from the ledger.

Paying takes two calls. The first call (without confirm_token, or with quote_only: true) returns the price and a confirm_token. The agent shows the user the exact price, and after the user approves it calls again with the same parameters and that confirm_token. Tokens are single use, expire after 10 minutes, and are bound to the endpoint, a hash of the request parameters and the price.

A payment only happens when all of these hold:

  • the key is set, the price is at or below MAX_SPEND_USD, and the lifetime total stays at or below MAX_TOTAL_SPEND_USD;
  • a valid confirm_token was passed and quote_only is not true;
  • the server's x402 terms match values pinned in this package: pay to 0xF7887C1fAf0DbAedc80C78F9D396D594B69eba95, exactly $1 for /v1/press-release, $99 for /v1/wire-release, $299 for /v1/wire-release/premium, USDC on Base mainnet, scheme exact with an EIP-3009 transfer authorization, and maxTimeoutSeconds of 600 or less. Any mismatch is refused, so a compromised server or a wrong PRESS_API_URL cannot redirect funds or raise the price.

The per-call cap is enforced twice: by this server before signing, and by the x402 client's own spend controls.

If a paid call fails after the authorization was signed, the result says the payment was not settled per the server and includes the authorization nonce, valid_before and payer address. Check your wallet before retrying.

Examples: MAX_SPEND_USD=1 MAX_TOTAL_SPEND_USD=5 allows up to five $1 newsroom releases and only quotes the wire tiers. MAX_SPEND_USD=99 MAX_TOTAL_SPEND_USD=99 allows one standard wire release. Use a dedicated wallet funded with only what you intend to spend.

Install

Requires Node 20+.

Claude Code

bash
claude mcp add agent-press-wire \  -e X402_PRIVATE_KEY=0xYOUR_KEY -e MAX_SPEND_USD=1 -e MAX_TOTAL_SPEND_USD=5 \  -- npx -y agent-press-wire-mcp

Quote only (no wallet): claude mcp add agent-press-wire -- npx -y agent-press-wire-mcp

Claude Desktop

Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):

json
{  "mcpServers": {    "agent-press-wire": {      "command": "npx",      "args": ["-y", "agent-press-wire-mcp"],      "env": {        "X402_PRIVATE_KEY": "0xYOUR_KEY",        "MAX_SPEND_USD": "1",        "MAX_TOTAL_SPEND_USD": "5"      }    }  }}

Cursor

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

json
{  "mcpServers": {    "agent-press-wire": {      "command": "npx",      "args": ["-y", "agent-press-wire-mcp"],      "env": {        "X402_PRIVATE_KEY": "0xYOUR_KEY",        "MAX_SPEND_USD": "1",        "MAX_TOTAL_SPEND_USD": "5"      }    }  }}

Other clients: run npx -y agent-press-wire-mcp as a stdio server with the same environment variables.

Example prompts

  • "Announce my launch: https://example.com, we just shipped v2 with offline mode."
  • "Write and distribute a press release for https://example.com. We're in Austin, United States, [email protected]."
  • "How much would it cost to get press coverage for my product?" (the agent calls with quote_only: true)
  • After the user approves a quoted price, the agent repeats the call with the returned confirm_token.
  • "Check the status of press release w_3f9d0a1b2c."

Quote response

json
{  "mode": "quote",  "paid": false,  "reason": "no confirm_token: this was a quote",  "quote": { "price_usd": 99, "asset": "USDC", "network": "Base mainnet (eip155:8453)", "pay_to": "0xF7887C1fAf0DbAedc80C78F9D396D594B69eba95" },  "spend": { "spent_total_usd": 0, "max_total_spend_usd": 99, "max_spend_usd": 99 },  "confirm_token": "ct1.1791069332201.6cba...d563",  "confirm_token_expires_in_seconds": 600}

Development

bash
npm installnpm run buildnpm test             # offline guard-rail tests against a localhost mock x402 server; never paysnpm run test:quote   # quote-mode smoke test against production; never paysnpx @modelcontextprotocol/inspector node dist/index.js

PRESS_API_URL overrides the API base URL for testing.

License

MIT

來源:README.md,提交 19beb98

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.1最新Oct 4, 2026