Agent Press Wire
개요
제작자가 쓴 설명(영어 원문)
Announce launches and distribute press releases to 500+ news sites. Pay per call in USDC (x402).
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i1개 중 1개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i아주 새로움↓ 306/주 · ★ –
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 검색 및 AI 기억
- 입력해야 할 값: X402_PRIVATE_KEY
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 1개 중 1개 통과
- 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
- 직접 입력할 값:
X402_PRIVATE_KEY,MAX_SPEND_USD,MAX_TOTAL_SPEND_USD,AGENT_PRESS_WIRE_HOME,PRESS_API_URL
비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
- npmNode.js 설치(npx 명령어용)
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"agent-press-wire": {
"command": "npx",
"args": [
"-y",
"agent-press-wire-mcp"
],
"env": {
"X402_PRIVATE_KEY": "your-value",
"MAX_SPEND_USD": "your-value",
"MAX_TOTAL_SPEND_USD": "your-value",
"AGENT_PRESS_WIRE_HOME": "your-value",
"PRESS_API_URL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add agent-press-wire --env X402_PRIVATE_KEY=your-value --env MAX_SPEND_USD=your-value --env MAX_TOTAL_SPEND_USD=your-value --env AGENT_PRESS_WIRE_HOME=your-value --env PRESS_API_URL=your-value -- npx -y agent-press-wire-mcp실행하기 전에 빈 값을 채워 주세요.
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"agent-press-wire": {
"command": "npx",
"args": [
"-y",
"agent-press-wire-mcp"
],
"env": {
"X402_PRIVATE_KEY": "your-value",
"MAX_SPEND_USD": "your-value",
"MAX_TOTAL_SPEND_USD": "your-value",
"AGENT_PRESS_WIRE_HOME": "your-value",
"PRESS_API_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"agent-press-wire": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"agent-press-wire-mcp"
],
"env": {
"X402_PRIVATE_KEY": "your-value",
"MAX_SPEND_USD": "your-value",
"MAX_TOTAL_SPEND_USD": "your-value",
"AGENT_PRESS_WIRE_HOME": "your-value",
"PRESS_API_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
직접 입력할 값
- Private key of YOUR OWN Base wallet holding USDC, used to pay per call via x402. Omit for quote-only mode.
MAX_SPEND_USDenvMax USD the server may pay for a single call. 0 (default) = quote only, never pays. Prices: $1 newsroom, $99 wire, $299 premium wire.MAX_TOTAL_SPEND_USDenvLifetime cap in USD across all calls and restarts, tracked in a ledger at ~/.agent-press-wire/spend.json. Defaults to MAX_SPEND_USD (one paid call's worth).AGENT_PRESS_WIRE_HOMEenvDirectory for the spend ledger (spend.json). Default ~/.agent-press-wire.PRESS_API_URLenvOverride the API base URL (testing only).
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 dylancaponi 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- … 아직 점검 안 함
계속 관리되고 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
검색 및 AI 기억 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5760개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 5760개 중 85%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5760개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Agent Press Wire, 안전한가요?
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: X402_PRIVATE_KEY
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 6일 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Context7, Codebase Memory, Exa
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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
| Tool | Price | What it does |
|---|---|---|
announce_launch_newsroom | $1 USDC | Drafts 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_release | tier: "wire" $99 USDC, tier: "premium" $299 USDC | Drafts 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_status | Free | Status 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.
Bring your own copy
Both paid tools accept optional headline and body. When both are given, Agent Press Wire skips drafting and publishes or distributes the text as written (only a media contact line may be appended). Requirements: plain English text, paragraphs separated by blank lines, body 150 to 900 words (380 to 900 for the wire tiers), a 3 to 20 word headline naming the announcing company, at most 5 links and only to the product's own site. The copy goes through the same safety checks as a drafted release (prohibited topics, market-moving claims on wire tiers, brand must match the page, link policy, model safety review); failures come back uncharged with the reasons.
Pictures
By default the release uses the picture the product page shares (og:image, else twitter:image). Pass image_url (a public http(s) URL or a data:image/...;base64 URI, PNG/JPEG/WebP/GIF, max 1 MB) with optional image_alt (max 125 characters) and image_caption (max 300) to choose it, or no_image: true for none. With your own headline and body you can also pass up to 3 inline pictures in images ([{url, alt, caption}]), placed at [image 1], [image 2], [image 3] lines in the body. Every picture gets a safety review before charging; a picture you supply that fails returns an uncharged error with the reason, and a page picture that fails is left out.
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. Default0, 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 toMAX_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 withAGENT_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 aftervalid_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 belowMAX_TOTAL_SPEND_USD; - a valid
confirm_tokenwas passed andquote_onlyis 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, schemeexactwith an EIP-3009 transfer authorization, andmaxTimeoutSecondsof 600 or less. Any mismatch is refused, so a compromised server or a wrongPRESS_API_URLcannot 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
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):
{
"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):
{
"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.
Vercel AI SDK
The same service is available as AI SDK tools from the agent-press-wire-mcp/ai-sdk subpath. Requires ai 7 or later.
npm install agent-press-wire-mcp ai viem
import { generateText, isStepCount } from 'ai';
import { agentPressWireTools } from 'agent-press-wire-mcp/ai-sdk'; import { privateKeyToAccount } from 'viem/accounts';
const tools = agentPressWireTools({ wallet: privateKeyToAccount(process.env.AGENT_PRIVATE_KEY as 0x${string}), maxPaymentUsd: 1, });
const { text } = await generateText({ model: 'openai/gpt-5-mini', prompt: 'We just shipped v2 of https://example.com with offline sync. Publish a press release about it.', tools, stopWhen: isStepCount(3), });
| Tool | Price | What it does |
|---|---|---|
quotePressRelease | Free | Price of a tier (newsroom, wire, premium) and whether this tool set may pay it. Never signs anything. |
publishPressRelease | $1 USDC | Same as announce_launch_newsroom above. |
distributePressRelease | $99 or $299 USDC | Same as distribute_press_release above. |
getReleaseStatus | Free | Status and links for a wire order. |
Options:
wallet: a viem account (or any x402 EVM signer) holding USDC on Base. Without it the paid tools only return quotes.maxPaymentUsd: most one call may pay. Default1, so the newsroom release works and the wire tiers only quote. Set99or299to allow those.maxTotalUsd: most the tool set may pay across all calls. Defaults tomaxPaymentUsd, so one paid call.baseUrl,fetch,timeoutMs: for testing and proxies. Payment terms are pinned the same way as in the MCP server, so a differentbaseUrlcannot change the payee or the price.
The model cannot change these limits. Each paid tool reads the server's 402 terms first and pays only if they match the pinned wallet and price and the caps allow it.
Every paid tool returns an object with status and charged:
paid,charged: true: the job succeeded and the service settled the payment.resultholds the release or the wire order.not_paid,charged: false: nothing was signed, for example no wallet or the price is over a cap.quoteholds the price.rejected,charged: false: the service refused the job (HTTP 422 for bad input or a topic it does not accept, 409 for a duplicate, 502 or 503 for a failure on its side).erroranddetailssay what to fix. The service does not settle failed jobs, so these do not count towardmaxTotalUsd.unknown,charged: "unknown": the network failed after a payment authorization was sent. Check the wallet for thenoncebefore retrying. This one keeps counting towardmaxTotalUsd.
To have a person approve the wire tiers, use the AI SDK's approval setting: toolApproval: { distributePressRelease: 'user-approval' } in generateText or streamText.
Integration guide: https://agentpresswire.dev/docs/ai-sdk
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, press@example.com."
- "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
{
"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
npm install
npm run build npm test # offline guard-rail tests against a localhost mock x402 server; never pays npm run test:quote # quote-mode smoke test against production; never pays npx @modelcontextprotocol/inspector node dist/index.js
PRESS_API_URL overrides the API base URL for testing.
License
MIT