Enclave402

Pay-per-call agent tools: Polymarket signals, IPFS pinning, EIP-712 attestations. USDC on Base.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
91%
Naming quality
92%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin vet_seller

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,420Tokens (tool definitions)
~2.6 KBTypical response size
Significant attention impact (3.45% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "enclave402": {
      "url": "https://enclave402.com/mcp"
    }
  }
}

Remote endpoints

https://enclave402.com/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_market_signal(slug, limit)

Polymarket signal plus fields the free listing does not have: 1h and 6h probability deltas, 24h realized volatility, and whale flow from the trade tape (net YES notional, largest print, whale count, flow label). Plus prices, bid/ask, spread, 24h change, momentum, volume, liquidity. MUST be invoked when an agent needs where a market is MOVING, not just where it is. Do NOT use for spot prices or order execution. Settles $0.010 USDC on Base; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional Polymarket market slug for one specific market. Omit to receive the top markets by 24h volume."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Number of top markets to return when slug is omitted."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "source": {
      "description": "Upstream data providers"
    },
    "query": {
      "description": "Echo of the resolved query (slug, or top/orderBy)"
    },
    "markets": {
      "description": "Normalized market rows"
    },
    "asOf": {
      "description": "ISO-8601 timestamp the data was fetched"
    },
    "settled": {
      "description": "true when an x402 payment settled for this response (false on free-quota or dry-run)"
    },
    "ts": {
      "description": "Response timestamp, UNIX milliseconds"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡pin_storage(content, name)

Store a JSON document (object or string, up to 8 KB) on IPFS through a managed pinning service and return its content identifier (CID v1) plus an HTTP gateway URL. MUST be invoked when an agent needs durable, content-addressed storage for memory, decisions, artifacts or metadata that other agents can fetch by CID. Do NOT send raw binary, files over 8 KB, or an existing CID to re-pin. Settles $0.008 USDC via x402 on Base; failed or unavailable pins are never charged.

Input Schema

{
  "type": "object",
  "properties": {
    "content": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {}
        },
        {
          "type": "string"
        }
      ],
      "description": "JSON object or string to store (serialized size up to 8 KB)."
    },
    "name": {
      "type": "string",
      "maxLength": 120,
      "description": "Optional human label stored with the pin."
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "pinned": {
      "description": "true when the provider accepted and pinned the content"
    },
    "cid": {
      "description": "IPFS CID of the stored content"
    },
    "provider": {
      "description": "Pinning provider"
    },
    "size": {
      "description": "Pinned size in bytes as reported by the provider"
    },
    "status": {
      "description": "Provider pin status (pinned)"
    },
    "gateway": {
      "description": "Resolvable HTTP gateway URL for the CID"
    },
    "settled": {
      "description": "true when an x402 payment settled for this response"
    },
    "ts": {
      "description": "Response timestamp, UNIX milliseconds"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪attest_agent(agentId, state)

EIP-712 signed, timestamped attestation binding an agentId, the keccak256 digest of a declared state, and the paying wallet; attestor key at /transparency, verify offline with ethers.verifyTypedData. MUST be invoked when an agent needs third-party, non-repudiable proof that a state or decision existed at a point in time (audit trails, hand-offs, escrow). Do NOT use for hardware TEE, zk proofs or on-chain EAS. Settles $0.040 USDC via x402 on Base; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "agentId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Stable identifier or EVM address of the agent being attested."
    },
    "state": {
      "type": "string",
      "maxLength": 8192,
      "description": "Serialized state, decision, or payload hash to bind. Hashed with keccak256(utf8); the raw string is never stored."
    }
  },
  "required": [
    "agentId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "attestation": {
      "description": "Attestation status"
    },
    "attestationId": {
      "description": "keccak256 of the signature"
    },
    "attestor": {
      "description": "Gateway attestor address (published at /transparency)"
    },
    "digest": {
      "description": "EIP-712 typed-data hash that was signed"
    },
    "signature": {
      "description": "65-byte secp256k1 signature, hex"
    },
    "eip712": {
      "description": "domain, types, primaryType and message needed to verify offline"
    },
    "verify": {
      "description": "One-line verification recipe"
    },
    "teeProvider": {
      "description": "Hardware TEE provider when configured, else null"
    },
    "enclaveRpc": {
      "description": "Enclave verification endpoint when configured, else null"
    },
    "teeQuote": {
      "description": "Hardware quote when a TEE is configured, else null"
    },
    "settled": {
      "description": "true when an x402 payment settled for this response"
    },
    "ts": {
      "description": "Response timestamp, UNIX milliseconds"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢vet_seller(resource, method)

Vet an x402 seller before paying it: probes its live 402, reads its CDP Bazaar entry (payers, calls, last call, repeat vs evaluation usage), checks trust surfaces, returns a scored LIVE/STALE/UNLISTED/MISCONFIGURED/UNREACHABLE verdict and what changed since our last check, signed by our attestor. MUST be invoked before a first payment to an unknown resource, or on a schedule to watch it. Do NOT use to pay it. Settles $0.010 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "maxLength": 2048,
      "description": "Absolute https URL of the x402 resource to vet (the paid route itself, not the seller homepage)."
    },
    "method": {
      "type": "string",
      "description": "HTTP method the resource expects; POST resources are probed with an empty JSON body."
    }
  },
  "required": [
    "resource"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "description": "Normalized resource URL that was vetted"
    },
    "method": {},
    "checkedAt": {
      "description": "ISO-8601 time of the probe"
    },
    "verdict": {
      "description": "LIVE = payable, indexed, recently called. STALE = indexed but not called within VET_STALE_DAYS. UNLISTED = payable but never counted by the Bazaar. MISCONFIGURED = an x402 buyer cannot pay it as served. UNREACHABLE = no answer."
    },
    "score": {
      "description": "40 challenge shape + 40 Bazaar usage + 20 trust surfaces"
    },
    "usagePattern": {
      "description": "repeat = calls/payer at or above the repeat threshold; evaluation = buyers try once and leave"
    },
    "findings": {
      "description": "Every deduction, machine-coded and human-readable"
    },
    "challenge": {
      "description": "What the target 402 actually said: status, x402Version, accepts[0], description length, WWW-Authenticate presence, networks offered"
    },
    "bazaar": {
      "description": "CDP Bazaar index entry for the resource: indexed, lastCalledAt, uniquePayers30d, totalCalls30d, callsPerPayer"
    },
    "trust": {
      "description": "Which of /.well-known/x402, /llms.txt, /.well-known/security.txt, /transparency the origin publishes"
    },
    "previous": {
      "description": "Summary of the last verdict this gateway issued for the same resource (checkedAt, verdict, score, usagePattern); null on first check. Call on a schedule and this is your watch."
    },
    "changes": {
      "description": "Fields that differ from the previous verdict (verdict, score, usagePattern, findingCodes, priceUsdc, payTo, indexed, uniquePayers30d, totalCalls30d, lastCalledAt); empty when unchanged or first check"
    },
    "attestation": {
      "description": "EIP-712 signature over resource, checkedAt, verdict, score, usagePattern and changes by the published attestor, verifiable offline; null when the attestor is unconfigured"
    },
    "settled": {
      "description": "true when an x402 payment settled for this response"
    },
    "ts": {
      "description": "Response timestamp, UNIX milliseconds"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_market_verdict(slug)

Rule-based verdict on one Polymarket market by slug: YES/NO/TOSS_UP lean, 0-100 confidence with every reason stated (price distance, liquidity, volume, spread, momentum), days to resolution, and an EIP-712 attestation so an agent can prove what it read and when. Not a forecast model. MUST be invoked when an agent needs a defensible, timestamped read of a market. Do NOT use to discover markets (use market/signal). Settles $0.020 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 200,
      "description": "Polymarket market slug (get one from market/signal)."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "slug": {},
    "question": {},
    "lean": {
      "description": "Where the crowd sits at the lean thresholds"
    },
    "confidence": {
      "description": "How much the reading can be trusted, per the stated rules"
    },
    "confidenceBand": {},
    "impliedProbability": {},
    "daysToResolution": {},
    "reasons": {
      "description": "Every rule that fired and its effect on the verdict"
    },
    "method": {
      "description": "The exact rules and thresholds used, so the verdict is reproducible"
    },
    "market": {},
    "asOf": {},
    "attestation": {
      "description": "EIP-712 signature over slug, asOf, lean, confidence and impliedProbability by the published attestor; null when unconfigured"
    },
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢census_verdict(resource, payTo, verdict, limit, offset)

Pre-spend check from the seller census: each Bazaar-indexed resource is re-probed periodically (liveness, 402-envelope compliance, declared output schema, latency, usage) and mapped to pay | caution | avoid with an EIP-712 signature a router checks offline. Query one resource, a payTo, or page the feed by verdict. MUST be invoked before dispatching to an unknown seller. Do NOT use to probe on demand (see /api/seller/vet). Settles $0.002 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "maxLength": 2048,
      "description": "Absolute https URL of one x402 resource."
    },
    "payTo": {
      "type": "string",
      "description": "EVM payee address; returns every assessed resource paid to it."
    },
    "verdict": {
      "type": "string",
      "description": "Bulk feed filter (used when neither resource nor payTo is given)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Bulk feed page size."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Bulk feed page offset."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "mode": {},
    "items": {},
    "total": {},
    "census": {
      "description": "Sweep status: assessed count, cadence, last sweep."
    },
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢census_export(includeStale)

Whole-Bazaar seller census in one payload: every fresh verdict row (resource, payTo, verdict, score, schema, latency, checkedAt, per-row signature) plus a sha256 manifest and one EIP-712 attestation over it, so a router verifies the full dump offline. MUST be invoked when an agent needs the complete trust map for routing or analytics. Do NOT use for a single lookup (see /api/census/verdict). Settles $3.500 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "includeStale": {
      "type": "string",
      "description": "Include rows older than the verdict TTL."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "generatedAt": {},
    "count": {},
    "counts": {},
    "sha256": {
      "description": "Hex sha256 of JSON.stringify(items)."
    },
    "items": {},
    "attestation": {
      "description": "EIP-712 signature over generatedAt, sha256, count and counts by the published attestor; null when unconfigured"
    },
    "census": {
      "description": "Sweep status: assessed count, cadence, last sweep."
    },
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compute_hash(algorithm, input, key, encoding)

Deterministic hashing of arbitrary input: SHA-256, SHA-384, SHA-512, HMAC-SHA256, PBKDF2, scrypt. Returns hex digest. MUST be invoked when an agent needs a cryptographic hash or key derivation. Do NOT use for encryption or signing. Settles $0.001 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "algorithm": {
      "type": "string",
      "description": "Hash algorithm"
    },
    "input": {
      "type": "string",
      "maxLength": 100000,
      "description": "Data to hash (UTF-8 string)"
    },
    "key": {
      "type": "string",
      "maxLength": 1000,
      "description": "Key for HMAC/PBKDF2/scrypt (required for keyed algorithms)"
    },
    "encoding": {
      "type": "string",
      "description": "Output encoding"
    }
  },
  "required": [
    "algorithm",
    "input"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "algorithm": {},
    "digest": {
      "description": "Hash output in the requested encoding"
    },
    "encoding": {},
    "inputLength": {},
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compute_encode(operation, input)

Encoding and decoding utility: base64 encode/decode, hex encode/decode, URL encode/decode, JWT decode (no verification), JSON stringify/parse. MUST be invoked when an agent needs format conversion. Do NOT use for cryptographic operations (use compute/hash). Settles $0.001 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "description": "Operation to perform"
    },
    "input": {
      "type": "string",
      "maxLength": 500000,
      "description": "Data to encode/decode"
    }
  },
  "required": [
    "operation",
    "input"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "operation": {},
    "result": {
      "description": "Encoded/decoded output (string or object for jwt-decode/json-parse)"
    },
    "inputLength": {},
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compute_search(query, limit)

Web search returning ranked results with title, URL, description, and source domain. MUST be invoked when an agent needs current web information. Returns up to 10 results. Do NOT use for cached/static data lookups. Settles $0.005 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 500,
      "description": "Search query"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Max results to return"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {},
    "results": {},
    "count": {},
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢compute_infer(prompt, system, maxTokens, json)

Cheap small-model text completion for agent sub-tasks: classify, extract, summarize, rewrite. MUST be invoked when an agent needs a short LLM answer without paying flagship rates. Prompt <=8000 chars, maxTokens <=1024, json:true forces a JSON object. Do NOT use for long-form generation or tool calling. Settles $0.003 USDC; no charge on failure.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "maxLength": 8000,
      "description": "User prompt"
    },
    "system": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional system instruction"
    },
    "maxTokens": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1024,
      "description": "maxTokens"
    },
    "json": {
      "type": "string",
      "description": "Force a JSON object response"
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "output": {},
    "model": {},
    "usage": {},
    "settled": {},
    "ts": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_gateway_info

FREE, no payment required: gateway facts before you pay — network, payee, attestor, live per-tool prices in USDC, readiness, public receipt ledger and transparency URLs. MUST be invoked before the first paid call from a new agent. Do NOT use for market data or attestation.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded10 tools