RCO-A2A - Regulatory Compliance Objects
Server Details
Signed, deterministic compliance state per object per jurisdiction, resolved upstream.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- greencore-solutions/rco-a2a
- GitHub Stars
- 0
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 declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context: superseded records are returned and retained byte-identical. This goes beyond what annotations alone provide.
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 sentence with no filler and front-loads the core purpose. The phrase 'the audit trail, retained byte-identical' is slightly awkward but still compact and informative.
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 one-parameter, read-only, idempotent getter with an output schema and a precise record_id pattern, the description covers the essential behavior including the superseded-record nuance. Domain terms like RCO and audit trail are not expanded, but the schema and simple scope make this adequate.
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 description adds minimal meaning beyond the input schema, simply stating that the parameter is a record_id identifying an RCO. Schema description coverage is 0%, but the detailed pattern in the schema already defines the expected format thoroughly, compensating for the missing parameter description.
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 uses a specific verb ('Return'), names the resource ('RCO by record_id'), and adds a distinguishing detail ('including superseded records'). This clearly differentiates it from sibling tools like list_issuers, publish_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 intended use is implied by the phrase 'by record_id', but the description never states when to choose this tool over alternatives or when not to use it. There is no explicit guidance about sibling tools, so the agent must infer usage context from the tool name and description.
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 the operation as read-only, idempotent, and non-destructive. The description adds that the result is signed and returned verbatim from a fixed URL, which is useful context but not a substantial behavioral disclosure 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?
A single sentence conveys the action, the exact resource, the signed/verbatim nature, and the source URL without any filler. Every clause contributes meaningful information.
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 a full output schema and strong annotations, this description is sufficient. An agent knows what will be returned, where it comes from, and that no input is required.
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 takes zero parameters, so there is no input semantics for the description to clarify. The baseline of 4 applies because no parameter information is needed.
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 resource (the signed consortium issuer registry document) and the action (Return), along with the canonical source URL. It does not explicitly contrast with sibling list_rule_sets, but the resource is specific enough to avoid confusion.
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?
There is no guidance on when to use this tool versus siblings like list_rule_sets, get_record, or resolve_compliance. The description states what is returned but not under what conditions an agent should select this tool.
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?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value beyond annotations by specifying the temporal scope ('in force and formerly in force'), the response fields, and the explicit exclusion of regulation text. It gives a clear behavioral contract for a list operation without contradicting 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?
The description is two compact sentences with no filler. The core purpose is front-loaded, and the negative boundary is stated immediately after. Every word contributes to scope or behavioral expectations.
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 tool has a single required enum parameter and an output schema, so return structure is already covered. The description supplies the missing semantic context: what a rule set is, which temporal versions are included, and what is explicitly not returned. This is sufficient for correct invocation.
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%, and the only parameter, jurisdiction, is merely referred to as 'for a jurisdiction' in the description. This adds little beyond the schema's enum. However, the parameter name and enum values are reasonably self-explanatory, so the tool remains callable, though special values like 'apex' are not explained.
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 uses a specific verb-resource pair: 'List the versioned rule sets in force and formerly in force for a jurisdiction' and enumerates the exact fields returned. The negative clause 'Never the regulation text' further disambiguates it from other tools. It clearly distinguishes itself from siblings like list_issuers and get_record by content and scope.
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 the tool: whenever an agent needs versioned rule set metadata for a jurisdiction. However, it does not explicitly contrast this with siblings such as list_issuers or resolve_compliance, nor does it state 'use this instead of...'. The 'Never the regulation text' clause is a boundary on output, not usage guidance.
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?
It discloses important behavioral traits beyond the idempotentHint annotation: GSC never authors records or holds partner keys, records are never modified after submission, verification and Azure Confidential Ledger receipting are performed, republishing byte-identical records returns the same receipt, and errors are typed. This gives an agent a strong model of side effects and guarantees.
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 purpose, then acceptance criteria, then behavior, then idempotency and error behavior. Every sentence earns its place, and there is no redundant padding or restatement of the schema.
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 one-parameter schema and existing annotations, the description covers preconditions, verification requirements, side effects, idempotency, and error behavior. The presence of an output schema means return-value detail is not required here. No significant decision-relevant context 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?
The schema has 0% description coverage for the single `record` parameter, so the description must carry semantic weight. It does: it explains that the record must be schema-valid RCO v1.3, that the issuer must be active in the signed consortium registry, that `verification_url` must match the registered JWKS URL, that the detached JWS must verify, and that `record_id` and supersession must be consistent. These are meaningful constraints not obvious from the raw schema alone.
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 precise verb and target: 'Publish a signed Regulatory Compliance Object to the partner rail (rco-a2a-cpg.ai).' It further calls this 'The ONLY write path in the suite,' which clearly differentiates it from the sibling read/resolve tools.
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 states when to use this tool: for publishing/writing, and uniquely in this suite. It implicitly routes non-write operations to siblings by labeling itself the only write path, though it does not explicitly name the alternative tools or state when not to use it beyond that.
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?
This description goes well beyond the annotations by disclosing determinism, the pre-resolved signed CPG-404 fallback inside the universe, the typed record_not_found error outside it, and the fact that nothing is signed at request time. These details give an agent concrete expectations about outcomes and side effects beyond the readOnly/idempotent/closed-world hints already present.
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 compact, front-loaded, and every sentence adds a distinct behavioral fact. A small deduction is warranted because it relies on unexplained domain jargon such as "SPEC v1.2 pairs.json," "jurisdiction doors," and "CPG-404," which increases cognitive load despite the tight structure.
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 closed-world complexity, two required parameters, annotations covering safety, and an existing output schema, the description is complete: it covers success behavior, fallback records, error behavior, determinism, and the absence of request-time signing. Nothing necessary for an agent to call or interpret the tool is missing, even though the domain vocabulary is assumed.
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 description ties both parameters to the operation: object_id identifies the object and jurisdiction selects the jurisdiction, and it clarifies that unknown objects inside the resolved universe are handled. But with 0% schema description coverage, it does not elaborate on allowed object_id forms, jurisdiction-door semantics, or special envelope values like apex; the schema's pattern and enum carry most of the parameter-level burden.
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 and resource: "Return the current signed Regulatory Compliance Object for an object in a jurisdiction." It also distinguishes itself from generic record retrieval by emphasizing signed, deterministic compliance resolution and closing with "Never narrative." This makes the tool's purpose unmistakable even among the sibling tools.
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 provides clear context for when the tool is relevant — resolving compliance state for an object in a jurisdiction — and defines boundary conditions via the resolved universe and the record_not_found error. However, it does not explicitly name sibling tools or state when to prefer resolve_compliance over get_record or other alternatives, so usage routing is implied rather than explicit.
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. Dates show when Glama detected each change.
5 tool updates
- First observed
get_record - First observed
list_issuers - First observed
list_rule_sets - First observed
publish_record - First observed
resolve_compliance
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
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
- AlicenseAqualityCmaintenanceSource-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.
TDQS
Each tool targets a clearly distinct operation: retrieving a specific record, listing issuers, listing rule sets, publishing, and resolving current compliance. The only potentially similar pair (get_record vs resolve_compliance) is clearly separated by record_id lookup versus jurisdictional object resolution.
All tool names follow a consistent lowercase snake_case verb_noun pattern: get_record, list_issuers, list_rule_sets, publish_record, resolve_compliance. No mixed conventions or vague verbs.
Five tools is well-scoped for this regulatory compliance domain, covering read, list, publish, and resolve operations without unnecessary surface area. Each tool earns its place in the workflow.
The suite covers the essential lifecycle: publishing verifiable records, retrieving any record including superseded ones, resolving the current compliance object, and listing the supporting issuers and rule sets. The immutable, audit-oriented design means update/delete are intentionally absent rather than gaps.