{
 "schema": "echoempire-agent-procurement-index/1.0",
 "name": "EchoEmpire Agent Procurement Index",
 "description": "One machine-readable index of every way an AI agent can discover, invoke and pay for EchoEmpire LLC capabilities without a human: remote MCP (bring your own Apify token), x402 USDC micropayments per call, and the Apify Actor catalog.",
 "operator": {
  "name": "EchoEmpire LLC",
  "homepage": "https://foundry.echoempire.org"
 },
 "updated": "2026-10-30",
 "index": {
  "agents_json": "https://echoempire-agent-index.echoempire-in-co.workers.dev/agents.json",
  "llms_txt": "https://echoempire-agent-index.echoempire-in-co.workers.dev/llms.txt",
  "capabilities_json": "https://echoempire-agent-index.echoempire-in-co.workers.dev/.well-known/echoempire-capabilities.json"
 },
 "pay_paths": [
  {
   "id": "mcp-byo-apify",
   "type": "mcp",
   "transport": "streamable-http",
   "url": "https://echoempire-web-tools-mcp.echoempire-in-co.workers.dev/mcp",
   "server_card": "https://echoempire-web-tools-mcp.echoempire-in-co.workers.dev/.well-known/mcp/server-card.json",
   "manifest": "https://echoempire-web-tools-mcp.echoempire-in-co.workers.dev/.well-known/mcp.json",
   "health": "https://echoempire-web-tools-mcp.echoempire-in-co.workers.dev/health",
   "auth": {
    "type": "bearer",
    "header": "Authorization",
    "value": "Bearer <YOUR_APIFY_TOKEN>",
    "alternatives": [
     "X-Apify-Token header",
     "?apifyToken= query",
     "apify_token tool argument"
    ],
    "get_token": "https://console.apify.com/settings/integrations"
   },
   "billing": "Each tools/call runs an EchoEmpire Apify Actor on the caller's Apify account at its public pay-per-event price; billed by Apify. initialize and tools/list are free and need no token.",
   "client_config": {
    "mcpServers": {
     "echoempire-web-tools": {
      "type": "http",
      "url": "https://echoempire-web-tools-mcp.echoempire-in-co.workers.dev/mcp",
      "headers": {
       "Authorization": "Bearer ${APIFY_TOKEN}"
      }
     }
    }
   },
   "tools": [
    {
     "name": "extract_website_content",
     "price_usd": "$0.002646/page",
     "description": "Fetch web pages and return clean readable text (boilerplate, nav and ads stripped), title, description, word count and language. Deterministic, no AI, no browser. Runs Apify Actor skilled_glee/website-content-extractor on YOUR Apify account (pay-per-event $0.002646/page, billed by Apify).",
     "inputSchema": {
      "type": "object",
      "properties": {
       "pageUrls": {
        "type": "array",
        "items": {
         "type": "string",
         "format": "uri"
        },
        "minItems": 1,
        "maxItems": 25,
        "description": "Web page URLs to extract readable content from."
       },
       "maxChars": {
        "type": "integer",
        "minimum": 500,
        "maximum": 200000,
        "default": 20000,
        "description": "Max content characters per page."
       },
       "apify_token": {
        "type": "string",
        "description": "Optional Apify API token if your MCP client cannot send the Authorization / X-Apify-Token header."
       }
      },
      "required": [
       "pageUrls"
      ],
      "additionalProperties": false
     }
    },
    {
     "name": "extract_web_metadata",
     "price_usd": "$0.001/page",
     "description": "Extract title, meta description, Open Graph, Twitter Card, JSON-LD structured data, canonical URL, language and H1s from web pages as JSON. Runs Apify Actor skilled_glee/web-metadata-extractor on YOUR Apify account (pay-per-event $0.001/page, billed by Apify).",
     "inputSchema": {
      "type": "object",
      "properties": {
       "pageUrls": {
        "type": "array",
        "items": {
         "type": "string",
         "format": "uri"
        },
        "minItems": 1,
        "maxItems": 25,
        "description": "Web page URLs to extract metadata from."
       },
       "apify_token": {
        "type": "string",
        "description": "Optional Apify API token if your MCP client cannot send the Authorization / X-Apify-Token header."
       }
      },
      "required": [
       "pageUrls"
      ],
      "additionalProperties": false
     }
    },
    {
     "name": "extract_article",
     "price_usd": "$0.001/article",
     "description": "Extract structured article data: title, author, published date, clean body text, word count and content hash. Failed URLs are not billed. Runs Apify Actor skilled_glee/article-text-extractor on YOUR Apify account (pay-per-event $0.001/article, billed by Apify).",
     "inputSchema": {
      "type": "object",
      "properties": {
       "articleUrls": {
        "type": "array",
        "items": {
         "type": "string",
         "format": "uri"
        },
        "minItems": 1,
        "maxItems": 25,
        "description": "Static article URLs (duplicates processed once)."
       },
       "maxChars": {
        "type": "integer",
        "minimum": 500,
        "maximum": 200000,
        "default": 20000,
        "description": "Max content characters per article."
       },
       "apify_token": {
        "type": "string",
        "description": "Optional Apify API token if your MCP client cannot send the Authorization / X-Apify-Token header."
       }
      },
      "required": [
       "articleUrls"
      ],
      "additionalProperties": false
     }
    },
    {
     "name": "extract_contact_details",
     "price_usd": "$0.0015/page",
     "description": "Extract emails (incl. mailto), North American phone numbers, LinkedIn/X/Facebook/Instagram/YouTube links and contact/about/team page links from web pages. Runs Apify Actor skilled_glee/contact-details-extractor on YOUR Apify account (pay-per-event $0.0015/page, billed by Apify).",
     "inputSchema": {
      "type": "object",
      "properties": {
       "pageUrls": {
        "type": "array",
        "items": {
         "type": "string",
         "format": "uri"
        },
        "minItems": 1,
        "maxItems": 25,
        "description": "Web page URLs to extract contact details from."
       },
       "apify_token": {
        "type": "string",
        "description": "Optional Apify API token if your MCP client cannot send the Authorization / X-Apify-Token header."
       }
      },
      "required": [
       "pageUrls"
      ],
      "additionalProperties": false
     }
    },
    {
     "name": "verify_emails",
     "price_usd": "$0.001/email",
     "description": "Check email addresses without sending mail: syntax, MX, null MX, disposable domains, role accounts, free providers and common typos, with a pass/risky/fail verdict and reason codes. Runs Apify Actor skilled_glee/email-verifier on YOUR Apify account (pay-per-event $0.001/email, billed by Apify).",
     "inputSchema": {
      "type": "object",
      "properties": {
       "emails": {
        "type": "array",
        "items": {
         "type": "string"
        },
        "minItems": 1,
        "maxItems": 100,
        "description": "Email addresses to check (max 100 per call via MCP)."
       },
       "apify_token": {
        "type": "string",
        "description": "Optional Apify API token if your MCP client cannot send the Authorization / X-Apify-Token header."
       }
      },
      "required": [
       "emails"
      ],
      "additionalProperties": false
     }
    },
    {
     "name": "probe_urls",
     "price_usd": "$0.0004/URL",
     "description": "Check URLs with HEAD or GET: HTTP status, final URL after redirects, redirect count, Content-Type and timing. No page body is read. Runs Apify Actor skilled_glee/http-url-probe on YOUR Apify account (pay-per-event $0.0004/URL, billed by Apify).",
     "inputSchema": {
      "type": "object",
      "properties": {
       "urls": {
        "type": "array",
        "items": {
         "type": "string",
         "format": "uri"
        },
        "minItems": 1,
        "maxItems": 25,
        "description": "Absolute http(s) URLs to probe."
       },
       "method": {
        "type": "string",
        "enum": [
         "HEAD",
         "GET"
        ],
        "default": "HEAD"
       },
       "followRedirects": {
        "type": "boolean",
        "default": true
       },
       "timeoutSecs": {
        "type": "integer",
        "minimum": 1,
        "maximum": 30,
        "default": 15
       },
       "apify_token": {
        "type": "string",
        "description": "Optional Apify API token if your MCP client cannot send the Authorization / X-Apify-Token header."
       }
      },
      "required": [
       "urls"
      ],
      "additionalProperties": false
     }
    }
   ]
  },
  {
   "id": "x402-usdc-base",
   "type": "x402",
   "base_url": "https://echoempire-x402-cents.echoempire-in-co.workers.dev",
   "discovery": "https://echoempire-x402-cents.echoempire-in-co.workers.dev/.well-known/x402",
   "x402Version": 2,
   "network": "eip155:8453",
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "asset_symbol": "USDC",
   "payTo": "0xb58Ee6163e1125A4E8C5035c95266D30F0E9765e",
   "facilitator": "https://facilitator.payai.network",
   "how_to_pay": "GET the resource; server replies HTTP 402 with payment requirements; sign an exact-scheme USDC payment (EIP-3009) for the stated amount and retry with the PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (v1) header. No account, no API key.",
   "resources": [
    {
     "url": "https://echoempire-x402-cents.echoempire-in-co.workers.dev/v1/url-probe",
     "method": "GET",
     "price_usd": "$0.002",
     "amount_atomic": "2000",
     "description": "Probe a URL: HTTP status, redirect chain, final URL, content-type, latency. In-Worker, no third-party API.",
     "queryParams": {
      "url": {
       "type": "string",
       "description": "Absolute http(s) URL to probe"
      }
     }
    },
    {
     "url": "https://echoempire-x402-cents.echoempire-in-co.workers.dev/v1/email-mx",
     "method": "GET",
     "price_usd": "$0.003",
     "amount_atomic": "3000",
     "description": "Email deliverability pre-check: syntax, MX records (DNS-over-HTTPS), null-MX, A fallback, disposable and role-account flags. No SMTP.",
     "queryParams": {
      "email": {
       "type": "string",
       "description": "Email address to check"
      }
     }
    },
    {
     "url": "https://echoempire-x402-cents.echoempire-in-co.workers.dev/v1/page-metadata",
     "method": "GET",
     "price_usd": "$0.003",
     "amount_atomic": "3000",
     "description": "Fetch an HTML page and extract title, meta description, canonical, Open Graph, Twitter card, lang, favicon.",
     "queryParams": {
      "url": {
       "type": "string",
       "description": "Absolute http(s) URL of an HTML page"
      }
     }
    }
   ]
  },
  {
   "id": "apify-actors",
   "type": "apify",
   "catalog_llms": "https://foundry.echoempire.org/llms.txt",
   "catalog_ai_catalog": "https://foundry.echoempire.org/.well-known/ai-catalog.json",
   "publisher": "https://apify.com/skilled_glee",
   "rest": "POST https://api.apify.com/v2/acts/skilled_glee~{name}/run-sync-get-dataset-items (Authorization: Bearer <APIFY_TOKEN>)",
   "apify_mcp": "https://mcp.apify.com/?tools=skilled_glee/{name}",
   "agent_payments": "https://docs.apify.com/agents/payments"
  }
 ],
 "choose": {
  "have_apify_token": "mcp-byo-apify",
  "have_usdc_wallet_on_base_no_account": "x402-usdc-base",
  "need_actor_not_in_mcp": "apify-actors"
 },
 "policy": {
  "data": "Tokens are forwarded only to api.apify.com and never stored or logged.",
  "contact": "https://foundry.echoempire.org"
 }
}