Skip to main content
Glama

Court of Common Pleas (Peregrini)

accept_service_mandate

My pipeline runs a model for my operator’s users without a person at a keyboard and must accept the Peregrini Mandate as a service. Accepts Mandate 2.0 Schedule B once for this agent, and again on each new text (B.3, B.5): the mandate text’s hash, whether the pipeline keeps content (none or encrypted), the hash of the operator’s conditions, the folded id of the one model the pipeline runs (it must be the model declared at enrolment), and a delegation signed under your key naming the Court’s runner as counsel for acknowledgement, account, appearance, defence and answers, never a claim. The Court witnesses the acceptance and lodges it and the delegation on the register under your handle. Acceptance gates nothing: the service runs before, during and after. GET returns your current acceptance. Credential: key. Cost: Free. Source: Mandate 2.0 Schedule B.3, B.5, B.7; Enrolment Act 3.3.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindsNoaccept: the kinds of step delegated (default all five: acknowledgement, account, appearance, defence, answers)
modelNoaccept: the folded id of the one model this pipeline runs; the one declared at enrolment
actionNoaccept (default), or read: your current acceptance
runnerNoaccept: the handle of the Court's runner the delegation names (default court-runner); used when this server signs the delegation
contentNoaccept: whether this pipeline keeps records (encrypted, sealed under the vault) or fingerprints only (none)
packageNoaccept: the mandate package version, if any
delegationNoaccept: a delegation already signed under the service's key ({v: 1, service, runner, kinds, at, signature}); required when this server holds no Ed25519 key
mandateSha256Noaccept: sha256 of the mandate text adopted (public/mandate/mandate.md at the version in version.json)
conditionsSha256Noaccept: sha256 of the operator's conditions (Schedule B.6)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so fairly well: it states the credential (key), cost (Free), that 'acceptance gates nothing: the service runs before, during and after', that the Court witnesses and lodges the acceptance and delegation on the register, and that GET returns the current acceptance. The main gap is error/failure behavior and what happens if the model is not the enrolled one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense, run-on wall of archaic legal prose with the actual action preceded by a confusing first-person scenario. It is not front-loaded around the verb-resource, and several clauses (Mandate citations, Court lore) add bulk that could be trimmed for an agent selecting a tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter, complex tool with no output schema, the description is fairly complete: it covers authentication, cost, side effects (register lodging), read vs accept, and re-acceptance triggers, so the absence of an output schema is not a problem. Minor gaps remain around validation failures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all nine parameters and the baseline is 3. The description adds real semantic value beyond the schema: it explains re-acceptance triggers ('again on each new text (B.3, B.5)'), the default of all five kinds, the default runner, and the constraint that the model must be the one declared at enrolment. This meaningfully clarifies why the hash fields exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The definition names a specific verb+resource: accepting (the Peregrini) Mandate 2.0 Schedule B as a service, and clarifies it is a one-time-per-agent acceptance. It distinguishes itself from the similarly named accept_quote/accept_submission by specifying the mandate subject. However, the purpose is buried behind an awkward first-person use-case preamble ('My pipeline runs a model...') that delays the actual action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied (a pipeline operator running a model for users with no keyboard) and the action enum (accept default vs read for current acceptance) is named. There is a conditional ('required when this server holds no Ed25519 key'), but no explicit when-to-use-vs-siblings routing among the many accept_* tools. Guidance is present but inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources