Agent Press Wire

Permita que agentes de IA anunciem lançamentos de produtos e distribuam press releases para mais de 500 sites de notícias, com pagamento por chamada em USDC via x402. Sem conta ou chave de API. Somente com cotação por padrão, com limites de gastos por chamada e vitalícios.

Documentação

Servidor MCP Agent Press Wire

Um servidor MCP que permite que agentes de IA (Claude Desktop, Claude Code, Cursor, qualquer cliente MCP) anunciem lançamentos de produtos e distribuam press releases através do Agent Press Wire. Cada chamada é paga em USDC na Base via x402, a partir da sua própria carteira. Sem conta, sem chave de API.

Ferramentas

FerramentaPreçoO que faz
announce_launch_newsroomUS$ 1 USDCRedige um press release de 350-450 palavras no estilo AP a partir da URL do seu produto e o publica em uma página pública de newsroom indexada por mecanismos de busca. Cerca de 20 segundos.
distribute_press_releasetier: "wire" US$ 99 USDC, tier: "premium" US$ 299 USDCRedige um release de 450-600 palavras e o distribui via newswire para mais de 500 sites de notícias, além de mais de 100 sites de redes de TV e rádio. O Premium adiciona AP News, USA Today, Barchart e StreetInsider. Requer city, country, contact_email. Retorna um order_id.
get_release_statusGrátisStatus e links de cobertura ao vivo para um pedido de wire.

O serviço só cobra quando o trabalho é concluído com sucesso. Rascunhos com falha, tópicos rejeitados e rejeições de wire não são cobrados.

Segurança: modo de cotação por padrão

Ferramentas pagas cobram USDC real. Configurações que controlam os gastos:

  • X402_PRIVATE_KEY: chave privada da sua própria carteira Base com USDC. Sem ela, o servidor apenas faz cotações.
  • MAX_SPEND_USD: o valor máximo que o servidor pode pagar por uma única chamada. Padrão 0, o que significa apenas cotação: toda ferramenta paga retorna os termos de preço x402 e nunca paga.
  • MAX_TOTAL_SPEND_USD: limite vitalício em todas as chamadas e reinicializações. O padrão é MAX_SPEND_USD, então, de fábrica, você obtém no máximo uma chamada paga até aumentar esse valor. Os gastos são registrados em um livro-razão em ~/.agent-press-wire/spend.json (substitua o diretório com AGENT_PRESS_WIRE_HOME). Cada autorização de pagamento assinada é contabilizada, independentemente do resultado HTTP, porque o servidor ainda pode liquidá-la até expirar. Se uma chamada falhou e sua carteira não mostra transferência para o nonce após valid_before, você pode excluir essa entrada do livro-razão.

Pagar exige duas chamadas. A primeira chamada (sem confirm_token, ou com quote_only: true) retorna o preço e um confirm_token. O agente mostra ao usuário o preço exato e, após a aprovação do usuário, chama novamente com os mesmos parâmetros e esse confirm_token. Os tokens são de uso único, expiram após 10 minutos e estão vinculados ao endpoint, a um hash dos parâmetros da solicitação e ao preço.

Um pagamento só ocorre quando todas as condições a seguir são atendidas:

  • a chave está definida, o preço está igual ou abaixo de MAX_SPEND_USD e o total vitalício permanece igual ou abaixo de MAX_TOTAL_SPEND_USD;
  • um confirm_token válido foi passado e quote_only não é verdadeiro;
  • os termos x402 do servidor correspondem aos valores fixados neste pacote: pagar para 0xF7887C1fAf0DbAedc80C78F9D396D594B69eba95, exatamente US$ 1 para /v1/press-release, US$ 99 para /v1/wire-release, US$ 299 para /v1/wire-release/premium, USDC na mainnet da Base, esquema exact com uma autorização de transferência EIP-3009 e maxTimeoutSeconds de 600 ou menos. Qualquer divergência é recusada, portanto um servidor comprometido ou um PRESS_API_URL errado não pode redirecionar fundos ou aumentar o preço.

O limite por chamada é aplicado duas vezes: por este servidor antes de assinar e pelos controles de gastos do próprio cliente x402.

Se uma chamada paga falhar após a autorização ter sido assinada, o resultado informa que o pagamento não foi liquidado conforme o servidor e inclui a autorização nonce, valid_before e o endereço do pagador. Verifique sua carteira antes de tentar novamente.

Exemplos: MAX_SPEND_USD=1 MAX_TOTAL_SPEND_USD=5 permite até cinco releases de newsroom de US$ 1 e apenas faz cotações dos níveis de wire. MAX_SPEND_USD=99 MAX_TOTAL_SPEND_USD=99 permite um release de wire padrão. Use uma carteira dedicada com fundos apenas do que você pretende gastar.

Instalação

Requer 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

Apenas cotação (sem carteira): claude mcp add agent-press-wire -- npx -y agent-press-wire-mcp

Claude Desktop

Edite 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

Adicione a ~/.cursor/mcp.json (global) ou .cursor/mcp.json (projeto):

{
  "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"
      }
    }
  }
}

Outros clientes: execute npx -y agent-press-wire-mcp como um servidor stdio com as mesmas variáveis de ambiente.

Exemplos de prompts

  • "Anuncie meu lançamento: https://example.com, acabamos de lançar a v2 com modo offline."
  • "Escreva e distribua um press release para https://example.com. Estamos em Austin, Estados Unidos, press@example.com."
  • "Quanto custaria para obter cobertura de imprensa para meu produto?" (o agente chama com quote_only: true)
  • Após o usuário aprovar um preço cotado, o agente repete a chamada com o confirm_token retornado.
  • "Verifique o status do press release w_3f9d0a1b2c."

Resposta de cotação

{
  "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
}

Desenvolvimento

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 substitui a URL base da API para testes.

Licença

MIT