If your agent can make an HTTP request, it can use Reynforce. One endpoint, one bearer token, and no change to how your agent is orchestrated — we never run your agent.
| endpoint | https://app.reynforce.com/t/<your-workspace>/mcp |
| header | Authorization: Bearer <your agent key> |
That is an MCP server over Streamable HTTP. A platform that cannot speak MCP does not need to: the same check is one POST to /t/<your-workspace>/v1/observe, and examples/curl/check-action.sh is that request in full.
| tool | |
search_claims | read the register. A claim's status comes back with it, so the agent can tell a current claim from a stale one |
check_action | ask whether an action is permitted |
An agent key cannot add a claim. propose_claims, assign_owner, accept_claim, confirm_claim and raise_contest need register:write, which only a signed-in person holds. An agent proposes and asks; a person accepts.
check_action writes a record, and that is not optional. The record is a side effect of the permission check rather than something the agent sends, so a caller can be wrong about its own action and still cannot be wrong about the record. There is deliberately no way to ask without leaving a trace: an agent that could would ask until the answer was yes. intent: "draft" is the honest version — the check is recorded and the touch is not, because nothing was touched.
None of them. Not one. We have written down what to paste and marked every platform-side step untested, because we have not read any of their documentation — eleven of their documentation hosts were measured on 11 October 2026 and all eleven refused the request.
| platform | status |
| Claude, and any MCP client | [untested] |
| Clay | [untested] |
| n8n | [untested] |
| CrewAI | [untested] |
| LangGraph | [untested] |
| Dust | [untested] |
A setup guide that looks right and has never met its client costs the same as an API adapter that has never met its service, and the person who pays it is you, following our instructions. So the notes in examples/clients/ say which single question is unanswered for each one, rather than filling it in plausibly.
One page rather than six. Six pages whose differing sixth is we have not read this would be six thin pages. When a platform's steps are read and written, its section is worth a page of its own and gets one.
search_claims and check_action. If it sees propose_claims, you have given it a person's key.not_checked in the answer. allowed with that list non-empty means something was never evaluated, and not evaluated is not passed. Triggers and budgets can both be in it.The action's shape, the decision, and — where the action carried a promise — the sentence that promise was made in, up to 1,000 characters. Not the rest of the message. Data at rest sits on Fly's encrypted disks; the encryption is theirs, not ours. Records are kept for 24 months, an unclosed commitment is never deleted on age, and every deletion is itself recorded.