Skip to content

Wicked MCP

by WickedAPI · remote · local (npm) · no sign-in to list tools · v1.5.0 · published by GitHub user WickedAPI

Whole Wicked suite for agents: market data, SEC filings, wallet checks, risk, identity, memory.

Deletes · 2Changes · 32

49 tools: 2 can delete or cancel things, 32 change things and 15 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http wicked https://mcp.wickedapi.com/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

49 tools

Deletes or cancels 2Claude Code: deny
  • memory_delete[Wicked Memory] PERMANENTLY hard-delete a memory (right-to-be-forgotten).No findings

    Why it is in this group

    • The name "memory_delete" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    [Wicked Memory] PERMANENTLY hard-delete a memory (right-to-be-forgotten). Default scope "chain" removes every version; "version" only this one. Only an audit row (no content) is kept.
  • paywall_delete_route[x402 Paywall] Remove a paywalled route; applies within ~20s (needs PAYWALL_API_KEY).No findings

    Why it is in this group

    • The name "paywall_delete_route" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    [x402 Paywall] Remove a paywalled route; applies within ~20s (needs PAYWALL_API_KEY).
Changes things 32Claude Code: ask
  • filings_8k_events[Filings Oracle] 8-K material-event alerts classified into categories an agent can act on: earnings, exec_change, material_agreement, acquisition_disposition, bankruptcy, delisting…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Filings Oracle] 8-K material-event alerts classified into categories an agent can act on: earnings, exec_change, material_agreement, acquisition_disposition, bankruptcy, delisting, cybersecurity, auditor_or_restatement, control_change, financing, restructuring_impairment, shareholder_vote, governance, reg_fd, other_events — 8-K material-event alerts classified into categories an agent can act on: earnings, exec_change, material_agreement, acquisition_disposition, bankruptcy, delisting, cybersecurity, auditor_or_restatement, control_change, financing, restructuring_impairment, shareholder_vote, governance, reg_fd, other_events. Each event lists every item with its official label. **Example:** `/v1/8k-events?category=bankruptcy&days=7`
  • filings_filing[Filings Oracle] One filing by accession number, with its parsed items or insider transactions and the SEC document link — One filing by accession number, with its parsed items or …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Filings Oracle] One filing by accession number, with its parsed items or insider transactions and the SEC document link — One filing by accession number, with its parsed items or insider transactions and the SEC document link. **Example:** `/v1/filing?accession=0001731122-26-001341`
  • filings_freshness[Filings Oracle] Proof of real-time: seconds since the last successful SEC poll, age of the newest filing, median and p95 ingest lag (from SEC acceptance time) over the last 200 li…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Filings Oracle] Proof of real-time: seconds since the last successful SEC poll, age of the newest filing, median and p95 ingest lag (from SEC acceptance time) over the last 200 live filings, last successful poll per form type, and rows stored — Free. Proof of real-time: seconds since the last successful SEC poll, age of the newest filing, median and p95 ingest lag (from SEC acceptance time) over the last 200 live filings, last successful poll per form type, and rows stored. **Example:** `/v1/freshness`
  • filings_insider_summary[Filings Oracle] Insider activity rollup for one ticker over a window: open-market buy and sell counts and dollar totals, net flow, distinct buyers and sellers, a cluster-buying fl…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Filings Oracle] Insider activity rollup for one ticker over a window: open-market buy and sell counts and dollar totals, net flow, distinct buyers and sellers, a cluster-buying flag (three or more insiders buying), and the largest trades — Insider activity rollup for one ticker over a window: open-market buy and sell counts and dollar totals, net flow, distinct buyers and sellers, a cluster-buying flag (three or more insiders buying), and the largest trades. **Example:** `/v1/insider-summary?ticker=NVDA&days=30`
  • filings_insider_trades[Filings Oracle] Form 4 insider transactions parsed to one row per trade: insider, role and title, security, code (P purchase, S sale, A grant ...), shares, price, dollar value, sh…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Filings Oracle] Form 4 insider transactions parsed to one row per trade: insider, role and title, security, code (P purchase, S sale, A grant ...), shares, price, dollar value, shares owned after, direct/indirect, and whether it was under a 10b5-1 plan — Form 4 insider transactions parsed to one row per trade: insider, role and title, security, code (P purchase, S sale, A grant ...), shares, price, dollar value, shares owned after, direct/indirect, and whether it was under a 10b5-1 plan. Defaults to open-market buys and sells only. **Example:** `/v1/insider-trades?side=buy&min_value=100000&exclude_10b5_1=true`
  • identity_jwks[Wicked Identity] Public RS256 keys to verify an assertion_token locally.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Identity] Public RS256 keys to verify an assertion_token locally. Free. Set sandbox=true for the separate key set that signs sandbox assertions.
  • identity_register[Wicked Identity] Register a REAL wallet (no stake required).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Identity] Register a REAL wallet (no stake required). Needs your signature over identity_get_nonce's message; this tool never signs. Sandbox identities are registered by identity_sandbox_register instead.
  • identity_sandbox_register[Wicked Identity] START HERE if you have no wallet or cannot sign messages.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Identity] START HERE if you have no wallet or cannot sign messages. Returns a sandbox wallet + sandbox_token (no signing, no body). Then call identity_get_challenge and identity_submit_response with wallet + sandbox_token. Sandbox results are for trying the service: signed with a separate key (identity_jwks sandbox=true) and never reported as verified. Use a real wallet for an accountable identity. Limit: 10 per IP per hour.
  • identity_submit_response[Wicked Identity] Submit your answer to a challenge; scored pass / fail / inconclusive.No findings

    Why it is in this group

    • The name "identity_submit_response" says "submit": a word for a change.
    Description, as the server wrote it
    [Wicked Identity] Submit your answer to a challenge; scored pass / fail / inconclusive. A pass returns a short-lived signed assertion_token (JWT) verifiable via identity_jwks. Real wallet: needs a DIFFERENT fresh nonce than identity_get_challenge used. Sandbox: wallet + sandbox_token.
  • memory_deletions[Wicked Memory] Your deletion audit log (ids, times, reasons; never content).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Memory] Your deletion audit log (ids, times, reasons; never content).
  • memory_history[Wicked Memory] Full version chain for a memory, oldest first, with valid_from / valid_until / superseded_by.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Memory] Full version chain for a memory, oldest first, with valid_from / valid_until / superseded_by. Works from any version's id.
  • memory_prepareWicked Memory step 1 of every call: returns the exact `message_to_sign`.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Wicked Memory step 1 of every call: returns the exact `message_to_sign`. Sign it with your own wallet (EIP-191 personal_sign), then call the matching memory_* tool with the SAME arguments plus the returned timestamp, nonce and your signature. Timestamp must be within 5 minutes; nonce is single-use, so prepare again for every call.
  • memory_store[Wicked Memory] Store a memory (free, fair-use rate limited).No findings

    Why it is in this group

    • The name "memory_store" says "store": a word for a change.
    Description, as the server wrote it
    [Wicked Memory] Store a memory (free, fair-use rate limited). A real embedding is computed at write time. Run memory_prepare with operation 'store' and these same arguments first.
  • memory_update[Wicked Memory] Update without overwriting: creates a new version and closes the old one (valid_until / superseded_by).No findings

    Why it is in this group

    • The name "memory_update" says "update": a word for a change.
    Description, as the server wrote it
    [Wicked Memory] Update without overwriting: creates a new version and closes the old one (valid_until / superseded_by). Omitted fields carry over; only the current version can be updated (409 otherwise).
  • paywall_create_route[x402 Paywall] Paywall a new endpoint with x402 pay-per-call, settled in USDC straight to payTo.No findings

    Why it is in this group

    • The name "paywall_create_route" says "create": a word for a change.
    Description, as the server wrote it
    [x402 Paywall] Paywall a new endpoint with x402 pay-per-call, settled in USDC straight to payTo. With upstreamUrl, paid requests are proxied to your backend. Applies live within ~20s (needs PAYWALL_API_KEY).
  • paywall_import_routes[x402 Paywall] Bulk upsert routes keyed on (method, path) — paywall a whole API in one call (needs PAYWALL_API_KEY).No findings

    Why it is in this group

    • The name "paywall_import_routes" says "import": a word for a change.
    Description, as the server wrote it
    [x402 Paywall] Bulk upsert routes keyed on (method, path) — paywall a whole API in one call (needs PAYWALL_API_KEY).
  • paywall_signup[x402 Paywall] Create a tenant account.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [x402 Paywall] Create a tenant account. Returns a Bearer apiKey ONCE — store it and set PAYWALL_API_KEY. Rate-limited to 5/hour per IP.
  • paywall_update_route[x402 Paywall] Partial update of a route (e.g.No findings

    Why it is in this group

    • The name "paywall_update_route" says "update": a word for a change.
    Description, as the server wrote it
    [x402 Paywall] Partial update of a route (e.g. change price or payout wallet); applies live within ~20s (needs PAYWALL_API_KEY).
  • registry_create_api_key[Wicked Registry] Step 2 of getting a free API key.No findings

    Why it is in this group

    • The name "registry_create_api_key" says "create": a word for a change.
    Description, as the server wrote it
    [Wicked Registry] Step 2 of getting a free API key. Submit the wallet, the timestamp and YOUR signature over the message from registry_onboarding_message(action=api_key). The key (wr_...) is returned once - store it and pass it as api_key to registry_search_tools / registry_tool_detail. Up to 3 active keys per wallet; past the daily cap calls fall back to x402.
  • registry_onboarding_message[Wicked Registry] Step 1 of self-onboarding.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Registry] Step 1 of self-onboarding. Returns the exact message YOU must sign (EIP-191 personal_sign) plus its timestamp, valid for about an hour. action=api_key (needs wallet) for a free API key, or action=register (needs name and endpoint_url) to list your own tool. This tool never signs anything.
  • registry_register_tool[Wicked Registry] Register a tool you own so it gets real synthetic checks and a live score.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Registry] Register a tool you own so it gets real synthetic checks and a live score. Get the exact message to sign from registry_onboarding_message(action=register), sign it with owner_wallet, then call this. This tool never signs.
  • registry_report_tool[Wicked Registry] File a complaint about a tool's reliability or behaviour.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Registry] File a complaint about a tool's reliability or behaviour. Public, rate-limited; reviewed manually, never auto-suspends.
  • registry_tool_badge[Wicked Registry] A tool's current composite reliability score.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Registry] A tool's current composite reliability score. Public and free.
  • registry_tool_detail[Wicked Registry] One tool's full score breakdown, component history and recent real health checks.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Registry] One tool's full score breakdown, component history and recent real health checks. x402 or a free API key.
  • reputation_statement[Wicked Reputation] An agent's full position plus real event ledger (stakes, unstakes, withdrawals, slashes).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Reputation] An agent's full position plus real event ledger (stakes, unstakes, withdrawals, slashes). Does not include WickedAPI call volume or fees — see the `note` field.
  • reputation_tiers[Wicked Reputation] Live tier thresholds and benefits (min stake, rate-limit multiplier, fee discount).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Reputation] Live tier thresholds and benefits (min stake, rate-limit multiplier, fee discount). Read at call time — thresholds are admin-configurable.
  • reputation_transparency[Wicked Reputation] Live transparency numbers: treasury address, custody model, unbonding cooldown, total stake, agents, slash events, founding-slot counts.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Reputation] Live transparency numbers: treasury address, custody model, unbonding cooldown, total stake, agents, slash events, founding-slot counts.
  • sanity_check[Wicked Sanity] Verify one claim before acting on it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Sanity] Verify one claim before acting on it. Verdicts: supported | contradicted | unsupported | insufficient_evidence (see `data`). confidence_score is raw consistency (a "contradicted" verdict scores near 0). Policy: act on supported; treat unsupported/insufficient_evidence as unverified; reject contradicted. x402 or SANITY_API_KEY; 429 means a rate limit — see retry_after.
  • sanity_check_batch[Wicked Sanity] Verify up to 50 claims against one shared context in a single call — prefer this over one sanity_check per sentence.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    [Wicked Sanity] Verify up to 50 claims against one shared context in a single call — prefer this over one sanity_check per sentence. `data` is a list in the same order as `claims`.
  • wallet_check[Wallet Oracle] Pre-transaction counterparty check for an EVM wallet or contract: OFAC SDN screening, GoPlus malicious-address flags (phishing, drainers, laundering, mixers ...), a…1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Warn

      The description contains a 42-character base64 string.

      Matched text

      description: "...allet-check?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&chain=ethereum`"

      What this check looks for
    Description, as the server wrote it
    [Wallet Oracle] Pre-transaction counterparty check for an EVM wallet or contract: OFAC SDN screening, GoPlus malicious-address flags (phishing, drainers, laundering, mixers ...), and a live on-chain profile (EOA / contract / EIP-7702, nonce, balance, ENS, first transaction, contract verification) — Pre-transaction counterparty check for an EVM wallet or contract: OFAC SDN screening, GoPlus malicious-address flags (phishing, drainers, laundering, mixers ...), and a live on-chain profile (EOA / contract / EIP-7702, nonce, balance, ENS, first transaction, contract verification). Returns risk_level, a plain recommendation (do_not_transact / review_before_transacting / no_red_flags_found), every reason with its source, and which sources were unavailable. **Example:** `/v1/wallet-check?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&chain=ethereum`
  • wallet_sanctions_check[Wallet Oracle] Is this address on the US Treasury OFAC SDN sanctions list?1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Warn

      The description contains a 42-character base64 string.

      Matched text

      description: "...tions-check?address=0x8589427373D6D84E98730D7795D8f6f8731FDA16`"

      What this check looks for
    Description, as the server wrote it
    [Wallet Oracle] Is this address on the US Treasury OFAC SDN sanctions list? Exact match against every digital-currency address OFAC publishes (EVM, Tron, Bitcoin and others), with the sanctioned entity, program, and the list's publish date — Free. Is this address on the US Treasury OFAC SDN sanctions list? Exact match against every digital-currency address OFAC publishes (EVM, Tron, Bitcoin and others), with the sanctioned entity, program, and the list's publish date. Chain-agnostic. **Example:** `/v1/sanctions-check?address=0x8589427373D6D84E98730D7795D8f6f8731FDA16`
Only reads 15Claude Code: allow
  • filings_latest_preview[Filings Oracle] The 10 most recent filings across all form types (form, company, ticker, filed_at only) — Free.No findings

    Why it is in this group

    • The name "filings_latest_preview" says "preview": a word for reading.
    Description, as the server wrote it
    [Filings Oracle] The 10 most recent filings across all form types (form, company, ticker, filed_at only) — Free. The 10 most recent filings across all form types (form, company, ticker, filed_at only). Full structured data, filtering and cursors need /v1/filings. **Example:** `/v1/latest-preview`
  • identity_get_challenge[Wicked Identity] Request a real time-boxed liveness challenge (constrained-generation task, 30s budget).No findings

    Why it is in this group

    • The name "identity_get_challenge" says "get": a word for reading.
    Description, as the server wrote it
    [Wicked Identity] Request a real time-boxed liveness challenge (constrained-generation task, 30s budget). The clock starts when this returns: answer in ONE pass via identity_submit_response before `expires_at`. Real wallet: needs a fresh signed nonce (fetch + sign the nonce for the NEXT call before calling this). Sandbox: just wallet + sandbox_token.
  • identity_get_nonce[Wicked Identity] Real-wallet path, step 1: a one-time nonce + message to sign.No findings

    Why it is in this group

    • The name "identity_get_nonce" says "get": a word for reading.
    Description, as the server wrote it
    [Wicked Identity] Real-wallet path, step 1: a one-time nonce + message to sign. Every signed identity call needs a fresh nonce (single-use, 5-minute TTL). Not needed for sandbox identities.
  • identity_get_test_key[Wicked Identity] Get a free self-serve test API key (7-day expiry, 20 requests/min) to use as api_key on identity_status instead of paying via x402.No findings

    Why it is in this group

    • The name "identity_get_test_key" says "get": a word for reading.
    Description, as the server wrote it
    [Wicked Identity] Get a free self-serve test API key (7-day expiry, 20 requests/min) to use as api_key on identity_status instead of paying via x402. Limit: 5 per IP per day.
  • identity_status[Wicked Identity] Does a wallet currently hold a valid, unexpired assertion?No findings

    Why it is in this group

    • The name "identity_status" says "status": a word for reading.
    Description, as the server wrote it
    [Wicked Identity] Does a wallet currently hold a valid, unexpired assertion? No signature needed. Pays via x402, or pass api_key (get one free from identity_get_test_key) / set IDENTITY_API_KEY. Sandbox wallets are never `verified`; they report sandbox: true and sandbox_verified instead.
  • memory_get[Wicked Memory] Fetch one of your memories by id (another wallet's or a deleted id returns the same 404).No findings

    Why it is in this group

    • The name "memory_get" says "get": a word for reading.
    Description, as the server wrote it
    [Wicked Memory] Fetch one of your memories by id (another wallet's or a deleted id returns the same 404).
  • paywall_get_tenant[x402 Paywall] Your tenant record (needs PAYWALL_API_KEY).No findings

    Why it is in this group

    • The name "paywall_get_tenant" says "get": a word for reading.
    Description, as the server wrote it
    [x402 Paywall] Your tenant record (needs PAYWALL_API_KEY).
  • paywall_list_routes[x402 Paywall] List your paywalled routes (needs PAYWALL_API_KEY).No findings

    Why it is in this group

    • The name "paywall_list_routes" says "list": a word for reading.
    Description, as the server wrote it
    [x402 Paywall] List your paywalled routes (needs PAYWALL_API_KEY).
  • paywall_list_settlements[x402 Paywall] Your real on-chain USDC settlements (earnings) (needs PAYWALL_API_KEY).No findings

    Why it is in this group

    • The name "paywall_list_settlements" says "list": a word for reading.
    Description, as the server wrote it
    [x402 Paywall] Your real on-chain USDC settlements (earnings) (needs PAYWALL_API_KEY).
  • registry_lookup[Wicked Registry] Free lookup: find a tool's id and headline reliability score by name or URL fragment (q), exact endpoint URL (endpoint) or category.No findings

    Why it is in this group

    • The name "registry_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    [Wicked Registry] Free lookup: find a tool's id and headline reliability score by name or URL fragment (q), exact endpoint URL (endpoint) or category. No key or payment. Use it to check a tool before your agent pays it; follow with registry_tool_badge or registry_tool_detail.
  • registry_search_tools[Wicked Registry] Search x402/MCP tools by real reliability data (uptime, latency, schema conformance).No findings

    Why it is in this group

    • The name "registry_search_tools" says "search": a word for reading.
    Description, as the server wrote it
    [Wicked Registry] Search x402/MCP tools by real reliability data (uptime, latency, schema conformance). Works via x402 (402 carries payment instructions) or a free API key (pass api_key, or set REGISTRY_API_KEY). No key yet? Call registry_onboarding_message then registry_create_api_key to get one yourself. For a quick free check of a known tool, use registry_lookup.
  • reputation_query[Wicked Reputation] Search/rank registered agents by tier, stake, reputation or slash history.No findings

    Why it is in this group

    • The name "reputation_query" says "query": a word for reading.
    Description, as the server wrote it
    [Wicked Reputation] Search/rank registered agents by tier, stake, reputation or slash history. Every filter is a typed query param.
  • reputation_status[Wicked Reputation] An agent's current reputation: tier, active/unbonding stake, score, slash count, founding-member badge.No findings

    Why it is in this group

    • The name "reputation_status" says "status": a word for reading.
    Description, as the server wrote it
    [Wicked Reputation] An agent's current reputation: tier, active/unbonding stake, score, slash count, founding-member badge. http_status 404 means the wallet never registered — treat as tier 'unranked'.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.5.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http wicked https://mcp.wickedapi.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__wicked__filings_latest_preview",
      "mcp__wicked__filings_search",
      "mcp__wicked__reputation_status",
      "mcp__wicked__reputation_query",
      "mcp__wicked__registry_search_tools",
      "mcp__wicked__registry_lookup",
      "mcp__wicked__identity_get_test_key",
      "mcp__wicked__identity_get_nonce",
      "mcp__wicked__identity_get_challenge",
      "mcp__wicked__identity_status",
      "mcp__wicked__memory_search",
      "mcp__wicked__memory_get",
      "mcp__wicked__paywall_get_tenant",
      "mcp__wicked__paywall_list_routes",
      "mcp__wicked__paywall_list_settlements"
    ],
    "ask": [
      "mcp__wicked__filings_freshness",
      "mcp__wicked__filings_8k_events",
      "mcp__wicked__filings_insider_trades",
      "mcp__wicked__filings_insider_summary",
      "mcp__wicked__filings_filing",
      "mcp__wicked__wallet_sanctions_check",
      "mcp__wicked__wallet_check",
      "mcp__wicked__reputation_statement",
      "mcp__wicked__reputation_tiers",
      "mcp__wicked__reputation_transparency",
      "mcp__wicked__registry_tool_detail",
      "mcp__wicked__registry_onboarding_message",
      "mcp__wicked__registry_create_api_key",
      "mcp__wicked__registry_featured_tools",
      "mcp__wicked__registry_tool_badge",
      "mcp__wicked__registry_report_tool",
      "mcp__wicked__registry_register_tool",
      "mcp__wicked__identity_sandbox_register",
      "mcp__wicked__identity_register",
      "mcp__wicked__identity_submit_response",
      "mcp__wicked__identity_jwks",
      "mcp__wicked__sanity_check",
      "mcp__wicked__sanity_check_batch",
      "mcp__wicked__memory_prepare",
      "mcp__wicked__memory_store",
      "mcp__wicked__memory_update",
      "mcp__wicked__memory_history",
      "mcp__wicked__memory_deletions",
      "mcp__wicked__paywall_signup",
      "mcp__wicked__paywall_create_route",
      "mcp__wicked__paywall_import_routes",
      "mcp__wicked__paywall_update_route"
    ],
    "deny": [
      "mcp__wicked__memory_delete",
      "mcp__wicked__paywall_delete_route"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as wicked. Review it before you use it.