API Reference
All 12 Rhetra MCP tools. Callable via the Model Context Protocol.
check_permissionPhase 1Evaluates whether a proposed agent action is permitted, prohibited, or undetermined. Uses three-valued Kleene logic when compiled formulas are available. Falls back to keyword matching otherwise.
Parameters
bearerstring*Party name, role, or ID performing the actionactionstring*Description of the proposed actioncontextRecord<string, boolean>Predicate bindings for formula evaluationasOfDatestringISO 8601 date (default: now)Returns
verdict, enforcementLevel, applicableNorms, conflicts, openQuestions, reasoning, evaluationMethod
Example
await mcp.callTool("check_permission", {
bearer: "procurement-bot",
action: "approve vendor contract for $45,000"
});get_obligationsPhase 1Returns all active obligations for a given bearer. Includes conditions, exceptions, deadlines, and source traceability.
Parameters
bearerstring*Party name, role, or IDasOfDatestringISO 8601 date (default: now)includeExpiredbooleanInclude expired/revoked obligationsReturns
bearer, obligations[], totalCount, normativeStateTimestamp
Example
await mcp.callTool("get_obligations", {
bearer: "Seller"
});detect_conflictsPhase 1Given proposed structured norms, identifies conflicts with the existing norm graph. Uses topic clustering and cross-layer analysis.
Parameters
normsarray*Proposed norms with modality, bearer, verb, objectReturns
conflicts[], totalConflicts, normativeStateTimestamp
Example
await mcp.callTool("detect_conflicts", {
norms: [{ modality: "PROHIBITION", bearer: "Agent", verb: "disclose", object: "data" }]
});ingest_documentPhase 1Ingests a contract, regulation, or policy into the norm graph. Extracts norms, compiles to formal logic, and builds relationships. Requires an LLM API key.
Parameters
textstring*Full document textdocumentTypestringHint: statute, regulation, contract, casetitlestringDocument titleReturns
documentId, normsExtracted, formulasCompiled, norms[], summary
Example
await mcp.callTool("ingest_document", {
text: contractText,
title: "Vendor MSA"
});impact_analysisPhase 1Given a norm change, computes its effects on the existing graph. Identifies directly and transitively affected norms, new conflicts, and required actions.
Parameters
normIdstring*ID of the norm being changedchangeTypestring*ADDED, REMOVED, MODIFIED, STRENGTHENED, WEAKENEDdescriptionstring*Description of the changeReturns
directlyAffected, transitivelyAffected, newConflicts, requiredActions, summary
Example
await mcp.callTool("impact_analysis", {
normId: "norm-123",
changeType: "STRENGTHENED",
description: "Data retention increased from 5 to 7 years"
});create_normPhase 2Records an agent-to-agent commitment. Checks for conflicts (rejects if contradiction exists), generates Hohfeldian correlatives, and compiles to formal logic.
Parameters
modalitystring*OBLIGATION, PROHIBITION, PERMISSION, or POWERbearerstring*Party bearing the normbeneficiarystringParty benefiting from the normverbstring*Action verbobjectstring*Action objectstrengthstringSTRICT, BEST_EFFORTS, REASONABLE_EFFORTS, GOOD_FAITHReturns
created, norm, correlative, blockingConflicts, warnings
Example
await mcp.callTool("create_norm", {
modality: "OBLIGATION",
bearer: "bot-a",
beneficiary: "bot-b",
verb: "deliver",
object: "vendor assessment report"
});update_norm_statusPhase 2Transitions a norm's status. SATISFY marks an obligation as fulfilled. REVOKE terminates a norm (respects survival clauses). BREACH marks a missed deadline and activates consequences.
Parameters
normIdstring*ID of the normtransitionstring*SATISFY, REVOKE, or BREACHReturns
success, previousStatus, newStatus, consequencesActivated, reasoning
Example
await mcp.callTool("update_norm_status", {
normId: "norm-456",
transition: "SATISFY"
});get_normative_positionPhase 2Returns the complete normative state for a bearer: all active obligations, prohibitions, permissions, powers, and pending deadlines. Supports agent scoping.
Parameters
bearerstring*Party name, role, or IDagentIdstringRegistered agent ID for scoped filteringReturns
obligations, prohibitions, permissions, powers, pendingDeadlines, totalActiveNorms
Example
await mcp.callTool("get_normative_position", {
bearer: "procurement-bot",
agentId: "procurement-bot"
});exercise_powerPhase 3Exercises a Hohfeldian power to delegate norms to another agent. Validates the principal holds the power, then creates norms for the delegate.
Parameters
principalstring*Party exercising the powerpowerstring*Power being exerciseddelegatestring*Party receiving delegated normsnormsarray*Norms to create for the delegateReturns
exercised, powerNormId, delegatedNorms[], reasoning
Example
await mcp.callTool("exercise_power", {
principal: "Manager",
power: "delegate procurement",
delegate: "procurement-bot",
norms: [
{ modality: "OBLIGATION", verb: "review", object: "vendor proposals" },
{ modality: "PERMISSION", verb: "contact", object: "vendors directly" }
]
});get_normative_profilePhase 3Returns an agent's normative track record. Other agents can query this before delegating or accepting commitments.
Parameters
bearerstring*Party name or IDReturns
obligationsMet, obligationsBreached, obligationsOutstanding, reliabilityRatio, activePowers
Example
await mcp.callTool("get_normative_profile", {
bearer: "procurement-bot"
});
// { obligationsMet: 47, obligationsBreached: 2, reliabilityRatio: 0.96 }register_agentScopingRegisters an agent with its capabilities and roles. Once registered, query tools filter to norms relevant to the agent's capabilities. Agents aren't employees — only applicable norms are shown.
Parameters
agentIdstring*Unique agent identifieragentNamestring*Human-readable namecapabilitiesstring[]*What this agent can doactingAsstring[]*Party roles this agent acts asReturns
registered, agentId, capabilities, actingAs
Example
await mcp.callTool("register_agent", {
agentId: "email-bot",
agentName: "Email Bot",
capabilities: ["send-email", "access-data"],
actingAs: ["Customer"]
});