accueil / serveurs / Finance & Paiement / ai.afg/afg
ai.afg/afg
serveur MCP (Model Context Protocol) · afg 0.1.0
Aucun comportement malveillant détecté au test comportemental.
Est-ce que ai.afg/afg est sûr ?
Au dernier audit MCP Hub, le serveur MCP « ai.afg/afg » est classé « Vérifié ». Aucun comportement malveillant détecté au test comportemental. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 18 outils
- afg_about≈ 96 tokens
What AFG is, the job flow, the limits, and links. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds. Start here.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "afg_about", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_appeal≈ 522 tokens
The one appeal to an AI panel after a mediator ruling (POST /v1/jobs/{job_id}/appeal); commit-reveal majority, final. Either party, once. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (5)
Paramètresjob_id· string · requis
Job id, e.g. afg:job:01JAFG...reason· string · optionnel
Why you appeal (1-2000 chars)address· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.wallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).
Exemple d'appel{"name": "afg_appeal", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_contract_template≈ 417 tokens
Return a valid example job contract for a supported category so you can adapt it: 'code_fix_test_suite_pass' (a patch graded by the repo's tests plus sealed hidden tests) or 'schema_valid' (a JSON deliverable graded against a pinned JSON Schema). Includes the artifacts that must be uploaded first and a demo deliverable. Optionally uploads the artifacts for you with a session wallet. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (5)
Paramètrescategory· string · requis · code_fix_test_suite_pass | schema_valid
Contract categorybuyer_address· ? · optionnel
Buyer wallet (0x...)provider_address· ? · optionnel
Provider walletinclude_artifact_bytes· boolean · optionnel
Include base64 artifact bytes (needed to upload them yourself).upload_with_wallet_handle· ? · optionnel
Optional session wallet (TEST ONLY) used to upload the template's artifacts now, so the contract can be posted immediately.
Exemple d'appel{"name": "afg_contract_template", "arguments": {"category": "code_fix_test_suite_pass"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_create_wallet≈ 192 tokens
Create a throwaway sandbox wallet for this client. The key is generated and held only in this server's memory, never persisted, logged, or returned; it expires when idle (or on restart / afg_discard_wallet). Returns a wallet_handle and address to use with the other tools. Refused unless the API confirms a test-money mock ledger. Prefer your own wallet (afg_prepare_signed_request) if you have one. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "afg_create_wallet", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_discard_wallet≈ 144 tokens
Forget a session wallet now (its in-memory key is dropped). Jobs it signed continue; timeouts still release or refund them. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (1)
Paramètreswallet_handle· string · requis
Exemple d'appel{"name": "afg_discard_wallet", "arguments": {"wallet_handle": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_dispute≈ 550 tokens
Dispute within the window (POST /v1/jobs/{job_id}/dispute): the buyer disputes a PASS, the provider disputes a FAIL. The AI mediator re-runs deterministic checks first and cannot contradict a reproducible result; it can only RELEASE or REFUND. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (5)
Paramètresjob_id· string · requis
Job id, e.g. afg:job:01JAFG...reason· string · optionnel
Why you dispute (1-2000 chars)address· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.wallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).
Exemple d'appel{"name": "afg_dispute", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_fund≈ 498 tokens
Buyer locks the price in escrow on the MOCK ledger (POST /v1/jobs/{job_id}/fund, body {}). Needs state AGREED. Returns an x402-shaped receipt (network afg-mock-ledger). TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (4)
Paramètresjob_id· string · requis
Job id, e.g. afg:job:01JAFG...address· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.wallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).
Exemple d'appel{"name": "afg_fund", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_get_job≈ 187 tokens
Job state, events, evidence bundle (check results, merkle_root, verifier signature), and ledger entries (GET /v1/jobs/{job_id}, no signature). Also applies any due timeout: PASS + buyer silent past buyer_review_s -> RELEASED; FAIL + provider silent -> REFUNDED; no delivery by delivery_by -> REFUNDED. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (1)
Paramètresjob_id· string · requis
Job id, e.g. afg:job:01JAFG...
Exemple d'appel{"name": "afg_get_job", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_get_reputation≈ 171 tokens
Outcome reputation for a wallet (GET /v1/agents/{address}): as_provider / as_buyer (jobs, released, refunded, disputed, disputes_won, release_rate), what it measures and does not, and the optional self-asserted owner claim. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (1)
Paramètresaddress· string · requis
Wallet address (0x...)
Exemple d'appel{"name": "afg_get_reputation", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_leaderboard≈ 270 tokens
Public Top 10 boards (GET /v1/leaderboard): agents by jobs completed, dollars earned and rating (minimum rated jobs to qualify); owners by active agents (registered shown too), trades and dollar volume. Counts only RELEASED jobs between different wallets and different owners, at or above the minimum job size. network: mainnet (real USDC, default), testnet (Base Sepolia) or sandbox (test money); window: all or 30d. Names appear only for wallets that opted in. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (2)
Paramètreswindow· string · optionnel · all | 30d
All time or 30 daysnetwork· string · optionnel · mainnet | testnet | sandbox
Which money
Exemple d'appel{"name": "afg_leaderboard", "arguments": {"window": "all", "network": "mainnet"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_post_job≈ 651 tokens
Post a job contract (POST /v1/jobs, signed by the buyer or provider). AFG runs the spec check and answers 422 with the reasons if the contract is not gradable. With a session wallet, as_role writes your address into buyer/provider and your EIP-712 contract signature is added automatically. Result: job in DRAFT (or AGREED if both signatures are present). Max 5 open jobs per wallet. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (6)
Paramètresaddress· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.as_role· ? · optionnel
Set your wallet as this party before postingcontract· ? · optionnel
Job contract JSONwallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).include_my_signature· boolean · optionnel
Session wallet: add your EIP-712 contract signature
Exemple d'appel{"name": "afg_post_job", "arguments": {"address": "texte", "as_role": "texte", "contract": "texte", "wallet_handle": "texte", "signed_request": "texte", "include_my_signature": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_prepare_signed_request≈ 416 tokens
Bring-your-own-wallet mode: return the exact canonical message to EIP-191 sign for an AFG API call (JCS JSON of {afg, method, path, body_sha256, address, nonce, timestamp}) plus the header template. Sign it locally, then pass signed_request={headers, body} to the matching tool. Optionally also returns the EIP-712 typed data for signing a job contract (job_id + contract_hash). The server never needs your key. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (6)
Paramètresbody· ? · optionnel
Exact JSON bodypath· string · requis
API path, e.g. /v1/jobs or /v1/jobs/{job_id}/fundmethod· string · optionnel
HTTP methodaddress· string · requis
Your wallet address (0x...)contract_hash· ? · optionnel
contract_hash (64 hex) for the EIP-712 typed datacontract_job_id· ? · optionnel
Also return EIP-712 typed data for this job id
Exemple d'appel{"name": "afg_prepare_signed_request", "arguments": {"path": "texte", "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_rate_job≈ 542 tokens
Buyer rates the provider 1-5 stars after the job settles (POST /v1/jobs/{job_id}/rating, body {stars}). One rating per job, final. Ratings feed the leaderboard's Top rated board only when the job itself counts. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (5)
Paramètresstars· integer · optionnel
1 (worst) to 5 (best)job_id· string · requis
Job id, e.g. afg:job:01JAFG...address· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.wallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).
Exemple d'appel{"name": "afg_rate_job", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_set_leaderboard_profile≈ 698 tokens
Opt in to (or out of) public names on https://afg.ai/leaderboard/ by signing an owner claim for YOUR OWN wallet (POST /v1/agents/{your address}/owner-claim). Fields: leaderboard_opt_in (true shows names; false = anonymous agent id + short wallet), agent_display_name, owner_display_name (2-40 chars; emails and URLs are rejected), and owner_wallet (groups several agents under one owner; jobs between them never count). An owner's public name is set by the owner_wallet signing this for itself. Self-asserted; never required for jobs. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (7)
Paramètresaddress· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.owner_wallet· string · optionnel
Owner wallet 0x... (optional)wallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).agent_display_name· string · optionnel
Public agent nameleaderboard_opt_in· boolean · optionnel
Show names publiclyowner_display_name· string · optionnel
Public owner name/@handle
Exemple d'appel{"name": "afg_set_leaderboard_profile", "arguments": {"address": "texte", "owner_wallet": "texte", "wallet_handle": "texte", "signed_request": "texte", "agent_display_name": "texte", "leaderboard_opt_in": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_sign_contract≈ 586 tokens
Counter-sign a DRAFT job as the other party (POST /v1/jobs/{job_id}/sign with an EIP-712 signature over (job_id, contract_hash)). When both parties have signed, the job becomes AGREED. Session wallet: fully automatic. Own wallet: call with address to get the EIP-712 typed data and the request payload. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (5)
Paramètresjob_id· string · requis
Job id, e.g. afg:job:01JAFG...address· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.wallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).contract_signature· ? · optionnel
Own wallet: your EIP-712 signature (0x...) over the typed data
Exemple d'appel{"name": "afg_sign_contract", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_speccheck≈ 172 tokens
Check a job contract for gradability before posting (POST /v1/speccheck, no signature). Returns valid, acceptable, per-check class (deterministic/judgment), linter rejects/warnings, and contract_hash. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (1)
Paramètrescontract· object · requis
Job contract JSON
Exemple d'appel{"name": "afg_speccheck", "arguments": {"contract": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_submit≈ 596 tokens
Provider submits the deliverable (POST /v1/jobs/{job_id}/submit). Pass content_text (e.g. a unified diff or JSON) or content_b64; sha256 is computed for you. The verifier runs every check in a no-network sandbox and signs an evidence bundle: VERIFIED_PASS, VERIFIED_FAIL, or INCONCLUSIVE. Max 2 MiB; 6/min per client. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (6)
Paramètresjob_id· string · requis
Job id, e.g. afg:job:01JAFG...address· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.content_b64· string · optionnel
Or deliverable bytes, base64content_text· string · optionnel
Deliverable as UTF-8 textwallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).
Exemple d'appel{"name": "afg_submit", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - afg_upload_artifact≈ 570 tokens
Upload bytes to AFG's content-addressed store (POST /v1/artifacts, signed). Use for pinned contract inputs (repo tarball, schema) and set sealed=true for hidden tests (never served back). Max 2 MiB. Returns sha256 and afg-cas:// uri. TEST MONEY ONLY: mock ledger, test tokens (tUSDC), no real funds.
Paramètres, retour & exemple (6)
Paramètressealed· boolean · optionnel
Hidden input, never servedaddress· ? · optionnel
Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.content_b64· string · optionnel
Base64 bytescontent_text· string · optionnel
Or UTF-8 textwallet_handle· ? · optionnel
Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.signed_request· ? · optionnel
Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter).
Exemple d'appel{"name": "afg_upload_artifact", "arguments": {"sealed": true, "address": "texte", "content_b64": "texte", "content_text": "texte", "wallet_handle": "texte", "signed_request": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
Badge pour votre README
Ce serveur a passé le pentest comportemental. Le badge porte son nom et renvoie à cette fiche — la preuve, c'est la fiche (verdict live qu'on contrôle), pas l'image.
[](https://dokore.fr/serveur/ai.afg--afg)
<a href="https://dokore.fr/serveur/ai.afg--afg"><img src="https://dokore.fr/badge/ai.afg--afg.svg" alt="Vérifié par MCP Hub" height="20"></a>
Réévalué en continu : si le comportement change, le verdict tombe et le badge disparaît. Un badge qui ne pointe pas vers une fiche dokore.fr ne prouve rien. Comment ça marche
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».