# MolTrust MCP Server

> Verifiable agent identity and trust checks; MolCheck verdicts on mandates; Amazon Ads verdicts.

- name: io.github.MoltyCel/moltrust-mcp-server
- version: 1.2.6
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 67/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.MoltyCel%2Fmoltrust-mcp-server
- tools: https://api.protogrid.dev/v1/servers/io.github.MoltyCel%2Fmoltrust-mcp-server/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "moltrust-mcp-server": {
      "type": "http",
      "url": "https://api.moltrust.ch/mcp",
      "headers": {
        "X-API-Key": "${api_key}"
      }
    }
  }
}
```

Placeholders to fill: `${api_key}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-0d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 67/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 57 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: moltrust_rate (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); mt_fantasy_verify (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); mt_get_swarm_graph (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- warn `tools.token_cost`: about 10,081 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 17 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 64, about 10,081 tokens to load them all
- tool set hash: f2a040d888f9173dc94d3b00b0651f55
- tools last changed: 2026-10-20T19:48:40.896Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.MoltyCel/moltrust-mcp-server.svg)](https://protogrid.dev/servers/io.github.MoltyCel/moltrust-mcp-server)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `canary_issue` changed (description)
  - before: Issue a leak canary for one counterparty: a credential to hand to that counterparty. If anyone else presents it at the MolTrust verifier, you get a signed leak event that names the counterparty. Costs what a credential costs. Needs your MolTrust API key as the X-API-Key header of the MCP connection. Args: counterparty_did: DID of the agent you hand the credential to mode: "bound" (issued to the counterparty's DID) or "decoy" (issued to a DID nobody holds; any presentation but yours is a leak) on_leak: "hold" puts the counterparty on hold in your mandates (POST /canary/enforce-hook), "none" only records the event credential_type: the credential type, as in POST /credentials/issue
  - after: Issue a leak canary for one counterparty: a credential to hand to that counterparty. If anyone else presents it at the MolTrust verifier, you get a signed leak event that names the counterparty. Costs what a credential costs. Needs your MolTrust API key as the X-API-Key header of the MCP connection. Args: counterparty_did: DID of the agent you hand the credential to; it must be a registered, unrevoked MolTrust agent mode: "bound" (the counterparty may present it) or "decoy" (any presentation but yours is a leak, the counterparty's included); both are issued to the counterparty's DID on_leak: "hold" puts the counterparty on hold in your mandates (POST /canary/enforce-hook), "none" only records the event credential_type: the credential type, as in POST /credentials/issue
- 2026-10-20 `canary_events` added
  - Your leak events, newest first, each signed by MolTrust and carrying AER material that `moltrust-verify` recomputes offline (trust list: GET /canary/trust-list). Optionally for one canary. Needs your MolTrust API key as X-API-Key on the MCP connection. Args: canary_id: only events of this canary (from canary_issue or canary_list) limit: page size, at most 200 offset: where the page starts
- 2026-10-20 `canary_list` added
  - Your leak canaries, newest first: counterparty, mode, reaction on leak and the number of events so far. Paginated with limit/offset; `next_offset` is null on the last page. Needs your MolTrust API key as X-API-Key on the MCP connection.
- 2026-10-20 `canary_issue` added
  - Issue a leak canary for one counterparty: a credential to hand to that counterparty. If anyone else presents it at the MolTrust verifier, you get a signed leak event that names the counterparty. Costs what a credential costs. Needs your MolTrust API key as the X-API-Key header of the MCP connection. Args: counterparty_did: DID of the agent you hand the credential to mode: "bound" (issued to the counterparty's DID) or "decoy" (issued to a DID nobody holds; any presentation but yours is a leak) on_leak: "hold" puts the counterparty on hold in your mandates (POST /canary/enforce-hook), "none" only records the event credential_type: the credential type, as in POST /credentials/issue
- 2026-10-20 `moltproof_verify` changed (description, inputSchema, outputSchema)
  - before: Recompute a verdict from public inputs and check its signature. Offline and read-only: no DID/mandate/context is fetched here. Args: agent: public agent identifier mandate: the public AAE Verifiable Credential actions: public, already-decoded on-chain actions signature: optional prior MoltProof signature to check
  - after: Deprecated alias of molcheck_verify; use that name. Recompute a verdict from public inputs and check its signature. Offline and read-only: no DID/mandate/context is fetched here. Args: agent: public agent identifier mandate: the public AAE Verifiable Credential actions: public, already-decoded on-chain actions signature: optional prior MolCheck signature to check
- 2026-10-20 `molcheck_verify` added
  - Recompute a verdict from public inputs and check its signature. Offline and read-only: no DID/mandate/context is fetched here. Args: agent: public agent identifier mandate: the public AAE Verifiable Credential actions: public, already-decoded on-chain actions signature: optional prior MolCheck signature to check
- 2026-10-20 `moltproof_registry` changed (description, inputSchema, outputSchema)
  - before: Agents with committed mandates and their current verdict. Read-only. Ranks NO_MANDATE / NEEDS_REVIEW lower.
  - after: Deprecated alias of molcheck_registry; use that name. Agents with committed mandates and their current verdict. Read-only. Ranks NO_MANDATE / NEEDS_REVIEW lower.
- 2026-10-20 `molcheck_registry` added
  - Agents with committed mandates and their current verdict. Read-only. Ranks NO_MANDATE / NEEDS_REVIEW lower.
- 2026-10-20 `moltproof_evidence` changed (description, inputSchema, outputSchema)
  - before: Verdict plus the decoded transactions that breached the mandate. Read-only. Args: agent: public agent identifier (address / DID / ERC-8004 ref)
  - after: Deprecated alias of molcheck_evidence; use that name. Verdict plus the decoded transactions that breached the mandate. Read-only. Args: agent: public agent identifier (address / DID / ERC-8004 ref)
- 2026-10-20 `molcheck_evidence` added
  - Verdict plus the decoded transactions that breached the mandate. Read-only. Args: agent: public agent identifier (address / DID / ERC-8004 ref)

Full history: https://api.protogrid.dev/v1/servers/io.github.MoltyCel%2Fmoltrust-mcp-server/changes

## Remotes

- https://api.moltrust.ch/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (64)

- `ads_check`: Allow / hold / forbid for one intended Amazon Ads MCP tool call, before it runs.

        Needs your MolTrust API key as the X-API-Key header of the MCP connection (free key:
        POST https://api.moltrust.ch/auth/signup). Counts against your plan like any check.
        Never send Amazon credentials: they are refused.

        Args:
            profile: the `profile` object from ads_mandate_template
            tool: the Amazon Ads MCP tool name, e.g. campaign_management-update_campaign_budget
            arguments: the tool arguments exactly as your agent would send them
            context: your view of the account — campaigns {id: {brand, daily_budget(cents)}},
                     targets {id: {brand, bid(cents)}}, ad_groups, account_daily_total(cents).
                     Values the check cannot derive count as unknown and end in forbid.
        
- `ads_mandate_template`: Build an ads profile and its AAE mandate for one or more Amazon Ads accounts.

        Pure: nothing is stored. Returns `profile` (pass it to ads_check) and `mandate`
        (what /enforce/check evaluates).

        Args:
            account_ids: advertiserAccountId / profileId values the agent may act on
            brands: brands the agent may touch
            daily_budget_cap_usd: largest daily campaign budget; above it: forbid
            hold_threshold_usd: above it a person named in `approvers` must approve
            total_daily_budget_cap_usd: sum of daily budgets on the account after a change
            period_budget_cap_usd: largest lifetime or monthly budget
            max_bid_usd: largest bid
            max_bid_change_percent: largest bid change per step, in percent
            valid_from: RFC 3339 UTC second
            valid_until: RFC 3339 UTC second; after it every call is forbidden
            tools: allowed tool names (default: all documented in ads_onboard)
            mandate_id: your identifier for this mandate
            principal_did: the agency's DID
            principal_public_key: the agency's Ed25519 public key, hex
            approvers: [{"did", "public_key", "role"}] who may approve a hold
        
- `ads_onboard`: How an agent starts with MolTrust Ads: verdicts (allow / hold / forbid) on Amazon
        Ads MCP tool calls before they run. Plans, key sign-up, SDK, endpoints. No input,
        no account needed.
        
- `canary_events`: Your leak events, newest first, each signed by MolTrust and carrying AER material
        that `moltrust-verify` recomputes offline (trust list: GET /canary/trust-list).
        Optionally for one canary. Needs your MolTrust API key as X-API-Key on the MCP
        connection.

        Args:
            canary_id: only events of this canary (from canary_issue or canary_list)
            limit: page size, at most 200
            offset: where the page starts
        
- `canary_issue`: Issue a leak canary for one counterparty: a credential to hand to that counterparty.
        If anyone else presents it at the MolTrust verifier, you get a signed leak event that
        names the counterparty. Costs what a credential costs. Needs your MolTrust API key as
        the X-API-Key header of the MCP connection.

        Args:
            counterparty_did: DID of the agent you hand the credential to; it must be a
                  registered, unrevoked MolTrust agent
            mode: "bound" (the counterparty may present it) or "decoy" (any presentation
                  but yours is a leak, the counterparty's included); both are issued to
                  the counterparty's DID
            on_leak: "hold" puts the counterparty on hold in your mandates
                     (POST /canary/enforce-hook), "none" only records the event
            credential_type: the credential type, as in POST /credentials/issue
        
- `canary_list`: Your leak canaries, newest first: counterparty, mode, reaction on leak and the number
        of events so far. Paginated with limit/offset; `next_offset` is null on the last page.
        Needs your MolTrust API key as X-API-Key on the MCP connection.
        
- `molcheck_evidence`: Verdict plus the decoded transactions that breached the mandate.

        Read-only.

        Args:
            agent: public agent identifier (address / DID / ERC-8004 ref)
        
- `molcheck_mandate`: The committed AAE mandate for an agent (venues, position cap, validity).

        Read-only.

        Args:
            agent: public agent identifier (address / DID / ERC-8004 ref)
        
- `molcheck_registry`: Agents with committed mandates and their current verdict.

        Read-only. Ranks NO_MANDATE / NEEDS_REVIEW lower.
        
- `molcheck_verdict`: Verdict + per-check breakdown for an agent against its committed mandate.

        Read-only. Recomputable from public chain data + the public mandate.

        Args:
            agent: agent address, did:moltrust / did:web, or ERC-8004 reference (public)
        
- `molcheck_verify`: Recompute a verdict from public inputs and check its signature.

        Offline and read-only: no DID/mandate/context is fetched here.

        Args:
            agent: public agent identifier
            mandate: the public AAE Verifiable Credential
            actions: public, already-decoded on-chain actions
            signature: optional prior MolCheck signature to check
        
- `moltguard_credential_issue`: Issue a W3C Verifiable Credential (AgentTrustCredential) for a wallet.

    The credential contains the agent's trust score, Sybil score,
    ERC-8004 registration status, and MolTrust verification status.
    It is cryptographically signed with Ed25519 (JWS).

    Args:
        address: Base (EVM) wallet address (0x...)
    
- `moltguard_credential_verify`: Verify a MoltGuard Verifiable Credential JWS signature.

    Checks the Ed25519 signature and returns the credential payload if valid.

    Args:
        jws: JWS compact serialization string from a MoltGuard credential
    
- `moltguard_detail`: Get a detailed agent trust report for a Base wallet address.

    Returns full scoring breakdown, wallet history from Blockscout,
    ERC-8004 registration, MolTrust DID cross-reference, and Sybil indicators.

    Args:
        address: Base (EVM) wallet address (0x...)
    
- `moltguard_feed`: Get the top anomaly feed — markets with highest integrity concerns.

    Scans the top 20 active Polymarket markets by 24h volume and returns
    those with anomaly indicators, sorted by anomaly score.
    
- `moltguard_market`: Check a Polymarket prediction market for integrity anomalies.

    Analyzes volume spikes, price-volume divergence, liquidity ratios,
    and outcome price spreads to detect potential manipulation.

    Args:
        market_id: Polymarket market/condition ID
    
- `moltguard_score`: Get an agent trust score for a Base wallet address.

    Analyzes on-chain activity, ERC-8004 registration, USDC balance,
    counterparty diversity, and MolTrust credentials to produce a 0-100 score.

    Args:
        address: Base (EVM) wallet address (0x...)
    
- `moltguard_sybil`: Scan a Base wallet for Sybil indicators.

    Analyzes wallet age, transaction patterns, counterparty diversity,
    and funding source to detect potential Sybil wallets.
    Also traces funding clusters — if the funder sent ETH to many wallets,
    it indicates a Sybil ring.

    Args:
        address: Base (EVM) wallet address (0x...)
    
- `moltproof_evidence`: Deprecated alias of molcheck_evidence; use that name. Verdict plus the decoded transactions that breached the mandate.

        Read-only.

        Args:
            agent: public agent identifier (address / DID / ERC-8004 ref)
        
- `moltproof_mandate`: Deprecated alias of molcheck_mandate; use that name. The committed AAE mandate for an agent (venues, position cap, validity).

        Read-only.

        Args:
            agent: public agent identifier (address / DID / ERC-8004 ref)
        
- `moltproof_registry`: Deprecated alias of molcheck_registry; use that name. Agents with committed mandates and their current verdict.

        Read-only. Ranks NO_MANDATE / NEEDS_REVIEW lower.
        
- `moltproof_verdict`: Deprecated alias of molcheck_verdict; use that name. Verdict + per-check breakdown for an agent against its committed mandate.

        Read-only. Recomputable from public chain data + the public mandate.

        Args:
            agent: agent address, did:moltrust / did:web, or ERC-8004 reference (public)
        
- `moltproof_verify`: Deprecated alias of molcheck_verify; use that name. Recompute a verdict from public inputs and check its signature.

        Offline and read-only: no DID/mandate/context is fetched here.

        Args:
            agent: public agent identifier
            mandate: the public AAE Verifiable Credential
            actions: public, already-decoded on-chain actions
            signature: optional prior MolCheck signature to check
        
- `moltrust_claim_deposit`: Claim MolTrust credits from a USDC deposit on Base.

    After sending USDC to the MolTrust wallet on Base (L2),
    submit the transaction hash to receive credits.
    1 USDC = 100 credits, verified on-chain.

    Args:
        tx_hash: Base blockchain transaction hash (0x...)
        did: Your agent's DID to credit
    
- `moltrust_credential`: Issue or verify a W3C Verifiable Credential.

    Args:
        action: Either "issue" or "verify"
        subject_did: DID of the credential subject (required for "issue")
        credential_type: Type of credential (default: "AgentTrustCredential", only for "issue")
        credential: JSON string of the credential to verify (required for "verify")
    
- `moltrust_credits`: Manage MolTrust credits: check balance, view pricing, transfer credits, or view transaction history.

    Args:
        action: One of "balance", "pricing", "transfer", or "transactions"
        did: Agent DID (required for "balance" and "transactions")
        to_did: Recipient DID (required for "transfer")
        amount: Number of credits to transfer (required for "transfer", must be >= 1)
        reference: Optional reference string for transfers
        limit: Max transactions to return (default 20, for "transactions")
        offset: Pagination offset (default 0, for "transactions")
    
- `moltrust_deposit_history`: Get USDC deposit history for an agent.

    Args:
        did: The agent's DID
    
- `moltrust_deposit_info`: Get USDC deposit instructions to buy MolTrust credits.

    Returns the MolTrust wallet address on Base (Ethereum L2),
    USDC token contract, conversion rate (1 USDC = 100 credits),
    and step-by-step instructions.
    
- `moltrust_erc8004`: Query the ERC-8004 on-chain agent registry on Base.

    Resolve MolTrust agents to their on-chain ERC-8004 identity, fetch Agent Cards,
    or look up on-chain agents by their agentId.

    Args:
        action: One of "card", "resolve", or "well-known"
        did: Agent DID (required for "card", e.g. "did:moltrust:a1b2c3d4e5f60718")
        agent_id: On-chain ERC-8004 agent ID (required for "resolve", e.g. 21023)
    
- `moltrust_rate`: Rate another AI agent (1-5 stars).

    Submit a trust rating from one agent to another.

    Args:
        from_did: Your agent's DID (the rater)
        to_did: Target agent's DID (the agent being rated)
        score: Rating from 1 (untrusted) to 5 (highly trusted)
    
- `moltrust_register`: Register a new AI agent on MolTrust.

    Creates a decentralised identity (DID), issues a W3C Verifiable Credential,
    and anchors the agent on the Base blockchain.

    Args:
        display_name: Agent name (1-64 chars, alphanumeric/dash/underscore/dot/space)
        platform: Platform identifier (e.g. "openai", "langchain", "custom")
    
- `moltrust_reputation`: Get the reputation score for an AI agent.

    Returns the aggregate trust score (1-5) and total number of ratings.

    Args:
        did: Decentralised identifier (e.g. "did:moltrust:a1b2c3d4e5f60718")
    
- `moltrust_stats`: Get MolTrust network statistics.

    Returns total registered agents, credentials issued,
    ratings given, and other network health metrics.
    
- `moltrust_verify`: Verify an AI agent by its DID.

    Checks whether the DID is registered and returns verification status
    along with the agent's trust card (reputation, credentials, blockchain anchor).

    Args:
        did: Decentralised identifier (e.g. "did:moltrust:a1b2c3d4e5f60718")
    
- `mt_check_badge`: Quick check: is this agent badge-verified by MolTrust?

    Returns a simple yes/no with tier and expiry info.

    Args:
        did: The DID of the agent to check
    
- `mt_create_interaction_proof`: Create an interaction proof before issuing a SkillEndorsementCredential.

    Returns evidence_hash and base_tx_hash anchored on Base L2.
    Required before calling mt_endorse_agent. Valid for 72 hours.

    Args:
        api_key: MolTrust API key of the agent creating the proof
        agent_a: DID of the first agent in the interaction
        agent_b: DID of the second agent in the interaction
        interaction_type: Type of interaction (e.g. skill_verification, purchase, prediction)
        outcome: Outcome of the interaction: success or failure
    
- `mt_endorse_agent`: Issue a W3C SkillEndorsementCredential for another agent.

    Requires a valid evidence_hash from mt_create_interaction_proof
    (max 72h old). Self-endorsement is rejected.
    Contributes to the endorsed agent's Trust Score.

    Args:
        endorser_api_key: MolTrust API key of the endorsing agent
        endorsed_did: DID of the agent to endorse
        skill: Skill being endorsed (python, javascript, security, prediction, trading, data_analysis, api_integration, smart_contracts, nlp, computer_vision, general)
        evidence_hash: SHA-256 hash from mt_create_interaction_proof (sha256:...)
        evidence_timestamp: ISO 8601 timestamp from mt_create_interaction_proof
        vertical: MolTrust vertical (skill, shopping, travel, prediction, salesguard, sports, core)
    
- `mt_fantasy_commit`: Commit a fantasy lineup with a SHA-256 hash anchored on Base L2.

    Creates a FantasyLineupCredential (W3C VC) proving the lineup was
    locked before contest start. The commitment hash is tamper-proof.

    Args:
        agent_did: Agent DID (e.g. "did:moltrust:a1b2c3d4e5f67890")
        contest_id: Unique contest identifier (e.g. "dk-nfl-sun-main-2026w12")
        platform: Platform name: draftkings, fanduel, yahoo, sleeper, custom
        sport: Sport type: nfl, nba, mlb, nhl, pga, nascar, soccer, custom
        contest_start_iso: Contest start time in ISO 8601 (must be in the future)
        lineup_json: JSON string of lineup object (e.g. '{"QB":"Mahomes","RB1":"Henry"}')
        projected_score: Agent's projected score for this lineup
        confidence: Confidence level 0.0 to 1.0
        entry_fee_usd: Contest entry fee in USD
        contest_type: Contest type (e.g. "classic", "showdown")
    
- `mt_fantasy_history`: Get fantasy lineup history and stats for an agent.

    Returns ITM rate, ROI, projection accuracy, and recent lineups
    for the specified agent DID.

    Args:
        did: Agent DID (e.g. "did:moltrust:a1b2c3d4e5f67890")
    
- `mt_fantasy_verify`: Verify a fantasy lineup commitment. Public endpoint, no auth required.

    Returns the full lineup, timing proof (minutes before contest),
    on-chain verification status, and the FantasyLineupCredential.

    Args:
        commitment_hash: The 64-char SHA-256 commitment hash
    
- `mt_get_badge`: Get the Verified by MolTrust badge status for an agent.

    Returns badge tier, trust score, grade, issue/expiry dates,
    and embeddable SVG URL.

    Args:
        did: The DID of the agent to check
    
- `mt_get_swarm_graph`: Get the trust propagation graph for an agent (2 hops).

    Returns nodes (agents with scores) and edges (endorsements) showing
    who endorses this agent and who endorses them.

    Args:
        did: DID of the agent to get graph for
    
- `mt_get_swarm_stats`: Get global Swarm Intelligence statistics.

    Returns total agents, endorsements, seed agents, average trust score,
    propagation depth, and top trusted agents.
    
- `mt_get_track_provenance`: Get full provenance details for a music credential.

    Returns the complete VerifiedMusicCredential including track
    metadata, provenance hash, EU AI Act compliance status,
    and on-chain anchor information.

    Args:
        credential_id: UUID of the music credential
    
- `mt_get_trust_score`: Get the Swarm Intelligence Trust Score for an agent (Phase 2).

    Score combines direct endorsements, propagated trust from endorsers,
    cross-vertical credential bonus, and interaction proof activity.
    Returns null/withheld if fewer than 3 independent endorsers (non-seed).
    Seed agents get their base score directly.

    Args:
        did: DID of the agent to score (e.g. "did:moltrust:a1b2c3d4e5f67890")
    
- `mt_issue_badge`: Issue a Verified by MolTrust badge for an agent.

    Tiers: 'verified' (score 40+, $5), 'trusted' (score 60+, $20).
    Badge is valid for 1 year and auto-revokes if trust score drops.

    Args:
        did: The DID of the agent to issue a badge for
        tier: Badge tier — 'verified' or 'trusted'
    
- `mt_issue_music_credential`: Issue a VerifiedMusicCredential for an AI-generated music track.

    Creates a W3C Verifiable Credential proving the provenance of an
    AI-generated music track — which tool created it, whether a human
    was involved, and what rights apply. Anchored on Base L2.
    EU AI Act Article 50(2) compliant.

    Args:
        agent_did: DID of the agent/creator (e.g. "did:moltrust:abc123")
        tool: AI tool used (e.g. "Suno API v3.2", "Udio", "Magenta")
        human_oversight: "true", "false", or "partial"
        rights: Rights declaration (e.g. "CC-BY", "All Rights Reserved", "Agent-Wallet")
        track_title: Title of the track
        track_description: Optional description
        genre: Optional genre (e.g. "ambient", "jazz", "classical")
        isrc: Optional ISRC code (ISO 3901)
    
- `mt_prediction_leaderboard`: Get the prediction market leaderboard — top wallets by prediction score.

    Returns wallets ranked by their composite prediction score,
    which factors in win rate, ROI, volume, sample size, and recency.

    Args:
        limit: Number of entries to return (default 20, max 100)
    
- `mt_prediction_link`: Link a prediction market wallet and sync its track record.

    Fetches trade history from Polymarket, calculates a prediction score (0-100),
    and stores the wallet profile. Optionally links it to a MolTrust DID.

    Args:
        address: Prediction market wallet address (0x-prefixed, 42 chars)
        platform: Platform name (default: "polymarket")
        did: Optional MolTrust DID to link (e.g. "did:moltrust:a1b2c3d4e5f60718")
    
- `mt_prediction_wallet`: Get prediction market profile and track record for a wallet.

    Returns the prediction score (0-100), win/loss record, volume, ROI,
    score breakdown, and recent market events.

    Args:
        address: Prediction market wallet address (0x-prefixed, 42 chars)
    
- `mt_register_seed`: Register a trusted seed agent in the Swarm Intelligence network (admin only).

    Seed agents bootstrap the trust network with a base score.
    Requires the ADMIN_KEY for authorization.

    Args:
        did: DID of the agent to register as seed
        label: Human-readable label for the seed agent
        base_score: Base trust score (0-100, default 80)
        admin_key: Admin key for authorization
    
- `mt_salesguard_register`: Register a brand with MT Salesguard.

    Creates a new brand identity with a DID and API key.
    The API key is used to authenticate product registration
    and reseller authorization requests.

    Args:
        name: Brand name (e.g. "Nike", "Adidas")
        domain: Brand domain (e.g. "nike.com")
        contact_email: Contact email for the brand (optional)
    
- `mt_salesguard_reseller`: Verify reseller authorization via MT Salesguard.

    Checks whether a reseller DID has been authorized by a brand
    to sell specific products. Returns authorization status, brand info,
    authorized SKUs, and expiry.

    Args:
        reseller_did: Reseller DID (e.g. "did:web:sneakerstore.com")
    
- `mt_salesguard_verify`: Verify product provenance via MT Salesguard.

    Checks whether a product ID has a valid ProductProvenanceCredential
    issued by an authorized brand. Returns brand info, credential hash,
    Base anchor, and risk level.

    Args:
        product_id: Product identifier (e.g. "AIRMAX-90-WHITE-43")
    
- `mt_shopping_info`: Get MT Shopping API information.

    Returns the MT Shopping service info including version, supported
    endpoints, BuyerAgentCredential schema, and verification details.
    
- `mt_shopping_issue_vc`: Issue a BuyerAgentCredential (W3C Verifiable Credential) for a shopping agent.

    Creates a cryptographically signed credential that authorizes an AI agent
    to make purchases on behalf of a human, with enforced spend limits.

    Args:
        agent_did: DID of the shopping agent (e.g. "did:moltrust:agent123")
        human_did: DID of the authorizing human (e.g. "did:moltrust:human456")
        spend_limit: Maximum spend amount per transaction
        currency: Currency code (e.g. "USDC", "USD")
        categories: Comma-separated allowed categories (e.g. "electronics,books")
        validity_days: Number of days the credential is valid (default 30)
    
- `mt_shopping_verify`: Verify a shopping transaction against a BuyerAgentCredential.

    Checks the credential signature, spend limits, trust score, and
    returns a verification receipt with approval status.

    Args:
        credential_jws: JWS compact serialization of the BuyerAgentCredential
        transaction_amount: Transaction amount (e.g. 189.99)
        transaction_currency: Currency code (e.g. "USDC")
        merchant_id: Merchant identifier string
        item_description: Description of the item being purchased
    
- `mt_skill_audit`: Audit an AI agent skill (SKILL.md) for security risks.

    Fetches the SKILL.md from a URL, computes its canonical SHA-256 hash,
    and runs an 8-point security audit checking for prompt injection,
    data exfiltration, tool scope violations, and metadata completeness.
    Score starts at 100 with deductions per finding. Passing score: >= 70.

    Args:
        github_url: URL to the skill (GitHub repo or direct HTTPS link to SKILL.md)
    
- `mt_skill_issue_vc`: Issue a VerifiedSkillCredential for an AI agent skill.

    Fetches SKILL.md, runs security audit, and if score >= 70, issues a
    W3C Verifiable Credential signed with Ed25519 (JWS compact serialization).
    Requires x402 payment ($5 USDC) when paywall is active.

    Args:
        author_did: DID of the skill author (e.g. "did:base:0x...")
        repository_url: URL to the skill repository or SKILL.md
    
- `mt_skill_verify`: Verify an AI agent skill by its canonical SHA-256 hash.

    Checks if a VerifiedSkillCredential has been issued for this skill hash.
    Returns credential details if verified.

    Args:
        skill_hash: Canonical skill hash (e.g. "sha256:a1b2c3...")
    
- `mt_travel_info`: Get MT Travel service information and available endpoints.

    Returns service description, supported segments, and API endpoints
    for the MT Travel booking trust protocol.
    
- `mt_travel_issue_vc`: Issue a TravelAgentCredential (W3C Verifiable Credential) for a booking agent.

    Creates a cryptographically signed credential that authorizes an AI agent
    to book travel on behalf of a principal (company/human), with enforced
    segment permissions and spend limits.

    Args:
        agent_did: DID of the travel agent (e.g. "did:base:0x...")
        principal_did: DID of the authorizing entity (e.g. "did:base:acme-corp")
        segments: Comma-separated allowed segments (e.g. "hotel,flight,car_rental")
        spend_limit: Maximum spend amount per booking
        currency: Currency code (e.g. "USDC")
        traveler_name: Name of the authorized traveler (optional)
        validity_days: Number of days the credential is valid (default 30)
    
- `mt_travel_verify`: Verify a travel booking against a TravelAgentCredential.

    Runs a 10-step verification pipeline: VC signature, expiry, agent DID match,
    segment authorization, spend limit, currency, daily cap, trust score,
    delegation chain, and traveler binding.

    Args:
        agent_did: DID of the booking agent (e.g. "did:base:0x...")
        vc_json: The TravelAgentCredential as a JSON string
        merchant: Merchant domain (e.g. "hilton.com")
        segment: Booking segment: hotel, flight, car_rental, or rail
        amount: Booking amount
        currency: Currency code (e.g. "USDC")
    
- `mt_verify_music_credential`: Verify a VerifiedMusicCredential by its ID.

    Checks whether a music credential is valid (not revoked),
    returns provenance summary including tool, human oversight,
    rights, and on-chain anchor status.

    Args:
        credential_id: UUID of the music credential
    
