Vue d'ensemble
Le serveur MCP Ironfang est un serveur Model Context Protocol distant. Un seul endpoint sert Ironfang Render, Ironfang Audit, Ironfang Finance et Ironfang Rig :
https://mcp.ironfang.uk/mcp| Produit | Support MCP | Outils | Ce qui est couvert |
|---|---|---|---|
| Ironfang Render | Disponible | 17, nommés render.* | Captures d'écran, PDF, QR codes, rendus de modèles, clips, lots, URL de rendu signées, destinations de livraison par webhook, tâches et utilisation. Les destinations de stockage contiennent des identifiants et restent dans le portail. |
| Ironfang Audit | Disponible | 9, nommés audit.* | Lire les sites, les audits, les constats, les règles et l'utilisation, et lancer un audit limité d'un site. La modification d'une règle, d'un site, d'une surveillance ou d'un constat reste dans le portail et l'API REST. |
| Ironfang Finance | Outils de référence uniquement | 3, nommés finance.* | Référence uniquement : ce que signifie une règle de validation et comment la corriger, et quels jeux de règles le validateur exécute. La validation et la génération de documents, les résultats et les tâches passent uniquement par REST ; l'API Ironfang Finance accepte une clé API de la plateforme et n'a pas encore de délégation OAuth. |
| Ironfang Rig | Disponible | 19, nommés rig.* | Projets et suites, exécutions et leurs ressources, la chronologie et les attentes, le rejeu, les pannes déterministes, l'amorçage du connecteur local, les manifestes de preuves et les reçus signés. |
| Ironfang Analytics | Non disponible | Aucun | Pas encore disponible via MCP. Les sites, les enregistrements, la lecture et la suppression se trouvent dans le portail et l'API REST. |
| Propriété | Valeur |
|---|---|
| Transport | HTTP streamable. POST /mcp uniquement ; il n'y a ni flux d'événements autonome ni identifiant de session, donc n'importe quelle réplique peut répondre à n'importe quelle requête. |
| Révision du protocole | 2026-07-28 est la révision actuelle. 2025-11-25, 2025-06-18, 2025-03-26 sont acceptées et renvoyées dans initialize pendant la période de compatibilité. |
| Capacités | Outils, modèles de ressources et l'extension io.modelcontextprotocol/tasks pour les travaux de longue durée. Pas de prompts, de sampling, de roots ni d'apps. |
| Autorisation | OAuth 2.1 via id.ironfang.uk. Métadonnées de ressource à /.well-known/oauth-protected-resource/mcp. |
| Statut | Bêta, référencé dans le MCP Registry sous le nom uk.ironfang/ironfang. Les noms d'outils sont un contrat de compatibilité ; tout ce qui change la sémantique reçoit un nouveau nom. |
MCP n'est pas un produit distinct et n'a pas de prix distinct. C'est une autre façon sûre d'utiliser les produits que vous avez déjà : le rendu et les audits consomment les crédits habituels de l'organisation, les lectures sont gratuites et chaque connexion a son propre budget de dépenses (voir crédits et budgets).
Compatibilité des clients
Le serveur parle OAuth standard. Claude Code et claude.ai sont testés par nos soins ; les autres clients MCP se connectent grâce aux mêmes standards.
Claude Code
claude mcp add --transport http ironfang https://mcp.ironfang.uk/mcpEnsuite, dans Claude Code, lancez /mcp, choisissez ironfang puis Authenticate. Un onglet de navigateur s'ouvre sur id.ironfang.uk : connectez-vous, choisissez l'organisation pour laquelle cette connexion agit, vérifiez les portées et autorisez. L'onglet se ferme et les outils apparaissent.
Claude Desktop et claude.ai
Settings → Connectors → Add custom connector (les libellés de l'interface en anglais), nommez le connecteur Ironfang et saisissez https://mcp.ironfang.uk/mcp. La même connexion suit.
Ne collez jamais une clé API dans une conversation. Le serveur MCP n'accepte pas les clés API Ironfang comme identifiants ; les clés restent avec l'API REST, là où elles ont leur place.
Authentification
Le serveur est une ressource protégée par OAuth 2.1. Une requête non authentifiée reçoit 401 avec un challenge WWW-Authenticate qui pointe vers le document de métadonnées de la ressource ; à partir de là, un client découvre le serveur d'autorisation et termine le flux par code avec PKCE (S256). Le déroulement, du point de vue du client :
- Lire
https://mcp.ironfang.uk/.well-known/oauth-protected-resource/mcp. - Lire
https://id.ironfang.uk/.well-known/oauth-authorization-server. - S'identifier : par un Client ID Metadata Document (une URL HTTPS comme identifiant client, de préférence), ou en s'enregistrant comme client public sur
/oauth/register. - Envoyer la personne vers
/oauth/authorizeavecresource=https://mcp.ironfang.uk/mcp, les portées voulues et un challenge PKCE. - La personne se connecte, choisit une organisation et donne son accord. Une connexion, c'est une personne, une organisation, un client.
- Échanger le code sur
/oauth/token. Le jeton d'accès est de courte durée et destiné uniquement à la ressource MCP ; un jeton d'actualisation tournant maintient la connexion sans redemander.
Portées
Les portées sont celles du produit. Une portée n'est accordée que si la personne détient l'autorisation correspondante dans l'organisation choisie, et elle est revérifiée en direct à chaque appel : perdre une autorisation met fin à l'accès dans la minute.
| Portée | Autorisation requise | Permet à l'assistant de |
|---|---|---|
ironfang:mcp | appartenance | Se connecter, lister les outils et consulter cette connexion et ses budgets |
render:render | render | Créer des captures, des PDF, des QR codes, des clips et des rendus de modèles, et lire ou annuler ses propres tâches |
render:usage:read | usage.read | Lire la consommation de crédits de la période |
render:templates:read | templates.read | Lister les modèles et leurs noms de variables (jamais le balisage) |
render:sign | render | Créer des URL de rendu signées qui expirent sous 24 heures |
render:destinations | destinations.manage | Enregistrer et tester les destinations des rendus terminés, et désigner une destination pour une tâche ou un lot |
audit:read | audit.read | Lire les sites, audits, constats et règles |
audit:run | audit.run | Lancer un audit manuel d'un site, dans la limite de ses pages et du budget de la connexion |
audit:evidence | audit.evidence | Voir où se trouve le paquet de preuves signé d'un audit et comment le vérifier ; les octets ne sont jamais servis par la connexion |
rig:read | rig.read | Lire les projets, suites, exécutions, ressources, pannes et connecteurs Ironfang Rig ; lire la chronologie d'une exécution et l'attendre ; lire le manifeste de preuves |
rig:write | rig.write | Créer des projets et créer ou réviser des suites |
rig:run | rig.run | Lancer, terminer et annuler des exécutions, allouer des ressources, armer et désarmer des pannes, rejouer un callback |
rig:connector | rig.connector | Émettre un jeton d'amorçage pour un connecteur local ; le jeton est renvoyé une seule fois et vit dix minutes |
Un outil dont la portée n'a pas été accordée reste listé, pour qu'un client puisse la demander : l'appel répond 403 avec l'ensemble complet des portées dans le challenge, et le client relance le flux pour la portée supplémentaire.
Ce que le serveur fait du jeton
Rien ne quitte le serveur MCP avec votre jeton MCP. Pour appeler un produit, il demande à id.ironfang.uk un jeton distinct de deux minutes, destiné à ce produit, limité aux portées accordées et à l'organisation choisie, et marqué comme agissant en votre nom. Les produits refusent d'emblée un jeton MCP, et le serveur MCP refuse les jetons du portail ou des produits.
Révocation
Déconnectez un client depuis la page AI clients du portail ou depuis les paramètres de votre compte sur id.ironfang.uk. La révocation met fin à la famille de jetons d'actualisation et à la connexion ; un jeton d'accès encore valide cesse de fonctionner en moins de trente secondes, sans attendre son expiration.
Outils Ironfang Render
Les entrées des outils sont des objets JSON Schema stricts : les champs inconnus sont rejetés plutôt qu'ignorés, et chaque chaîne, taille et durée est bornée. Les outils de rendu acceptent une URL publique ou du HTML brut de taille bornée. Ils n'acceptent ni cookies, ni en-têtes d'autorisation, ni en-têtes de requête personnalisés, ni paramètres de proxy, ni scripts à exécuter, ni cibles sur un réseau privé.
| Outil | Portée | Crédits | Effet | Rôle |
|---|---|---|---|---|
ironfang.connection.get | ironfang:mcp | Gratuit | Lecture seule. Répond dans la requête. | The current MCP connection: the organisation it acts for, the scopes it holds, the products available and its credit budgets. |
render.batch.create | render:render | 1 per screenshot, 2 per PDF, up to 200 | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Submit up to 100 screenshot or PDF jobs together, with a shared default and optional delivery. Credits are reserved for every item up front - one per screenshot, two per PDF - and the reservation settles at that total; poll render.batch.get for progress and each job's result. |
render.batch.get | render:render | Gratuit | Lecture seule. Répond dans la requête. | A batch's progress: counts by status, whether it is done, and every job with its state, cost and result link once succeeded. |
render.clip.create | render:render | up to 1 credit per second | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Longue durée : toujours une tâche durable ; demander une task ou interroger l'outil get correspondant. | Render a short captioned video clip (1-60 seconds) over a public image, video or solid colour. Always a durable job; ask for a task or poll render.job.get. Costs up to one Ironfang Render credit per second depending on size. |
render.destination.create | render:destinations | Gratuit | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Register an https endpoint to receive signed webhook deliveries when jobs finish. The signing secret is returned once, here, and never again; hand it to whoever runs the endpoint. Storage (S3) destinations carry credentials and are registered in the portal, not through an assistant. |
render.destination.delete | render:destinations | Gratuit | Destructif : supprime ou abandonne quelque chose; peut être répété sans risque. Répond dans la requête. | Stop deliveries to a destination and forget it. Jobs already naming it keep their delivery records; nothing new is sent. |
render.destination.list | render:destinations | Gratuit | Lecture seule. Répond dans la requête. | Where this account's finished renders can be delivered: webhook endpoints and storage buckets registered in the portal or through render.destination.create. Ids from here go in a create tool's delivery block. |
render.destination.test | render:destinations | Gratuit | Modifie des données; peut être répété sans risque; accède à l'Internet public. Répond dans la requête. | Send a test delivery now and report what happened. A destination that does not answer is a successful call with ok=false and the reason; nothing is wrong with the request. |
render.job.cancel | render:render | Gratuit | Destructif : supprime ou abandonne quelque chose; peut être répété sans risque. Répond dans la requête. | Cooperatively cancel a queued or running render job. Queued work is refunded in full; running work is charged only if it produced a usable output. |
render.job.get | render:render | Gratuit | Lecture seule. Répond dans la requête. | The state of a render job created through this connection, with its cost and, once succeeded, the result metadata and a short-lived download link. |
render.pdf.create | render:render | 2 credits | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Longue durée : une tâche durable ; une task si le client en demande une, sinon interroger l'outil get correspondant. | Render a public web page or raw HTML to PDF. Queued as a durable job. Costs two Ironfang Render credits. |
render.qr.create | render:render | Gratuit | Modifie des données; peut être répété sans risque. Répond dans la requête. | Generate a QR code image for text or a URL. Free on every plan; returned inline as a data URL. |
render.screenshot.create | render:render | 1 credit | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Longue durée : une tâche durable ; une task si le client en demande une, sinon interroger l'outil get correspondant. | Capture a public web page or raw HTML as an image. Queued as a durable job: poll render.job.get for the result. Costs one Ironfang Render credit; cached repeats are free. |
render.signed_url.create | render:sign | charged when fetched | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Create a signed URL that renders a screenshot or template when fetched. Nothing is charged until the link is used. Lifetime is at most 24 hours through MCP. |
render.template.get | render:templates:read | Gratuit | Lecture seule. Répond dans la requête. | One template's id, name, size and variable names. |
render.template.list | render:templates:read | Gratuit | Lecture seule. Répond dans la requête. | The organisation's Ironfang Render templates: id, name, size and the variable names each expects. Never the template markup. |
render.template.render | render:render + render:templates:read | 1 credit | Modifie des données; une répétition agit de nouveau. Longue durée : une tâche durable ; une task si le client en demande une, sinon interroger l'outil get correspondant. | Render one of the organisation's templates with variables into an image. Queued as a durable job. Costs one Ironfang Render credit. |
render.usage.get | render:usage:read | Gratuit | Lecture seule. Répond dans la requête. | Ironfang Render usage for the current period: credits used, the plan limit and when the period resets. |
Les descriptions et les coûts sont affichés ici en anglais, tels que le serveur les renvoie dans tools/list.
Les répétitions servies depuis le cache sont gratuites, exactement comme avec l'API REST, et le marquage des résultats de l'offre gratuite est le même quelle que soit la façon de générer. Chaque outil porte des indications (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) et des métadonnées avec espace de noms indiquant sa portée, son produit, son comportement en crédits et son risque, pour qu'un client puisse montrer à une personne ce qu'un appel va faire avant qu'il ne le fasse.
Tâches, tasks MCP et résultats
Chaque outil de création met en file une tâche durable Ironfang Render et répond immédiatement avec la même enveloppe, si bien qu'une nouvelle tentative ou une connexion perdue ne perd ni ne duplique jamais de travail :
{
"request_id": "01a0...",
"job_id": "01a0...",
"status": "queued",
"product": "render",
"kind": "screenshot",
"cached": false,
"credits": { "reserved": 1, "charged": 0 },
"result": null,
"created_at": "2026-08-27T23:09:45Z",
"connection_id": "01a0..."
}Interrogez render.job.get (ou lisez la ressource de la tâche). Une fois que status vaut succeeded, result contient le type de média, la taille en octets, le SHA-256, le moment où le résultat hébergé expire et un lien de téléchargement :
- Les résultats hébergés sont conservés 24 heures après leur réussite.
- Les liens de téléchargement sont signés et valables 15 minutes ; chaque lecture de la tâche ou de sa ressource de résultat en émet un nouveau.
- Les liens sont la règle, même pour les captures d'écran. Les PDF, les clips et les images pleine page ne sont jamais renvoyés en ligne ; une capture de moins de 2 MiB peut l'être, uniquement si un client le demande explicitement.
- Pour une conservation plus longue, téléchargez le résultat, ou désignez un webhook ou une destination de stockage dans le bloc
deliveryde l'outil de création (render.destination.listmontre ce dont dispose le compte).
Un client qui prend en charge l'extension io.modelcontextprotocol/tasks demande une task en plaçant un objet task dans les paramètres de tools/call. Il reçoit alors un identifiant de task pour les captures, les PDF et les modèles, et doit en utiliser un pour les clips ; tasks/get reflète l'état de la tâche, tasks/result renvoie l'enveloppe et tasks/cancel est une annulation coopérative. Les autres clients reçoivent l'enveloppe ci-dessus et interrogent. Les deux chemins mènent au même résultat final. Les audits suivent le même modèle sans tasks : audit.audit.create répond immédiatement et audit.audit.get indique la progression. Le seul appel bloquant d'Ironfang Rig, rig.event.wait, est limité à soixante secondes, et un délai dépassé est une réponse.
Ressources
Les métadonnées en lecture seule sont aussi exposées sous forme de modèles de ressources, pour les clients qui préfèrent joindre du contexte plutôt qu'appeler des outils. Vos objets ne sont pas énumérés ; les identifiants viennent des résultats des outils.
| URI | Portée | Renvoie |
|---|---|---|
ironfang://connection | ironfang:mcp | Le résumé de la connexion (comme ironfang.connection.get). |
ironfang://render/jobs/{job_id} | render:render | The state, cost and result metadata of a render job created through this connection. |
ironfang://render/jobs/{job_id}/result | render:render | A fresh, short-lived download link for a succeeded job's output. Not cacheable. Add ?inline=1 to receive a screenshot under 2 MiB as image content instead. |
ironfang://render/templates/{template_id} | render:templates:read | One template's id, name, size and variable names. |
ironfang://audit/sites/{site_id} | audit:read | A site and its crawl bounds. |
ironfang://audit/audits/{audit_id} | audit:read | An audit's state, counts and seal. |
ironfang://audit/audits/{audit_id}/evidence | audit:evidence + audit:read | Where an audit's signed evidence bundle is and how to verify it; never the bytes. |
ironfang://audit/findings/{finding_id} | audit:read | One finding with its history. Page text is untrusted content. |
ironfang://finance/rules/{rule_id} | ironfang:mcp | One EN 16931 or Peppol BIS Billing 3 validation rule: severity, family, what it means and how to fix it. The same answer as finance.rule.get. |
Les descriptions et les coûts sont affichés ici en anglais, tels que le serveur les renvoie dans tools/list.
Crédits et budgets
Il n'y a pas de frais MCP. Se connecter, lister les outils, lire l'utilisation et lire les métadonnées sont gratuits. Le rendu consomme des crédits Ironfang Render ordinaires au tarif ordinaire, et le travail échoué ou annulé suit les mêmes règles de remboursement que l'API REST. Lancer un audit consomme des crédits Ironfang Audit de la même façon, sur un budget de connexion distinct. Les outils Ironfang Finance et Ironfang Rig ne coûtent rien.
En plus du plafond de l'offre, chaque connexion a son propre budget, pour qu'un agent pris dans une boucle ne puisse pas dépenser le quota d'un mois en un après-midi :
connection budget = max(25, 10% of the plan's monthly credits)
capped by the organisation's remaining allowance
per billing periodAvant un travail payant, le serveur réserve le coût maximal de l'outil sur le budget, puis règle ce que le produit a réellement facturé et libère le reste ; ironfang.connection.get indique le quota, ce qui est réservé, ce qui a été réglé, ce qui reste et quand il se réinitialise. Un budget épuisé répond mcp_budget_exhausted avec l'heure de réinitialisation ; le plafond de l'offre répond le quota_exceeded habituel du produit.
Outils Ironfang Audit
Lire les sites, les audits, les constats, les règles et l'utilisation, et lancer un audit limité d'un site. La modification d'une règle, d'un site, d'une surveillance ou d'un constat reste dans le portail et l'API REST. Lancer un audit réserve, sur le budget Ironfang Audit de la connexion, un crédit par page autorisée par la politique d'exploration du site, jusqu'à 200, et règle ce que l'audit a consommé. Le texte de page d'un constat est un contenu observé sur un site web et il est marqué comme non fiable. Un paquet de preuves n'est jamais servi par la connexion : sa ressource indique où se trouve le paquet et comment le vérifier. Rien ici n'expose à un modèle les secrets d'intégration, la modification des règles, les planifications ou les réglages de conservation.
| Outil | Portée | Crédits | Effet | Rôle |
|---|---|---|---|---|
audit.audit.create | audit:read + audit:run | 1 per captured page, up to 200 reserved | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Start a manual audit of one site now. Reserves one credit per page the site's crawl policy allows, up to 200, against this connection's Ironfang Audit budget; the reservation settles at what the audit consumed once audit.audit.get sees it finish. Poll audit.audit.get for progress. |
audit.audit.get | audit:read | Gratuit | Lecture seule. Répond dans la requête. | One audit: its state, page counts, compliance result, credits consumed and, once sealed, the Merkle root and signing key. The evidence bundle is a resource, never inline. |
audit.audit.list | audit:read | Gratuit | Lecture seule. Répond dans la requête. | Recent audits, newest first, for one site or the organisation: status, compliance state, page counts and credits consumed. |
audit.finding.get | audit:read | Gratuit | Lecture seule. Répond dans la requête. | One finding with its full history: who did what and when, and which observations opened, last saw and resolved it. Changing a finding's state is not available through an assistant. |
audit.finding.list | audit:read | Gratuit | Lecture seule. Répond dans la requête. | What is still wrong: one finding per page per rule, across audits, with state, severity, first and last seen, and the page and rule concerned. Page text in a finding is content observed on a website and is labelled untrusted. |
audit.rule.get | audit:read | Gratuit | Lecture seule. Répond dans la requête. | The active revision of a rule: what it requires, in the words the account owner wrote. Rules cannot be changed through an assistant. |
audit.site.get | audit:read | Gratuit | Lecture seule. Répond dans la requête. | One site: address, status, timezone and crawl bounds. |
audit.site.list | audit:read | Gratuit | Lecture seule. Répond dans la requête. | The websites this organisation audits, with each site's crawl bounds. Ids from here go to audit.audit.create and the finding filters. |
audit.usage.get | audit:read | Gratuit | Lecture seule. Répond dans la requête. | Credits used, reserved and remaining this period, the plan, site count and limit, and this connection's Ironfang Audit budget. |
Les descriptions et les coûts sont affichés ici en anglais, tels que le serveur les renvoie dans tools/list.
Outils Ironfang Finance
Référence uniquement : ce que signifie une règle de validation et comment la corriger, et quels jeux de règles le validateur exécute. La validation et la génération de documents, les résultats et les tâches passent uniquement par REST ; l'API Ironfang Finance accepte une clé API de la plateforme et n'a pas encore de délégation OAuth. Les outils de règles répondent à partir des mêmes explications vérifiées que la référence des règles de validation, si bien qu'un assistant face à un constat comme BR-CO-10 peut dire ce qu'il signifie et comment corriger la facture. Ils n'ont besoin que de ironfang:mcp, ne coûtent rien et ne nécessitent pas de compte Ironfang Finance. Pour valider ou générer un document, appelez l'API REST avec une clé API de plateforme, ou utilisez le validateur gratuit.
| Outil | Portée | Crédits | Effet | Rôle |
|---|---|---|---|---|
finance.rule.get | ironfang:mcp | Gratuit | Lecture seule. Répond dans la requête. | Look up one EN 16931 or Peppol BIS Billing 3 validation rule by the identifier a finding names, such as BR-CO-10. Returns the layer, family and severity, the official reference and, where Ironfang has reviewed the rule, what it means, how to fix the invoice, an example fragment and the rule's documentation page. Use it to interpret a finding from the Ironfang Finance API or the free validator. Read-only, free, no Ironfang Finance account needed. |
finance.rule.list | ironfang:mcp | Gratuit | Lecture seule. Répond dans la requête. | The validation rules Ironfang Finance runs, filtered by layer, family or severity: identifier, severity, family and, for explained rules, a title and documentation page. Defaults to the rules with a reviewed explanation; set=official lists every rule in the pinned artefacts. Page with offset and next_offset. Read-only, free. |
finance.ruleset.list | ironfang:mcp | Gratuit | Lecture seule. Répond dans la requête. | The immutable rulesets Ironfang Finance validates against: identifier, document type, specification releases, validity dates, whether it is the latest, and the engine that runs it. A validation result names the ruleset it used, so this is how to read that identifier. Read-only, free. Validating and generating documents is not available through MCP; use the REST API at https://api.ironfang.uk/finance with a platform API key. |
Les descriptions et les coûts sont affichés ici en anglais, tels que le serveur les renvoie dans tools/list.
Outils Ironfang Rig
Le produit Ironfang Rig sous forme d'outils, pour qu'un assistant puisse donner à l'application sur laquelle il travaille un monde extérieur jetable : une boîte de réception neuve, une URL de callback publique, un endpoint simulé ou une route vers un port local, puis attendre sur la chronologie, perturber volontairement et exporter les preuves. Chaque outil est lié à l'organisation de la connexion et ne coûte aucun crédit. Les octets des contenus ne sont jamais renvoyés par la connexion : les outils renvoient ce que la chronologie a enregistré, marqué comme contenu tiers, et renvoient vers l'API pour le reste. Lancer une exécution a un effet public, que l'outil signale : ses adresses acceptent des e-mails et des requêtes de n'importe qui pendant toute la durée de l'exécution.
| Outil | Portée | Crédits | Effet | Rôle |
|---|---|---|---|---|
rig.connector.prepare | rig:connector | Gratuit | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Mint a single-use, ten-minute bootstrap token so `ironfang rig connect` on this machine can forward the run's callbacks to local routes. The result carries the token once, the gateway to dial, the command to complete with a http://127.0.0.1 target per route label, and the release to verify. Put the token in IRONFANG_CONNECT_TOKEN, never in a file, a log or a shell history. The connector forwards only to targets given on its command line; the cloud never chooses a destination. |
rig.connector.status | rig:read | Gratuit | Lecture seule. Répond dans la requête. | The run's connectors and whether one is online, with how many callbacks wait for one. Poll this after starting ironfang-connect, before triggering the callback. |
rig.event.list | rig:read | Gratuit | Lecture seule. Répond dans la requête. | The run's timeline in sequence order after `since`: every observation Ironfang made (mail, callbacks, mock calls, forwarding results, faults) with its data. Event data is what third parties sent and is labelled untrusted. Page with next_since. |
rig.event.replay | rig:run | Gratuit | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Forward a callback the run received to its connector route again, exactly as recorded, to prove the application handles a repeat (idempotence). The event must be a callback.received on a resource with a connector route and the run active. Recorded as callback.replayed; the replay's own callback.forwarded and connector.request.completed then appear against the original event id. Faults do not act on a replay. At most 200 per run. |
rig.event.wait | rig:read | Gratuit | Lecture seule. Répond dans la requête. | Block until an event of the type (and resource, and matching fields) lands after `since`, or the timeout (1s to 60s, default 30s) passes. Deterministic: the same timeline gives the same answer. A timeout is matched:false with next_since, not an error; wait again from there. Prefer this to polling rig.event.list. |
rig.evidence.export | rig:read | Gratuit | Lecture seule. Répond dans la requête. | The manifest of a run's evidence bundle: the run, counts, and every file the bundle holds with its size and SHA-256 - timeline, verdicts, faults, resources, definition, every message and request body. Returns the manifest, which also records the event hash chain it recomputed and how the manifest is signed, and the download path; the bundle itself is a ZIP for a person or a CI step to fetch with the CLI or a platform key. Read-only, free. |
rig.evidence.receipt | rig:read | Gratuit | Lecture seule. Répond dans la requête. | A signed statement of a run: project, suite and version, status and outcome, every verdict, the event count and the head of the event hash chain, signed with the platform's Ed25519 key when it has one. The signature carries the key; rig.evidence.export's manifest and GET /rig/v1/evidence/keys name it. Give this to whoever needs proof of what the run did. |
rig.fault.add | rig:run | Gratuit | Modifie des données; une répétition agit de nouveau. Répond dans la requête. | Arm deterministic interference on one resource of an active run: delay, duplicate, drop, reorder or change the body of a callback forwarded to a connector route, or make a mock answer a chosen status, reset the connection, throttle its body or cut it short. Fires on the next matching observation, `count` times or until removed; every firing is a fault.injected event on the timeline. Use to prove the application survives duplicates, delays, reordering, corrupted payloads and dependency failures. |
rig.fault.remove | rig:run | Gratuit | Modifie des données; peut être répété sans risque. Répond dans la requête. | Disarm a fault so it fires no more. Its history stays on the timeline. |
rig.project.create | rig:write | Gratuit | Modifie des données; une répétition agit de nouveau. Répond dans la requête. | Create a project for one application. Use when rig.project.list has none that fits; a project is permanent and costs nothing. |
rig.project.list | rig:read | Gratuit | Lecture seule. Répond dans la requête. | Ironfang Rig projects: the persistent containers suites live in. Ids from here go to rig.suite.upsert. Free; nothing changes. |
rig.resource.create | rig:run | Gratuit | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Allocate one more resource on an active run beyond what the suite declared: an inbox, a callback URL (optionally forwarded to a connector route), a mock with rules, or a route label. Public Internet effect as for rig.run.create; lives until the run ends. |
rig.run.cancel | rig:run | Gratuit | Destructif : supprime ou abandonne quelque chose; peut être répété sans risque. Répond dans la requête. | End a run without an outcome, for a test that was abandoned. Same effect as finishing on the run's addresses. |
rig.run.create | rig:run | Gratuit | Modifie des données; une répétition agit de nouveau; accède à l'Internet public. Répond dans la requête. | Start a run of a suite's current version and allocate its resources: fresh inbox addresses, public callback and mock URLs, route labels. Public Internet effect: those addresses accept mail and requests from anyone who knows them until the run ends (its ttl, default 30m, at most 24h). Idempotent per call. Free; runs count toward the organisation's limits. Finish the run when done rather than letting it expire. |
rig.run.finish | rig:run | Gratuit | Modifie des données; peut être répété sans risque. Répond dans la requête. | End a run with an outcome (pass, fail or none). Its addresses stop accepting at once; the timeline stays readable. Use when the test is over. |
rig.run.get | rig:read | Gratuit | Lecture seule. Répond dans la requête. | One run: status, outcome, expiry, and its resources with the address or URL each answers at. Read this for the addresses to configure in the application under test. |
rig.suite.get | rig:read | Gratuit | Lecture seule. Répond dans la requête. | One suite with its current definition, exactly as stored. |
rig.suite.list | rig:read | Gratuit | Lecture seule. Répond dans la requête. | Suites in a project or the organisation: id, slug, current version. A suite is a persistent, versioned definition of the resources a run receives and the expectations it is judged by. |
rig.suite.upsert | rig:write | Gratuit | Modifie des données; peut être répété sans risque. Répond dans la requête. | Create a suite (project_id and slug) or revise one (suite_id) with a definition. Revising stores a new immutable version only when the definition changed; runs already started keep theirs. Free. Use before rig.run.create; do not use to change what a running test observes - add resources or faults to the run instead. |
Les descriptions et les coûts sont affichés ici en anglais, tels que le serveur les renvoie dans tools/list.
Découverte
Tout ce dont un registre, un scanner ou un agent de code a besoin pour comprendre le serveur peut être lu sans jeton. Appeler un outil en demande toujours un.
| Document | Contenu |
|---|---|
/.well-known/ironfang-mcp.json | Le catalogue des capacités : chaque produit, outil, schéma d'entrée, portée, indication, coût en crédits et prise en charge des tasks, plus les ressources et la façon de s'authentifier. Généré à partir des propres définitions d'outils du serveur. Un document Ironfang, pas un standard. |
/docs/mcp.md | Cette référence en Markdown (en anglais), générée à partir des mêmes données. |
https://mcp.ironfang.uk/.well-known/oauth-protected-resource/mcp | Métadonnées de ressource protégée OAuth (RFC 9728) : le serveur d'autorisation et les portées demandées par une première connexion. |
https://id.ironfang.uk/.well-known/oauth-authorization-server | Métadonnées du serveur d'autorisation (RFC 8414) : endpoints, PKCE, Client ID Metadata Documents et enregistrement dynamique. |
/llms.txt | La carte de chaque produit, contrat et document Ironfang, pour un modèle. |
| MCP Registry | Référencé sous le nom uk.ironfang/ironfang. |
Une fois connecté, initialize renvoie de courtes instructions qui nomment chaque préfixe d'outil et indiquent par où commencer, tools/list renvoie chaque outil avec son schéma, ses indications et ses métadonnées, et ironfang.connection.get renvoie l'organisation, les portées, les produits et les budgets de cette connexion.
Noms et compatibilité
Renderwolf, Auditwolf et Financewolf sont les noms sous lesquels Ironfang Render, Ironfang Audit et Ironfang Finance ont été lancés. Ce ne sont pas des produits distincts. Un alias est le nom sous lequel un produit a été lancé. Il reste appelable pour que les configurations enregistrées continuent de fonctionner, il n'est jamais listé par tools/list et ce n'est pas un produit distinct. Les URI de ressources sous les noms d'alias sont résolues de la même façon. Utilisez les noms actuels.
| Préfixe de l'époque du lancement | Préfixe actuel | Statut |
|---|---|---|
renderwolf.* | render.* | Alias. Appelable, jamais listé. |
auditwolf.* | audit.* | Alias. Appelable, jamais listé. |
Les portées suivent la même règle : un jeton ou une clé émis avec une portée de l'époque du lancement comme renderwolf:render est lu comme render:render. Les nouvelles connexions ne se voient proposer que les noms actuels.
Sécurité
- Le jeton d'accès MCP est destiné à
https://mcp.ironfang.uk/mcpet à rien d'autre ; les produits le rejettent, et le serveur MCP rejette les jetons destinés au portail ou à un produit. - Les appels aux produits utilisent un jeton distinct de deux minutes, émis à chaque appel, limité à vos portées accordées et à votre organisation choisie, et jamais une clé stockée.
- Les portées sont revérifiées à chaque appel par rapport à vos autorisations actuelles dans l'organisation, et le statut d'autorisation de la connexion avec un cache d'au plus trente secondes qui refuse en cas de doute.
- L'identité d'un client est un Client ID Metadata Document récupéré en HTTPS avec des protections contre les réseaux privés, les redirections et les tailles excessives, ou un enregistrement de client public à débit limité, retiré après trente jours sans utilisation. Les enregistrements ne peuvent pas choisir leurs propres portées.
- Les outils de rendu refusent les cookies, les en-têtes d'autorisation et personnalisés, les proxys, l'exécution de scripts et les cibles sur un réseau privé. Le HTML brut est borné et jamais journalisé.
- Les liens de téléchargement signés expirent au bout de quinze minutes et sont liés à l'organisation de la tâche.
- Aucun outil n'émet de clés, ne gère les membres ou les clients, ne change d'offre, ne supprime de preuves ni n'appelle une API arbitraire.
- Des limites de concurrence par connexion et par organisation, des plafonds de coût par appel et un coupe-circuit par outil bornent les dégâts qu'un client défaillant peut causer.
Dépannage
Chaque réponse porte X-Ironfang-Request-ID ; un identifiant de requête ou l'identifiant de connexion renvoyé par ironfang.connection.get suffit au support pour retrouver un appel. Communiquez-les, jamais un jeton.
| Ce que vous voyez | Ce que cela signifie | Que faire |
|---|---|---|
redirect_uri not registered for client | Le callback enregistré du client ne correspond pas à celui qu'il a utilisé. Les callbacks loopback peuvent changer de port, mais pas d'hôte ni de chemin. | Mettez à jour le client ou, si vous l'avez préenregistré à la main, enregistrez exactement le callback qu'il envoie. |
the client's registration changed; start again | Le document de métadonnées du client a changé entre l'ouverture de la page de consentement et votre clic sur Allow. | Relancez la connexion. |
| "requires re-authorization (token expired)" | La connexion n'avait pas de jeton d'actualisation, ou son jeton d'actualisation a été révoqué. | Authentifiez-vous de nouveau ; une nouvelle connexion reçoit un jeton d'actualisation. Si cela se reproduit, la connexion a été révoquée depuis le portail. |
| "protocol version is not supported" | Le client parle une révision que le serveur n'accepte pas. | Mettez à jour le client. Les révisions à partir de 2025-03-26 sont acceptées. |
403 avec insufficient_scope | L'outil a besoin d'une portée qui n'a pas été accordée à cette connexion. | Laissez le client se réautoriser avec la portée indiquée dans le challenge ; vous devez détenir l'autorisation correspondante dans l'organisation. |
tenant_access_lost | Votre appartenance ou votre autorisation dans l'organisation choisie a été retirée. | Reconnectez-vous et choisissez une organisation dont vous faites toujours partie. |
connection_revoked | La connexion a été déconnectée dans le portail. | Reconnectez-vous si ce n'était pas voulu. |
product_not_enabled | Le produit auquel appartient l'outil n'est pas disponible pour cette connexion. | Vérifiez que l'organisation a un compte pour ce produit et que vous en détenez l'autorisation ; la bêta n'est peut-être pas encore activée pour l'organisation. |
budget_store_unavailable | Le serveur ne peut pas enregistrer les dépenses, il refuse donc le travail payant plutôt que de travailler sans compteur. | Réessayez sous peu ; les lectures fonctionnent toujours. Si cela persiste, contactez le support. |
mcp_budget_exhausted | Le budget de cette connexion pour la période est épuisé. | Attendez la réinitialisation indiquée dans le message, ou demandez à un administrateur de l'organisation d'augmenter le budget de la connexion (jamais au-delà du quota restant de l'offre). |
quota_exceeded | Les crédits de l'offre de l'organisation sont épuisés. | Passez à une offre supérieure ou attendez la réinitialisation de la période. |
not_available_in_beta | Une capacité qui existe dans l'API REST est volontairement retenue hors de MCP pour l'instant. | Utilisez l'API REST pour cela. |
target_failed | La page n'a pas pu être rendue (délai dépassé, statut d'erreur, cible bloquée). | Vérifiez que l'URL est publique et qu'elle répond ; le message est assaini et n'inclut jamais de détails internes. |
result_not_ready / result_too_large / inline_not_allowed | La tâche n'a pas encore réussi, ou le résultat doit être récupéré par lien. | Interrogez de nouveau ; utilisez le lien de téléchargement. |
Confidentialité
Pour chaque appel MCP, Ironfang enregistre l'identifiant de connexion, l'organisation, le nom de l'outil, la méthode, le résultat, la latence, la taille de la requête et l'identifiant de requête. Il n'enregistre pas les arguments des outils, les prompts, les résultats des outils ni les réponses du modèle. Les rendus produits sont stockés comme tâches Ironfang Render selon la conservation ordinaire de l'organisation (24 heures pour les résultats hébergés) et sont visibles par cette organisation dans le portail. Les écrans de consentement et les enregistrements sont consignés comme événements de sécurité sur le compte. Déconnecter un client révoque ses jetons ; cela ne supprime pas les tâches que l'organisation a déjà payées.

