Skip to main content
Glama
loopgridio
by loopgridio

LoopGrid MCP Server — v0.1 design preview

A thin Model Context Protocol bridge for the LoopGrid evidence plane.

loopgrid-mcp lets an MCP-compatible host record and retrieve LoopGrid decision evidence through six MCP tools. It is intentionally a separate repository from the LoopGrid core product and talks to LoopGrid only through its REST API.

It does not import LoopGrid internals, access the LoopGrid database directly, change signing code, alter the evidence schema, or modify the existing LoopGrid SDK contracts.

Architecture

MCP-compatible AI host/client
          |
          | stdio MCP
          v
     loopgrid-mcp
          |
          | LoopGrid REST API
          v
        LoopGrid
          |
          v
 signed, tamper-evident decision evidence

The v0.1 release uses local stdio. No separate Railway, Render, AWS, database, or hosted MCP service is required.

Related MCP server: audit-ledger-mcp

MCP tools

The server exposes:

  • loopgrid.record_decision

  • loopgrid.record_review

  • loopgrid.record_action

  • loopgrid.record_outcome

  • loopgrid.get_evidence

  • loopgrid.verify_evidence

Important safety boundary

LoopGrid MCP is an evidence bridge, not a business-action executor.

loopgrid.record_action does not issue a Stripe refund, edit Salesforce, change ServiceNow, or invoke another business system. It records evidence supplied by the calling integration that an external action occurred.

Likewise, loopgrid.record_outcome records an outcome reported by the integration. LoopGrid can verify the integrity of the captured record; this alone does not independently prove that every external-world claim is true or establish legal compliance.

Human review receives extra protection: loopgrid.record_review is registered but disabled by default. To enable it, an operator must explicitly set the review flag and reviewer identity. The model cannot choose the configured reviewer identity.

Raw FULL-mode disclosures are also excluded from MCP evidence export by default.

Requirements

  • Python 3.10+

  • A reachable LoopGrid v0.8.x service

  • For local evaluation, the public LoopGrid GHCR image is sufficient

Normal use of this Python stdio server does not require Node.js. Node is only needed for optional browser-based MCP Inspector tooling.

The project uses the official MCP Python SDK v2 line (mcp>=2,<3).

Windows quick start

1. Start LoopGrid

In PowerShell:

docker run --rm `
  --platform linux/amd64 `
  -p 8000:8000 `
  -v loopgrid_demo_data:/app/data `
  ghcr.io/cybertechsoft/loopgrid:edge

Leave that container running.

2. Prepare this repository

Open another PowerShell window in the loopgrid-mcp folder:

py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

3. Check connectivity

loopgrid-mcp-doctor

Expected shape:

[OK] LoopGrid reachable: http://127.0.0.1:8000
[OK] version: 0.8.1-design-partner
[OK] evidence profile: 3.0-draft
[OK] database: ok
[OK] signer: local_ed25519
[OK] MCP workspace: default

4. Run the unit/protocol tests

python -m pytest -ra

5. Run a real REST smoke test

python .\scripts\smoke_test.py

This creates a synthetic decision, records synthetic action/outcome evidence, verifies the decision, and downloads an evidence ZIP. It does not call a real external business system.

6. Run the real stdio MCP client test

python .\scripts\mcp_stdio_test.py

This launches loopgrid-mcp as a child stdio server using the official MCP Python client and verifies:

connect
  -> discover all 6 tools
  -> record decision
  -> record action evidence
  -> record outcome evidence
  -> service-side verification
  -> evidence ZIP export
  -> review tool remains disabled by default

A successful run ends with:

[PASS] Real stdio MCP client test completed successfully.

This is the recommended release-gate test for the MCP protocol path.

Start the MCP server

loopgrid-mcp

A real MCP host normally starts this command for you. Because this is a stdio server, running it directly simply waits for MCP messages on standard input.

A generic MCP client configuration is:

{
  "mcpServers": {
    "loopgrid": {
      "command": "loopgrid-mcp",
      "env": {
        "LOOPGRID_BASE_URL": "http://127.0.0.1:8000",
        "LOOPGRID_WORKSPACE": "default"
      }
    }
  }
}

On Windows, some hosts need the full path to .venv\\Scripts\\loopgrid-mcp.exe. See examples/mcp-client-config.windows.json.

Optional MCP Inspector

The browser Inspector is useful for manual exploration, but it is not required to run or validate LoopGrid MCP. The canonical automated protocol test in this repository is:

python .\scripts\mcp_stdio_test.py

If your installed MCP development tooling supports the Inspector cleanly, you can also try:

mcp dev .\src\loopgrid_mcp\server.py

Tool behavior

loopgrid.record_decision

Captures a decision through LoopGrid's REST API. It may also append model evidence and evaluate an existing LoopGrid policy when those optional inputs are supplied.

It never executes proposed_action.

Example:

{
  "decision_type": "customer_refund",
  "agent_id": "support-agent",
  "agent_version": "1.0",
  "proposed_action": {
    "tool": "stripe.refunds.create",
    "amount": 720,
    "currency": "USD"
  },
  "model": {
    "provider": "openai",
    "name": "gpt-5"
  },
  "authority": {
    "acting_for": "Acme",
    "limit_usd": 1500,
    "scope": ["refund:create"]
  }
}

loopgrid.record_review

Records an approve/reject review using the LoopGrid review endpoint. Disabled by default.

To enable deliberately:

$env:LOOPGRID_MCP_ENABLE_REVIEW_TOOL="true"
$env:LOOPGRID_MCP_REVIEWER_ID="reviewer@example.com"

When LoopGrid authentication is enabled, the service key also needs the appropriate review scope.

loopgrid.record_action

Appends tool_executed evidence. It does not execute the external tool. Canonical fields such as the tool name cannot be overwritten by free-form details.

loopgrid.record_outcome

Appends outcome_observed evidence. The calling integration is responsible for obtaining the real downstream outcome. Canonical status and verified_against fields cannot be overwritten by free-form details.

loopgrid.get_evidence

Downloads the portable evidence ZIP to LOOPGRID_EVIDENCE_DIR (default ./loopgrid-evidence).

Raw disclosure payloads are blocked unless explicitly enabled:

$env:LOOPGRID_MCP_ALLOW_PAYLOAD_EXPORT="true"

loopgrid.verify_evidence

Asks the connected LoopGrid service to verify the decision's signed workspace chain. This is service-side verification.

For independent/offline verification of an exported ZIP, use the standalone LoopGrid verifier. The MCP bridge intentionally does not duplicate that verifier.

Authenticated LoopGrid deployments

For local evaluation with authentication disabled, no service key is required.

When authentication is enabled:

$env:LOOPGRID_SERVICE_KEY="<scoped-service-key>"

Use the minimum scopes required by the tools you enable. Do not use an admin key unless administration is genuinely required.

Configuration

See .env.example for the full list of supported environment variables.

The bridge does not automatically load .env; the MCP host should inject variables, or the operator should set them in the environment that starts the server.

The target LoopGrid URL is operator configuration, not an MCP tool argument, so a model cannot redirect the bridge to an arbitrary host through a tool call.

Repository boundary

The intended public layout is:

github.com/cybertechsoft/loopgrid
    core LoopGrid evidence infrastructure

github.com/loopgridio/loopgrid-mcp
    thin MCP protocol bridge

The bridge communicates with LoopGrid only over HTTP.

Validation status

The v0.1 release candidate has been exercised locally on Windows against the public LoopGrid v0.8.1 design-partner container. The real official MCP Python client successfully negotiated MCP protocol 2026-07-28, discovered all six tools, created a synthetic decision, recorded action/outcome evidence, verified the evidence service-side, exported the evidence ZIP, and confirmed the review tool remained disabled by default.

See VALIDATION.md for the detailed release-gate record.

MCP Registry preparation

The MCP Registry is not published yet.

registry/server.json.draft is preparation only. Publish order should be:

  1. publish this GitHub repository;

  2. obtain green CI from a clean checkout;

  3. publish loopgrid-mcp to PyPI;

  4. confirm the PyPI README contains the matching mcp-name marker;

  5. validate/update server.json against the current Registry schema;

  6. publish to the official MCP Registry.

The current MCP Registry supports PyPI package entries using stdio transport, and verifies PyPI ownership using the mcp-name: marker in the package README.

Release posture

0.1.0 is a design preview, not Production GA. It is intended to validate a clean MCP integration path for LoopGrid v0.8.x without changing LoopGrid's signing, hash-chain, evidence-bundle, verifier, or SDK contracts.

License

Apache-2.0. See LICENSE.

Available Tools

6 tools
loopgrid.get_evidenceA

Download a portable LoopGrid evidence ZIP for a decision to the configured local evidence directory. Raw disclosure payloads are excluded by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
decision_idYes
include_payloadsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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 behavioral disclosure burden, and it does so reasonably well: it states that the tool writes a portable ZIP to a local directory and that raw disclosure payloads are excluded by default. It could add side-effect details (e.g., whether existing files are overwritten or whether the directory must be configured), but the core behavior is transparent.

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

Conciseness5/5

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

Two short sentences lead with the primary action and destination, then add the key default behavior. Every phrase carries information, with no filler or repetition of schema fields.

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 simple two-parameter download tool with an output schema present, the description covers the essential aspects: what is downloaded, where it goes, and a key default. It does not explain the full contents of the ZIP or prerequisites like a pre-configured directory, but these are minor given the output schema.

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

Parameters3/5

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. It implicitly explains include_payloads via 'Raw disclosure payloads are excluded by default' but never explicitly names or maps either parameter. The decision_id is self-explanatory from the schema, and the boolean's default behavior is partially clarified, but the compensation is incomplete.

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

Purpose5/5

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

The description opens with a specific verb ('Download') and identifies the concrete resource ('a portable LoopGrid evidence ZIP for a decision') plus the destination ('the configured local evidence directory'). This clearly distinguishes the tool from the record_* and verify_evidence siblings, which are different verbs and resources.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over the sibling tools or when not to use it. The phrase 'for a decision' gives minimal context, but no alternatives, exclusions, or prerequisites are mentioned, leaving the agent to infer when downloading is appropriate.

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

loopgrid.record_actionC

Record evidence that an external tool/action executed. This does NOT call Stripe, Salesforce, ServiceNow, or any other business system; it only records execution evidence supplied by the integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYes
detailsNo
actor_idNoexternal-system
decision_idYes
external_referenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior itself. It does clarify a key behavior: this tool does NOT call Stripe, Salesforce, ServiceNow, or other business systems; it only records supplied evidence. However, it does not address side effects, idempotency, auth requirements, or failure behavior.

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

Conciseness5/5

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

The description is a single, compact sentence that front-loads the core purpose and then adds a valuable exclusion note. There is no redundant or filler content.

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

Completeness2/5

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

The description is too thin for a tool with five parameters, zero schema coverage, and no annotations. An agent would not know how to fill required fields like decision_id/tool or understand the purpose of optional fields. The output schema helps with return shape, but invocation guidance is still largely missing.

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

Parameters1/5

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

Schema description coverage is 0%, so the description carries the full burden of explaining parameters, but it mentions none of the five parameters. It does not clarify what tool, details, actor_id, decision_id, or external_reference mean or how they relate to the recording action.

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 description clearly states the tool records evidence that an external tool/action executed, which is a specific verb+resource pairing. It also distinguishes itself from tools that would actually invoke business systems, though it does not explicitly differentiate from sibling record_* tools.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus the sibling tools like record_decision, record_review, or record_outcome. It implies usage for logging execution evidence but does not state conditions, alternatives, or exclusions beyond not calling external systems.

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

loopgrid.record_decisionA

Capture a consequential AI/agent decision in LoopGrid. Optionally record model output and evaluate an existing LoopGrid policy. This records evidence only and does not execute the proposed action.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
contextNo
agent_idNomcp-agent
metadataNo
authorityNo
policy_idNo
input_dataNo
model_outputNo
privacy_modeNo
service_nameNomcp-agent
agent_versionNo
decision_typeYes
idempotency_keyNo
proposed_actionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the essential side-effect boundary: recording evidence only, never executing the proposed action, and optionally recording model output or evaluating a policy. It does not mention persistence confirmation, authority requirements, idempotency, or privacy-mode effects, which is a gap for a write-oriented tool.

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

Conciseness5/5

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

Three short sentences front-load the core purpose, add optional capabilities, and then give a crucial behavioral guardrail. Every sentence earns its place; there is no fluff or redundancy.

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

Completeness2/5

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

Given the tool's high parameter count, nested objects, absence of annotations, and the surrounding sibling set, the description is too thin to fully orient an agent. It covers purpose and one exclusions, but it does not differentiate from record_review/record_outcome by name and provides almost no field-level guidance; the output schema only reduces the return-value burden.

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

Parameters2/5

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

Schema description coverage is 0% and there are 14 parameters, so the description must compensate, but it only hints at model_output and policy_id. Required fields like decision_type and proposed_action, plus important optional fields such as authority, privacy_mode, and idempotency_key, are left entirely unexplained.

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

Purpose5/5

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

States an explicit action and resource: 'Capture a consequential AI/agent decision in LoopGrid.' It also distinguishes itself from execution tools by noting 'This records evidence only and does not execute the proposed action,' which separates it from the sibling record_action. The purpose is specific and readily actionable.

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

Usage Guidelines4/5

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

The description gives clear behavioral context: use this to record decisions as evidence and optionally attach model output or evaluate a policy. It also provides a key exclusion—'does not execute the proposed action'—which prevents misuse as an action-execution tool. However, it does not explicitly name alternatives like record_review or record_outcome.

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

loopgrid.record_outcomeA

Record an observed downstream outcome for a decision after execution evidence exists. The integration is responsible for obtaining the outcome from the real downstream system.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
detailsNo
actor_idNoloopgrid-mcp
decision_idYes
verified_againstYes
external_referenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It explains that the integration is responsible for obtaining the outcome, but does not disclose side effects, required permissions, idempotency, error behavior, or what occurs on repeated calls. This is insufficient for a state-changing record operation.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the core action and resource, then a key responsibility note. No wasted words or repetition of schema details.

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

Completeness2/5

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

With six parameters, 0% schema description coverage, and no annotations, the description leaves major gaps: status format, required parameter semantics, and tool behavior. The output schema exists but does not compensate for lack of parameter guidance. This is inadequate for correct autonomous invocation.

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

Parameters2/5

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. It only implies the meaning of decision_id and verified_against through the phrase 'for a decision after execution evidence exists,' but it gives no details on status values, details structure, actor_id, or external_reference. Parameters remain largely under-explained.

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

Purpose5/5

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

The description clearly states the specific verb 'Record' with a well-defined resource: an 'observed downstream outcome for a decision after execution evidence exists.' It distinguishes this tool from siblings like record_decision, record_review, and record_action by emphasizing downstream outcomes and evidence-based timing.

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

Usage Guidelines4/5

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

The description provides a clear usage condition: use it 'after execution evidence exists' and when the integration has obtained an outcome from the real downstream system. It does not explicitly discuss exclusions or compare to sibling tools, but the timing and responsibility guidance are useful context.

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

loopgrid.record_reviewA

Record a human approve/reject review in LoopGrid. Disabled by default. The operator must explicitly enable it and configure reviewer identity; the MCP host should require human confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
reasonNo
decision_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It openly states the tool is disabled by default, requires operator configuration of reviewer identity, and should be gated by human confirmation from the MCP host. This is meaningful auth/confirmation context beyond a naive read of the schema, though it doesn't detail what happens to the decision or whether the review is immutable.

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

Conciseness5/5

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

Two compact sentences front-load purpose and then deliver the key operational caveat. No filler or restatement of schema fields; each clause earns its place.

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

Completeness3/5

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

For a 3-parameter tool with an output schema and no annotations, the description covers the purpose and prerequisites well but leaves out parameter roles and relationship to sibling record_* tools. It is adequate as an overview yet incomplete for reliable invocation.

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

Parameters2/5

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. It only mirrors the action enum in prose ("approve/reject") and never explains decision_id or reason. An agent gets no added meaning for two of the three parameters, leaving a clear gap.

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 description opens with a specific verb and resource: "Record a human approve/reject review in LoopGrid." It identifies this tool as recording human review decisions, which is clear. It doesn't explicitly contrast with the sibling record_decision/record_action/record_outcome tools, but the "review" scope is distinguishable enough to avoid deep confusion.

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

Usage Guidelines4/5

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

It gives clear context for when the tool applies — when a human approve/reject review needs to be recorded — and adds operational prerequisites: disabled by default and requires operator enablement/configuration. It doesn't name alternatives or exclusion conditions, so it stops short of a full 5.

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

loopgrid.verify_evidenceB

Ask the connected LoopGrid service to verify the decision's signed workspace chain. For independent offline verification of an exported ZIP, use the standalone LoopGrid verifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
decision_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'verify' without stating whether the operation is read-only, if it has side effects, what happens on failure, or what the output looks like. This is minimal behavioral transparency for a tool with no annotation support.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the primary purpose, and the second provides a clear alternative. No wasted words, and the main action is front-loaded.

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

Completeness3/5

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

For a simple one-parameter tool with an output schema, the description covers the basic purpose and an alternative, but it lacks behavioral details like what verification entails, what the response indicates, and any prerequisites. With no annotations and no parameter descriptions, it is not fully complete.

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

Parameters1/5

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

The description does not mention the parameter 'decision_id' at all, and the schema has no descriptions (coverage 0%). The description adds no meaning beyond the schema's bare parameter name, which is insufficient given the low schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: to verify the decision's signed workspace chain via the connected LoopGrid service. It is specific (verb 'verify' + resource 'signed workspace chain') and differentiates from the standalone verifier, which is a separate offline tool. It also naturally distinguishes from sibling recording tools by being a verification action.

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

Usage Guidelines4/5

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

The description explicitly provides an alternative usage: for independent offline verification of an exported ZIP, use the standalone LoopGrid verifier. This implies the current tool is for online, connected verification. It doesn't explicitly address when to use sibling tools, but those are clearly different (recording actions), so the usage context is reasonably clear.

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. 6 tool updatesv0.1.0
    • First observedloopgrid.get_evidence
    • First observedloopgrid.record_action
    • First observedloopgrid.record_decision
    • First observedloopgrid.record_outcome
    • First observedloopgrid.record_review
    • First observedloopgrid.verify_evidence

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct stage in the evidence lifecycle: decision, review, action, outcome, retrieval, and verification. The descriptions clearly separate recording evidence from executing actions, so there is no real ambiguity between tools.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern with a uniform loopgrid. prefix. The record_* tools form a clear family, while get_evidence and verify_evidence follow the same predictable convention.

Tool Count5/5

Six tools is well-scoped for a focused governance/evidence server. Each tool earns its place and covers a necessary function without redundancy or bloat.

Completeness5/5

The tool set covers the full evidentiary workflow: capture decisions, record reviews, log actions, record outcomes, retrieve portable evidence, and verify integrity. There are no obvious dead ends for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Tamper-evident audit logging for AI decisions. Three tools (record_decision, verify_decision, list_decisions) write to a regulator-grade ledger built on AWS S3 Object Lock with 7-year retention. Designed for EU AI Act Article 12 and FCA SS1/23 evidence requirements. Try zero-config: npx audit-ledger-mcp boots in sandbox mode against a public hosted tenant.
    3
    46 npm
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Evidence-first delivery audit MCP server that evaluates task requirements against delivery evidence and returns a reproducible pass/needs_review/fail decision with a deterministic receipt.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides evidence-oriented MCP service for cryptographically identified agents, bounded public contracts, privacy-preserving records, and append-only audit.
    Apache 2.0