Atlas / MCP servers / psicossz29-netizen / base-http402-extractor-api

base-http402-extractor-apiBLOCK

mcp/psicossz29-netizen/base-http402-extractor-api

Autonomous HTTP 402 Web-to-Markdown API & MCP Server powered by Base L2 micropayments (0.05 USDC).

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
3 3r · 0w · 0d
Transport
stdio
License
—
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Agente de micro-API autónomo monetizado mediante el protocolo HTTP 402 (Payment Required) en la red Base L2, orientado al ecosistema de agentes de IA y desarrolladores (B2A).

🎯 Resumen y Parámetros Operativos

  • Meta Financiera: Acumular $300.00 USDC netos en la billetera de control.
  • Modelos de Pago Flexibles:
  • Bulk Deposit Tanks (Recomendado): Depósito por volumen en Base L2 con emisión instantánea de API Key (X-API-Key) para latencias <50ms sin esperar confirmación de bloques en cada consulta:
  • 🥉 Starter: $1.00 USDC = 20 consultas ($0.05/ea)
  • 🥈 Growth: $5.00 USDC = 110 consultas (+10 consultas bonus)
  • 🥇 Scale: $10.00 USDC = 250 consultas (+50 consultas bonus)
  • Micropago On-Chain 402: $0.05 USDC por llamada usando la cabecera X-Payment-Tx-Hash.
  • Freemium Hook: 3 llamadas de evaluación gratuita por IP al día (X-Free-Tier: true o en el Playground) para probar la calidad del parseo sin fricción.
  • Red: Base Mainnet (Chain ID 8453)
  • RPC Primario: https://mainnet.base.org
  • Contrato USDC Nativo: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (6 decimales)
  • Dirección Pública del Agente:

0x2231b680679FC790B5E676b0d566EF2EE4612414

  • Playground Web Interactivo: https://base-http402-extractor-api.alluring-cheque.workers.dev/playground
  • Endpoint de Producción Activo: https://base-http402-extractor-api.alluring-cheque.workers.dev

🚀 Arquitectura y Capacidades

  1. Middleware HTTP 402 & Depósitos Prepagados (`src/middleware/payment402.ts`):
  2. Autentica solicitudes vía X-API-Key, cabecera de micropago X-Payment-Tx-Hash, o evalúa la cuota freemium diaria (3/día por IP).
  3. Si no se provee pago, responde con código 402 y el payload de instrucciones (monto, token, receptor, cadena, y catálogo de depósitos por volumen).
  4. Valida en tiempo real con Viem que las transferencias estén confirm
Read from source at commit e6b5a7f740cfOBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add http-402-micro-api --env AGENT_PRIVATE_KEY=${AGENT_PRIVATE_KEY} --env BASE_PRIVATE_KEY=${BASE_PRIVATE_KEY} --env EXTRACTOR_API_KEY=${EXTRACTOR_API_KEY} --env GITHUB_TOKEN=${GITHUB_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "http-402-micro-api": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "AGENT_PRIVATE_KEY": "${AGENT_PRIVATE_KEY}",
        "BASE_PRIVATE_KEY": "${BASE_PRIVATE_KEY}",
        "EXTRACTOR_API_KEY": "${EXTRACTOR_API_KEY}",
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
03

Exposed tools (3)

3 read · 0 write · 0 destructive.

ToolRiskDescription
base-http402-extractor-apireadAutonomous Web-to-Markdown extractor for LLM context with Base L2 HTTP 402 payments and credit tanks.
extract_clean_markdownreadExtracts clean, noise-free Markdown from any URL optimized for LLM context windows.
get_payment_inforeadReturns pricing, recipient address on Base L2, and bulk tank tiers.
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (11 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (15)

HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
dist/services/extractor.js:89
'metadata.google.internal',
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
src/services/extractor.ts:101
'metadata.google.internal',
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
scripts/submit_appcypher_pr.ts:1
import 'dotenv/config';
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
scripts/submit_curated_pr.ts:1
import 'dotenv/config';
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
scripts/submit_pr3_tensorblock.ts:1
import 'dotenv/config';
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
scripts/submit_pr4_rohitg00.ts:1
import 'dotenv/config';
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/test_client.ts:55
console.log(`      - Token USDC: ${paymentInfo.token}`);
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/security_audit.test.ts:75
expect(isPrivateOrReservedIp('169.254.169.254')).toBe(true);
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/security_audit.test.ts:96
await expect(extractor.extract('http://169.254.169.254/latest/meta-data/')).rejects.toThrow(/SSRF_GUARD/);
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/security_audit.test.ts:95
await expect(extractor.extract('http://127.0.0.1:8080/admin')).rejects.toThrow(/SSRF_GUARD/);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/security_audit.test.ts:96
await expect(extractor.extract('http://169.254.169.254/latest/meta-data/')).rejects.toThrow(/SSRF_GUARD/);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/security_audit.test.ts:97
await expect(extractor.extract('http://192.168.1.100/router')).rejects.toThrow(/SSRF_GUARD/);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/security_audit.test.ts:98
await expect(extractor.extract('http://10.0.0.5/internal')).rejects.toThrow(/SSRF_GUARD/);
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@hono/node-server, @modelcontextprotocol/sdk, cheerio, dotenv, hono, turndown, viem, zod
Why it matters. 13 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-12 · audit v0.4.1 · source sha e6b5a7f740cffull audit observations/trust-audit/mcp-server/psicossz29-netizen__base-http402-extractor-api.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12e6b5a7f740cfBLOCKD69first audit
06

Questions

What is the base-http402-extractor-api MCP server?

Autonomous HTTP 402 Web-to-Markdown API & MCP Server powered by Base L2 micropayments (0.05 USDC).

What tools does base-http402-extractor-api expose?

3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is base-http402-extractor-api safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does base-http402-extractor-api need?

It reads AGENT_PRIVATE_KEY, BASE_PRIVATE_KEY, EXTRACTOR_API_KEY and GITHUB_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does base-http402-extractor-api run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as http-402-micro-api at 1.0.0.

How current is this page?

The grade is for one exact copy of the source (e6b5a7f740cf), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement