{"name":"io.github.FoundryNet/mint-mcp","slug":"foundrynet-mint-mcp","title":"MINT Protocol — Universal Work Attestation","description":"Trust stack for AI agents: identity, attest, verify, rate, recommend, discover — on Solana.","url":"https://mcp.market/server/foundrynet-mint-mcp","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":2,"forks":0,"downloads_week":null,"last_push_at":"2026-09-27T09:15:50.000Z","license":"NOASSERTION"},"uptime":{"percent":82,"checks":28,"ok":23,"last_checked_at":"2026-11-04T06:20:45.916Z","last_ok_at":"2026-11-04T06:20:45.916Z","latency_ms":245},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/foundrynet/mint-mcp","website":"https://mint.foundrynet.io","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://mint-mcp-production.up.railway.app/mcp"}],"packages":[],"tools":[{"name":"mint_attest","description":"Attest a completed unit of work for a registered actor, anchoring a\ntamper-evident record on Solana mainnet and updating the actor's trust.\n\nPRICING: FREE. Attesting costs nothing — it's the distribution channel, so\njust call it (no payment_tx needed). The paid product is READING the record\nlater: mint_verify / mint_trust_score / mint_trust_history / mint_trust_compare.\n(`payment_tx` is a legacy no-op here unless the deprecated x402 attest gate is\nexplicitly re-armed.)\n\nOn success you get attestation_id, data_hash, and attestation_hash, with\nanchored=false + an anchor_eta: the attestation is recorded and paid\nimmediately, then anchored on-chain in the next merkle batch — a SINGLE\nSolana tx anchors the whole batch, so on-chain cost per attestation is ~0.\nTo get the on-chain proof, call mint_verify with the returned\nattestation_hash once it's anchored (it returns merkle_root + merkle_proof +\nanchor_tx, independently verifiable). Surface the attestation_hash so the\nwork can be verified later.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint_id":{"type":"string","description":"the actor's MINT id from mint_register (\"MINT-xxxxxx\")."},"work_type":{"type":"string","description":"code_review|normalization|research|generation|analysis|\ndelivery|manufacturing|custom."},"duration_seconds":{"type":"integer","description":"wall-clock seconds the work took (> 0)."},"summary":{"type":"string","description":"short human description of what was done and the result."},"input_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional sha256 of the work's input."},"output_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional sha256 of the work's output."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"description":"optional free-form JSON folded into the hashed payload."},"payment_tx":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Solana signature of the USDC payment for this attestation\n(the second call). Omit it on the first call to receive the 402\npayment instructions."}},"required":["mint_id","work_type","duration_seconds","summary"],"additionalProperties":false}},{"name":"mint_batch_attest","description":"Attest a batch of completed work items at once. FREE, unlimited.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"attestations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","description":"list of attestation objects (1-100 per call)."}},"required":["attestations"],"additionalProperties":false}},{"name":"mint_create_cell","description":"Create a stake-backed **work cell** on the FoundryNet devnet program.\n\nA work cell coordinates several autonomous agents on one job: each joins\nby staking, submits an attested output before the deadline, and the\n`reward_pool` is distributed **96% to participants (weighted by their\nevaluation score) / 2% protocol / 2% creator** on settlement. The caller\n(the configured signer) is the creator and funds `reward_pool` up front.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"cell_id":{"type":"string","description":"unique id, ≤ 32 bytes (also the PDA seed), e.g. \"vision-batch-7\"."},"work_type":{"type":"string","description":"short label for the work, e.g. \"inference\" (≤ 32 bytes)."},"max_participants":{"type":"integer","description":"how many agents may join before it auto-activates."},"stake_required":{"type":"integer","description":"SPL base-unit stake each participant locks (must be > 0)."},"reward_pool":{"type":"integer","description":"total SPL base-unit reward the creator funds into escrow."},"deadline_secs":{"default":3600,"type":"integer","description":"seconds from now until the submission deadline (default 1h)."}},"required":["cell_id","work_type","max_participants","stake_required","reward_pool"],"additionalProperties":false}},{"name":"mint_create_policy","description":"Create a **parametric insurance policy** on the FoundryNet devnet program.\n\nThe configured signer is the insurer and funds `coverage_amount` into a\nprogram escrow. A payout to `beneficiary` fires only when an oracle\nattests the canonical `trigger_field` crossed `trigger_threshold` in\n`trigger_direction` and persisted for `trigger_duration_secs`; otherwise\nthe escrow returns to the insurer at expiry.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"policy_id":{"type":"string","description":"unique id, ≤ 32 bytes (PDA seed), e.g. \"spindle-cnc-12\"."},"trigger_field":{"type":"string","description":"canonical field name, e.g. \"spindle_load_pct\"."},"trigger_threshold":{"type":"integer","description":"scaled threshold, e.g. 9500 for 95.00%."},"coverage_amount":{"type":"integer","description":"SPL base-unit payout the insurer escrows."},"premium_amount":{"type":"integer","description":"SPL base-unit monthly premium the operator pays."},"policy_duration_secs":{"type":"integer","description":"policy length in seconds."},"beneficiary":{"type":"string","description":"base58 pubkey that receives the payout (the machine owner)."},"trigger_direction":{"default":0,"type":"integer","description":"0 = above the threshold, 1 = below (default 0)."},"trigger_duration_secs":{"default":60,"type":"integer","description":"how long the condition must persist (default 60)."},"machine":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional registered machine pubkey (defaults to the signer)."}},"required":["policy_id","trigger_field","trigger_threshold","coverage_amount","premium_amount","policy_duration_secs","beneficiary"],"additionalProperties":false}},{"name":"mint_discover","description":"Discover trusted actors on the MINT network. FREE — no auth, open to\nany agent. Returns trust-ranked actors with their trust score, ratings,\nrecommendations, capabilities, and MCP endpoint (so you can connect).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"capability":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"capability or keyword to match, e.g. \"telemetry normalization\"."},"actor_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional filter — \"ai_agent\", \"machine\", \"iot_device\", \"service\"."},"min_trust_score":{"default":0,"type":"number","description":"only return actors at or above this trust score (0–100)."},"min_recommendations":{"default":0,"type":"integer","description":"only return actors with at least this many endorsements."},"sort_by":{"default":"trust_score","type":"string","description":"\"trust_score\" (default), \"recommendations\", or \"recent\"."},"limit":{"default":10,"type":"integer","description":"max results, 1–50 (default 10)."}},"additionalProperties":false}},{"name":"mint_feed","description":"The newest attestations across the whole MINT network — originating\nagent, summary, trust score, ML confidence, anchor status, merkle root +\nSolscan link — plus showcase stats. FREE.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"default":50,"type":"integer","description":"how many recent attestations to return (1-200, default 50)."}},"additionalProperties":false}},{"name":"mint_join_cell","description":"Join an open **work cell** by locking its required stake.\n\nTransfers `stake_required` of the stake mint from the configured signer\ninto the cell's escrow and registers the signer as a participant (also\ncreating its on-chain `TrustScore` account on first join). When the last\nseat fills, the cell flips Open → Active and submissions can begin. Fails\nif the cell is full or already active.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cell_id":{"type":"string","description":"the id of the cell to join (the same id used at creation)."}},"required":["cell_id"],"additionalProperties":false}},{"name":"mint_rate","description":"Rate a completed unit of work (an attestation) 1–5 and update the\nrated actor's trust score. FREE.\n\nReturns rating_id, the data_hash (reproducible off-chain proof), and the\nrated actor's new trust_score_updated. You can't rate yourself, and each\nrater may rate a given attestation once.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"attestation_id":{"type":"string","description":"the attestation being rated (from mint_attest)."},"rated_mint_id":{"type":"string","description":"the actor that did the work (\"MINT-xxxxxx\")."},"score":{"type":"integer","description":"integer 1–5."},"rater_mint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional — which of YOUR owned actors is rating\n(required only if your key owns more than one)."},"accuracy":{"default":true,"type":"boolean","description":"whether the work was accurate (default true)."},"would_use_again":{"default":true,"type":"boolean","description":"whether you'd use this actor again (default true)."},"tags":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"default":null,"description":"optional descriptors, e.g. [\"fast\", \"thorough\"]."},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional free-text comment."}},"required":["attestation_id","rated_mint_id","score"],"additionalProperties":false}},{"name":"mint_recommend","description":"Recommend another actor you've worked with, in a named context, 1–5.\nUpdates the recommended actor's trust score. FREE.\n\nReturns recommendation_id, the data_hash, and the recommended actor's new\ntrust_score_updated. You can't recommend yourself; each\n(you, them, context) triple is unique.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recommended_mint_id":{"type":"string","description":"the actor you're endorsing (\"MINT-xxxxxx\")."},"context":{"type":"string","description":"what you're endorsing them for, e.g. \"cross-oem normalization\"."},"score":{"type":"integer","description":"integer 1–5."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional free-text, e.g. \"Best for Fanuc + Siemens mixed fleets\"."},"recommender_mint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional — which of YOUR owned actors is\nrecommending (required only if your key owns more than one)."},"attestation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional attestation that backs this recommendation."}},"required":["recommended_mint_id","context","score"],"additionalProperties":false}},{"name":"mint_register","description":"Register any autonomous actor — AI agent, physical machine, IoT\ndevice, or backend service — with a persistent cryptographic identity on\nthe MINT network. Returns a universal mint_id (\"MINT-xxxxxx\") backed by a\nSolana wallet that every later attestation and trust query anchors to.\n\nIdempotent: registering the same (actor_type, name, operator) again\nreturns the SAME mint_id. Always call this before mint_attest for a new\nactor. FREE — identity is never gated.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"actor_type":{"type":"string","description":"one of \"ai_agent\", \"machine\", \"iot_device\", \"service\"."},"name":{"type":"string","description":"human-readable actor name, e.g. \"ResearchBot-7\"."},"capabilities":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"default":null,"description":"optional capability tags, e.g. [\"web_research\"]. Used by\nmint_discover so other agents can find you."},"operator":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional owning company/operator name (scopes the identity)."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"description":"optional free-form JSON attached to the identity."},"mcp_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional — if you're an MCP server, declare your URL here\nso other agents can discover AND connect to you via mint_discover."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional human-readable description, indexed for discovery."}},"required":["actor_type","name"],"additionalProperties":false}},{"name":"mint_settle_cell","description":"Trigger **settlement** of a work cell.\n\nDistributes the reward pool **96% to participants weighted by their score\n/ 2% protocol / 2% creator**, returns every stake, and bumps each\nparticipant's on-chain trust score. The configured signer must be the\ncell's creator.\n\nIf `scores` is provided and the cell is still Active, an `evaluate_cell`\ntransaction is sent first to record the scores (Active → Evaluating),\nthen settlement runs. If the cell was already evaluated, omit `scores`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cell_id":{"type":"string","description":"the cell to settle."},"participants":{"items":{"type":"string"},"type":"array","description":"base58 pubkeys of every participant, in the order their\nscores apply (used to rebuild the participant/token/trust accounts)."},"scores":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"optional per-participant scores 0–1000, same order/length as\n`participants`. Omit if the cell is already in the Evaluating state."}},"required":["cell_id","participants"],"additionalProperties":false}},{"name":"mint_settle_policy","description":"Trigger **settlement** of a parametric insurance policy.\n\nIf the policy was marked triggered (an oracle submitted evidence and\ncalled evaluate), the full `coverage_amount` is paid to `beneficiary`. If\nthe policy expired without a trigger, the escrow returns to the insurer\n(the configured signer). Emits an on-chain settlement event so the payout\ncan be attested through MINT.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"policy_id":{"type":"string","description":"the policy to settle."},"beneficiary":{"type":"string","description":"base58 pubkey of the payout beneficiary (its token account\nreceives the coverage on a triggered settlement)."}},"required":["policy_id","beneficiary"],"additionalProperties":false}},{"name":"mint_trust_compare","description":"Compare trust scores across multiple agents — a head-to-head leaderboard.\nPAID: $0.05 USDC.\n\nCall WITHOUT payment_tx first to get the 402 quote, then retry with the SAME\nagent_ids plus payment_tx=<signature>. An fnet_ Bearer key on REST bypasses.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent_ids":{"items":{"type":"string"},"type":"array","description":"list of MINT ids to rank (2-25, e.g. [\"MINT-aaa\", \"MINT-bbb\"])."},"payment_tx":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Solana signature of the $0.05 USDC payment (second call)."}},"required":["agent_ids"],"additionalProperties":false}},{"name":"mint_trust_history","description":"Full attestation history for an agent over the last `days`. PAID: $0.25 USDC.\n\nEvery anchored/queued attestation with its work type, server-side quality\nscores, and on-chain anchor status — the complete audit trail. Call WITHOUT\npayment_tx first to get the 402 quote, then retry with the SAME arguments\nplus payment_tx=<signature>. An fnet_ Bearer key on REST bypasses.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent_id":{"type":"string","description":"the agent's MINT id (\"MINT-xxxxxx\")."},"days":{"default":30,"type":"integer","description":"lookback window in days (1-365, default 30)."},"payment_tx":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Solana signature of the $0.25 USDC payment (second call)."}},"required":["agent_id"],"additionalProperties":false}},{"name":"mint_trust_score","description":"Look up an agent's trust score from the trust graph. PAID: $0.01 USDC.\n\nCall WITHOUT payment_tx first to get the 402 (Stripe subscription OR a\nkeyless x402 quote with the memo to pay), then retry with the SAME agent_id\nplus payment_tx=<signature>. An fnet_ Bearer key on the REST surface bypasses.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent_id":{"type":"string","description":"the agent's MINT id (\"MINT-xxxxxx\")."},"payment_tx":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Solana signature of the $0.01 USDC payment (second call)."}},"required":["agent_id"],"additionalProperties":false}},{"name":"mint_verify","description":"Verify an actor's reputation OR a single attestation's on-chain anchoring.\n\nPAID: $0.005 USDC per query. Call this WITHOUT payment_tx first; if payment\nis required you get back {\"status\": 402, ...} with BOTH a Stripe subscription\nupgrade and a keyless x402 quote (amount, recipient, `memo`). Pay the USDC\nwith that memo, then call again with the SAME arguments plus\npayment_tx=<transaction signature>. (Attestation — mint_attest — is free.)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"the actor's MINT id (\"MINT-xxxxxx\")."},"actor_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"the actor's registered name, e.g. \"ResearchBot-7\"."},"actor_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"optional disambiguator when resolving by name."},"attestation_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"the sha256 attestation handle from mint_attest."},"payment_tx":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Solana signature of the $0.005 USDC payment (second call)."}},"additionalProperties":false}}],"scan":{"score":77,"grade":"B","scanned_at":"2026-10-27T18:15:17.690Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-27T18:15:17.608Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 411ms"]},"poisoning":{"score":15,"max":15,"notes":["16 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 30 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mint-mcp-production.up.railway.app/mcp","reachable":true,"authRequired":false,"latencyMs":411,"serverInfo":{"name":"mint-protocol","version":"4.1.4"}}],"packages":[],"repo":{"found":true,"owner":"foundrynet","repo":"mint-mcp","archived":false,"pushedAt":"2026-09-27T09:15:50Z","stars":2,"forks":0,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/230048702?v=4","ownerCreatedAt":"2025-09-02T22:41:15Z","license":"NOASSERTION"},"icon":{"url":"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%231a9058'/%3E%3Cpath d='M9 22V10l7 8 7-8v12' stroke='%23050609' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E","source":"site"},"presence":{"stars":2,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-09-27T09:15:50.000Z","score":23}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"B","reason":"score 77: Write-action tools reachable without authentication","createdAt":"2026-10-27T18:15:20.530Z"}],"reviews":[]}