RCO-A2A - Regulatory Compliance Objects
Server Details
Signed, deterministic compliance state per object per jurisdiction, resolved upstream
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- greencore-solutions/rco-a2a
- GitHub Stars
- 0
TDQS
Scored across 5 tools
Each tool targets a distinct operation: retrieving a record by ID, listing issuers, listing rule sets, publishing a record (the only write path), and resolving compliance. No overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern: get_record, list_issuers, list_rule_sets, publish_record, resolve_compliance. The pattern is uniform and predictable.
With 5 tools, the set is well-scoped for the domain of regulatory compliance objects. Each tool serves a clear purpose without redundancy, and the count is within the ideal range.
The tool set covers the core lifecycle: retrieval (get_record, resolve_compliance), listing (issuers, rule sets), and publication (publish_record). Given the immutable nature of records, no update/delete is needed, and the surface is complete for the stated purpose.
Available Tools
5 toolsget_recordGet record by idARead-onlyIdempotentInspect
Return any RCO by record_id, including superseded records - the audit trail, retained byte-identical.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | Yes | |
| issuer | Yes | |
| key_id | Yes | |
| signal | Yes | |
| eco_ref | Yes | |
| rule_set | Yes | |
| object_id | Yes | |
| record_id | Yes | |
| signature | Yes | Detached JWS Compact Serialization (RFC 7515) with unencoded payload (RFC 7797): BASE64URL(protected header {alg:ES256, b64:false, crit:[b64], kid}) '..' BASE64URL(ES256 raw R||S). Signing input = ASCII(BASE64URL(protected header) '.') || RFC 8785 canonical JSON of the record with this member removed. Test vectors: signature-test-vectors.json. |
| case_study | No | |
| conditions | No | |
| supersedes | Yes | |
| rco_version | Yes | |
| resolved_at | Yes | |
| valid_until | Yes | |
| jurisdiction | Yes | |
| evidence_refs | Yes | |
| verification_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior. The description adds value beyond those by disclosing that superseded records are returned and that content is retained byte-identical, which an agent would not infer from the safety hints alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence where every clause earns its place: verb, resource, scoping ('any'), and the key behavioral qualifier about superseded records. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering safety, and only one parameter, the description covers the notable behavioral quirk (superseded records, byte-identical retention). It stops just short of fully complete by not defining what an RCO is or explaining the record_id format, but nothing critical is missing for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only restates that record_id identifies an RCO. It does not explain the identifier's components (gtin vs host, apex, ECO-10060) or how to obtain one, leaving the cryptic pattern in the schema unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return'), a specific resource (RCO by record_id), and a distinguishing behavior (including superseded records). This separates it from siblings like publish_record (write) and list_issuers (enumeration) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (fetching any RCO by ID, including historical versions) but gives no explicit when-to-use or when-not-to-use guidance. It does not name alternatives such as resolve_compliance or list_issuers, leaving routing partially to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issuersList issuersARead-onlyIdempotentInspect
Return the signed consortium issuer registry document, verbatim as published at consortium-10060.org/issuers.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| key_id | Yes | |
| issuers | Yes | |
| updated | Yes | |
| signature | Yes | |
| trust_anchor | No | |
| registry_version | Yes | |
| verification_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral context: the result is the signed registry document, returned verbatim, and sourced from a specific URL. This goes beyond the annotations and helps set expectations about content fidelity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every element—return behavior, registry scope, signed status, verbatim fidelity, and source URL—earns its place. It is efficiently structured and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with an output schema and rich annotations, the description is fully complete. It tells the agent exactly what will be returned and from where, leaving no critical operational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter meanings, and none are present in the schema. No parameter-related gap exists for the description to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it returns the signed consortium issuer registry document, and further specifies 'verbatim as published at consortium-10060.org/issuers.json'. This clearly differentiates it from sibling tools like list_rule_sets or get_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it—when an agent needs the exact issuer registry document—but it does not explicitly state when not to use it or mention alternatives. There are no exclusions or comparison to siblings, so usage guidance is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rule_setsList rule setsARead-onlyIdempotentInspect
List the versioned rule sets in force and formerly in force for a jurisdiction: id, version, hash, effective dates, artifact URL. Never the regulation text.
| Name | Required | Description | Default |
|---|---|---|---|
| jurisdiction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| rule_sets | Yes | |
| jurisdiction | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal readOnly, idempotent, non-destructive behavior, so the remaining burden is small. The description adds that former versions are included ('formerly in force') and that regulation text is never returned, which are concrete behavioral constraints beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence states the resource, scope, output fields, and the key negative constraint without filler. Every clause earns its place, and the structure supports fast parsing by an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter list operation with a read-only annotation profile, the description is complete: it names the parameter's role, the output fields, the historical scope, and the explicit exclusion of regulation text. The presence of an output schema covers return-type details, so nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only restates 'for a jurisdiction' — little more than the property name. It does not explain the meaning of the enum values (including 'apex'), how to choose one, or any format expectations, so an agent still has to infer the parameter semantics from the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'List the versioned rule sets in force and formerly in force for a jurisdiction' and enumerates the returned fields (id, version, hash, effective dates, artifact URL). The explicit 'Never the regulation text' distinguishes this metadata-list tool from content-oriented siblings such as get_record and resolve_compliance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear — retrieving versioned rule-set metadata for a jurisdiction — and the negative constraint 'Never the regulation text' implies when not to use it. However, it does not explicitly name sibling tools or state conditions for choosing list_rule_sets over get_record, list_issuers, or resolve_compliance, leaving the routing partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_recordPublish record (issuer)AIdempotentInspect
Publish a signed Regulatory Compliance Object to the partner rail (rco-a2a-cpg.ai). The ONLY write path in the suite, and it accepts only what already verifies: the record must be schema-valid RCO v1.3, its issuer must be a cpg-rail issuer active in the signed consortium registry, its verification_url must equal that issuer's registry JWKS URL, its detached JWS must verify against that JWKS, and its record_id (and any supersession) must be consistent. GSC never authors a partner record and never holds a partner private key: GSC verifies, receipts to Azure Confidential Ledger, and serves. A submitted record is never modified. Idempotent: republishing a byte-identical record returns the same receipt. Typed errors only.
| Name | Required | Description | Default |
|---|---|---|---|
| record | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| slot | Yes | |
| ledger | Yes | |
| card_url | No | |
| published | Yes | |
| record_id | Yes | |
| idempotent | No | |
| record_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds valuable behavioral context beyond these: GSC never authors records or holds private keys, verifies and receipts to Azure Confidential Ledger, never modifies submitted records, and is idempotent with byte-identical republishing. It stops short of describing auth requirements, rate limits, or error categories, but the added context is meaningful and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph with no filler; every sentence earns its place by adding operational or verification context. It could be more scannable with a short precondition list, but the length is justified by the complexity of the tool and the absence of schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex single-parameter tool, no schema descriptions, and an existing output schema, the description covers the essential operational context: purpose, verification preconditions, non-mutation, idempotency, and the GSC security posture. It does not enumerate specific typed error names or caller credentials, but the output schema and sibling context cover the remainder reasonably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the tool description must carry semantic weight for the single 'record' parameter. It does: it explains the record must be schema-valid RCO v1.3, issuer-active in the registry, with verification_url matching the JWKS URL, a verifying detached JWS, and consistent record_id/supersession. This meaningfully compensates for the schema's lack of property descriptions, though it does not enumerate nested field semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Publish a signed Regulatory Compliance Object to the partner rail (rco-a2a-cpg.ai).' It then explicitly distinguishes itself as 'The ONLY write path in the suite,' which differentiates it from sibling read tools like get_record and resolve_compliance. An agent can immediately recognize this as the write/publish operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong usage context: it is the only write path, and it 'accepts only what already verifies,' implying this tool is for publishing a pre-verified, pre-signed record rather than for discovery or compliance evaluation. It does not explicitly name the sibling tools that should be used instead for reading or resolving, but the 'only write path' framing provides clear directional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_complianceResolve compliance stateARead-onlyIdempotentInspect
Return the current signed Regulatory Compliance Object for an object in a jurisdiction. Deterministic. Inside the resolved universe (SPEC v1.2 pairs.json + the jurisdiction doors' own objects) an unknown object returns a pre-resolved, signed CPG-404 record; outside it the typed error record_not_found is returned - nothing is signed at request time. Never narrative.
| Name | Required | Description | Default |
|---|---|---|---|
| object_id | Yes | ||
| jurisdiction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | Yes | |
| issuer | Yes | |
| key_id | Yes | |
| signal | Yes | |
| eco_ref | Yes | |
| rule_set | Yes | |
| object_id | Yes | |
| record_id | Yes | |
| signature | Yes | Detached JWS Compact Serialization (RFC 7515) with unencoded payload (RFC 7797): BASE64URL(protected header {alg:ES256, b64:false, crit:[b64], kid}) '..' BASE64URL(ES256 raw R||S). Signing input = ASCII(BASE64URL(protected header) '.') || RFC 8785 canonical JSON of the record with this member removed. Test vectors: signature-test-vectors.json. |
| case_study | No | |
| conditions | No | |
| supersedes | Yes | |
| rco_version | Yes | |
| resolved_at | Yes | |
| valid_until | Yes | |
| jurisdiction | Yes | |
| evidence_refs | Yes | |
| verification_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (readOnly, idempotent, openWorldHint) by disclosing specific behaviors: deterministic output, a pre-resolved signed CPG-404 record for unknown objects inside the resolved universe, a typed error outside it, and 'nothing is signed at request time'. These details about error handling and determinism are valuable and not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by concise, high-value details. Every sentence adds meaning (deterministic, closed-world behavior, error handling, output style). No filler or redundancy, making it efficient while informatively dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential behavioral context for a deterministic, read-only tool: it defines the scope of the resolved universe, specifies return behavior for unknown objects and error cases, and clarifies that no on-the-fly signing occurs. Since an output schema exists, return values are documented elsewhere, so the description leaves little an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, but it only references 'object' and 'jurisdiction' indirectly. It does not explicitly document the object_id pattern (gtin/host) or the jurisdiction enum semantics beyond what the schema enforces. It adds behavioral context (how object relates to universe) but not parameter-specific semantics, so a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and a clear resource ('signed Regulatory Compliance Object') with the scope ('for an object in a jurisdiction'). This clearly differentiates from siblings like get_record (generic record retrieval) and publish_record (writing), so an agent can identify this tool's purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving compliance state (as opposed to publishing or listing), and it clarifies behavior (deterministic, closed world). However, it never explicitly contrasts with siblings or states when NOT to use it. It provides clear contextual differentiation but lacks explicit exclusions, so a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
publish_record10 fields changed- changed
Input schema / properties / record / $commentPrevious value: -"Record wire version stays 1.0. Cross-field checks a JSON Schema cannot express are normative in the specification and enforced by the published validator: (a) resolved_at < valid_until; (b) record_id's issuer/object/jurisdiction segments equal issuer.id, object_id and jurisdiction; (c) supersedes, when present, differs from record_id only in its trailing sequence number, which is exactly one lower; (d) GTINs are zero-padded GTIN-14 with a valid GS1 check digit; (e) host object_ids are lowercase, punycode-encoded, no trailing dot. record_id keeps its colons on the wire; a filesystem mirror replaces each colon with an underscore (CEO ruling 2026-08-29). GB is rejected as invalid_jurisdiction naming the valid set — UK is the member code (permanent GB=UK rule). Verification VERIFIES every byte of the canonical signing payload; nothing claims to reproduce signature bytes (ECDSA is randomized). v1.3 adds the optional case_study boolean and the unit rule: record-holders are keyed GTIN x jurisdiction only (NG-11 s2k)."New value: +"Record wire version stays 1.0. Cross-field checks a JSON Schema cannot express are normative in the specification and enforced by the published validator: (a) resolved_at < valid_until; (b) record_id's issuer/object/jurisdiction segments equal issuer.id, object_id and jurisdiction; (c) supersedes, when present, differs from record_id only in its trailing sequence number, which is exactly one lower; (d) GTINs are zero-padded GTIN-14 with a valid GS1 check digit; (e) host object_ids are lowercase, punycode-encoded, no trailing dot. record_id keeps its colons on the wire; a filesystem mirror replaces each colon with an underscore (CEO ruling 2026-08-29). GB is rejected as invalid_jurisdiction naming the valid set — UK is the member code (permanent GB=UK rule). Verification VERIFIES every byte of the canonical signing payload; nothing claims to reproduce signature bytes (ECDSA is randomized). v1.3 adds the optional case_study boolean and the unit rule: record-holders are keyed GTIN x jurisdiction only (NG-11 s2k). Served flat since 1.0.2 (no alternation constructs; the signal discriminator binds the state); the full contract schema is https://rco-a2a.ai/schema/v1.4/resolve_compliance.tool.json and is what the validator enforces." - removed
Input schema / properties / record / allOfRemoved value: -[ - { - "$comment": "The seven legal signal/state pairs.", - "oneOf": [ - { - "properties": { - "signal": { - "const": "CPG-000" - }, - "state": { - "const": "NOT_APPLICABLE" - } - } - }, - { - "properties": { - "signal": { - "const": "CPG-200" - }, - "state": { - "const": "ALLOW" - } - } - }, - { - "properties": { - "signal": { - "const": "CPG-300" - }, - "state": { - "const": "CONDITIONAL" - } - } - }, - { - "properties": { - "signal": { - "const": "CPG-403" - }, - "state": { - "const": "RESTRICT" - } - } - }, - { - "properties": { - "signal": { - "const": "CPG-404" - }, - "state": { - "const": "NOT_FOUND" - } - } - }, - { - "properties": { - "signal": { - "const": "CPG-451" - }, - "state": { - "const": "ESCALATE" - } - } - }, - { - "properties": { - "signal": { - "const": "CPG-500" - }, - "state": { - "const": "SYSTEM_ERROR" - } - } - } - ] - }, - { - "$comment": "conditions: required non-empty for CPG-300, forbidden otherwise.", - "else": { - "not": { - "required": [ - "conditions" - ] - } - }, - "if": { - "properties": { - "signal": { - "const": "CPG-300" - } - } - }, - "then": { - "properties": { - "conditions": { - "minItems": 1 - } - }, - "required": [ - "conditions" - ] - } - }, - { - "$comment": "CPG-404 carries eco_ref null; every other signal carries a non-null eco_ref.", - "else": { - "properties": { - "eco_ref": { - "type": "object" - } - } - }, - "if": { - "properties": { - "signal": { - "const": "CPG-404" - } - } - }, - "then": { - "properties": { - "eco_ref": { - "type": "null" - } - } - } - } -] - removed
Input schema / properties / record / properties / eco_ref / anyOfRemoved value: -[ - { - "type": "null" - }, - { - "properties": { - "hash": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "url", - "hash" - ], - "type": "object" - } -] - added
Input schema / properties / record / properties / eco_ref / propertiesAdded value: +{ + "hash": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } +} - added
Input schema / properties / record / properties / eco_ref / requiredAdded value: +[ + "url", + "hash" +] - added
Input schema / properties / record / properties / eco_ref / typeAdded value: +[ + "object", + "null" +] - added
Input schema / properties / record / properties / signal / $commentAdded value: +"Discriminator. Each signal binds exactly one state: CPG-000=NOT_APPLICABLE, CPG-200=ALLOW, CPG-300=CONDITIONAL, CPG-403=RESTRICT, CPG-404=NOT_FOUND, CPG-451=ESCALATE, CPG-500=SYSTEM_ERROR. conditions: required non-empty for CPG-300, forbidden otherwise. Enforced by the validator." - removed
Input schema / properties / record / properties / supersedes / anyOfRemoved value: -[ - { - "type": "null" - }, - { - "pattern": "^rco:[a-z0-9-]+:(gtin:[0-9]{14}|host:([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}):([A-Z]{2}-ECO-10060|apex):[1-9][0-9]*$", - "type": "string" - } -] - added
Input schema / properties / record / properties / supersedes / patternAdded value: +"^rco:[a-z0-9-]+:(gtin:[0-9]{14}|host:([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}):([A-Z]{2}-ECO-10060|apex):[1-9][0-9]*$" - added
Input schema / properties / record / properties / supersedes / typeAdded value: +[ + "string", + "null" +]
5 tool updates
- Changed
get_record7 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / conditions / items / additionalPropertiesRemoved value: -false - changed
Output schema / properties / eco_ref / anyOfPrevious value: -[ - { - "type": "null" - }, - { - "additionalProperties": false, - "properties": { - "hash": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "url", - "hash" - ], - "type": "object" - } -]New value: +[ + { + "type": "null" + }, + { + "properties": { + "hash": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "url", + "hash" + ], + "type": "object" + } +] - removed
Output schema / properties / evidence_refs / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / issuer / additionalPropertiesRemoved value: -false - removed
Output schema / properties / rule_set / additionalPropertiesRemoved value: -false
- Changed
list_issuers5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / issuers / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / issuers / items / properties / keys / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / trust_anchor / additionalPropertiesRemoved value: -false
- Changed
list_rule_sets3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / rule_sets / items / additionalPropertiesRemoved value: -false
- Changed
publish_record7 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / record / additionalPropertiesRemoved value: -false - removed
Input schema / properties / record / properties / conditions / items / additionalPropertiesRemoved value: -false - changed
Input schema / properties / record / properties / eco_ref / anyOfPrevious value: -[ - { - "type": "null" - }, - { - "additionalProperties": false, - "properties": { - "hash": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "url", - "hash" - ], - "type": "object" - } -]New value: +[ + { + "type": "null" + }, + { + "properties": { + "hash": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "url", + "hash" + ], + "type": "object" + } +] - removed
Input schema / properties / record / properties / evidence_refs / items / additionalPropertiesRemoved value: -false - removed
Input schema / properties / record / properties / issuer / additionalPropertiesRemoved value: -false - removed
Input schema / properties / record / properties / rule_set / additionalPropertiesRemoved value: -false
- Changed
resolve_compliance7 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / conditions / items / additionalPropertiesRemoved value: -false - changed
Output schema / properties / eco_ref / anyOfPrevious value: -[ - { - "type": "null" - }, - { - "additionalProperties": false, - "properties": { - "hash": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "url", - "hash" - ], - "type": "object" - } -]New value: +[ + { + "type": "null" + }, + { + "properties": { + "hash": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "url", + "hash" + ], + "type": "object" + } +] - removed
Output schema / properties / evidence_refs / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / issuer / additionalPropertiesRemoved value: -false - removed
Output schema / properties / rule_set / additionalPropertiesRemoved value: -false
5 tool updates
- First observed
get_record - First observed
list_issuers - First observed
list_rule_sets - First observed
publish_record - First observed
resolve_compliance
Related MCP Connectors
Multi-jurisdictional AI compliance readiness scoring with sourced penalty math.
Signed verification attestations for agent decisions: business, price, freshness, claim checks.
Dated, signed compliance-evidence packs: gov-fact-grounded claims + exclusion screens + trap-facts.
Append-only decisions with provenance, supersession, retrieval, and audited MCP actions.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides cryptographic signing and verification for AI decisions to generate verifiable, Ed25519-signed receipts for compliance and auditing. It automatically maps AI actions to regulatory frameworks like HIPAA and SOX with high-performance, sub-3ms signing.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables deterministic verification that all required license compliance artifacts have been delivered for a release decision, using hashes and obligation codes without exposing license bodies or scanning packages.MIT
- AlicenseAqualityDmaintenanceSource-verified regulatory and compliance intelligence: 10,000+ obligations across 39 pillars, each grounded in a primary legal source with a content hash. Covers the EU AI Act, GDPR, DORA, NIS2, HIPAA, Basel III and the MITRE ATT&CK/ATLAS families.251MIT
- AlicenseNot gradedqualityCmaintenanceComputes multi-jurisdictional AI compliance readiness scores with sourced penalty math, enabling gap analysis and audit tier recommendations.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.