Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Spoolis

REMOTE · SPOOLIS.COM · 2 COMPONENTS · SCANNED SEP 24

Verify work against acceptance criteria; signed receipts attest what passed and was earned.

+3 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability60
  • AI-judged instruction clarity (fair).Partial
  • Tool/resource definitions use about 3300 tokens (~103/item across 32 items; 32 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 32 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 33 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Spoolis MCP server?

Spoolis is a hosted endpoint at https://spoolis.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · spoolis.com

# add to Claude Code
claude mcp add --transport http com-spoolis-mcp 'https://spoolis.com/api/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-spoolis-mcp": {
      "url": "https://spoolis.com/api/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-spoolis-mcp": {
      "type": "http",
      "url": "https://spoolis.com/api/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-spoolis-mcp]
url = "https://spoolis.com/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-spoolis-mcp": {
      "type": "remote",
      "url": "https://spoolis.com/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-spoolis-mcp --url 'https://spoolis.com/api/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-spoolis-mcp:
    url: "https://spoolis.com/api/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-spoolis-mcp": {
      "Transport": "http",
      "Url": "https://spoolis.com/api/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-spoolis-mcp -t streamable-http -u 'https://spoolis.com/api/mcp'
// mcp.json
{
  "mcpServers": {
    "com-spoolis-mcp": {
      "type": "http",
      "url": "https://spoolis.com/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1
    • Tool “run_sandbox_scenario” rewrote its description, which is the text the model reads security
    • Schema quality: fail → pass functional
    • Schema quality: good → fair functional
    • New tool “list_discrepancies” functional
    • New tool “list_facts” functional
    • New tool “list_matches” functional
    • New tool “list_sources” functional
    • New tool “open_discrepancy” functional
    • New tool “open_dispute” functional
    • New tool “request_review” functional
    • New tool “resolve_discrepancy” functional
    • New tool “run_matching” functional
    • New tool “sync_source” functional
    • New tool “add_source” functional
    • New tool “decide_review” functional
    • New tool “get_dispute” functional
    • New tool “get_review” functional
    • “create_spool” added an optional parameter “finality” cosmetic
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 0
    • Tool “get_receipt_status” rewrote its description, which is the text the model reads security
  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1
    • Tool “get_spool” rewrote its description, which is the text the model reads security
    • Tool “verify_result” rewrote its description, which is the text the model reads security
    • Tool “verify_spool” rewrote its description, which is the text the model reads security
    • New tool “get_receipt_status” functional
  • 9 Sept 26 +1
    • Tool “run_sandbox_scenario” rewrote its description, which is the text the model reads security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Sept 2026 · Probed https://spoolis.com/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=spoolis.com CN=YR2,O=Let's Encrypt,C=US 10 Aug 2026 8 Nov 2026 RSA 2048 SHA256-RSA 6a115f90b46e7be79eaa73a7f66d5331258
SANs: spoolis.com
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of spoolis.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
spoolis.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://spoolis.com/api/mcp Verified 200
http (plaintext) http://spoolis.com/api/mcp HTTPS enforced 308 https://spoolis.com/api/mcp
MCP tools · 32 exposed · ~3,266 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
abandon_spool ~62

Abandon an active Spool (the agreement object) before payment is committed. Use when the initiator no longer wants to proceed; this ends the agreement and cannot verify work or settle value. Works in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

accept_spool ~78

Confirm the compiled contract by accepting a proposed Spool (the agreement object). Use only after reviewing its terms and acceptance criteria; this records agreement acceptance but does not verify fulfillment or settle payment. Production agent agreements require the current quote digest. Works in the no-key sandbox.

NameTypeReqDescription
idstringyes
quote_digeststring

No output schema declared.

No examples provided.

add_source ~115

Add a source connection for a Spool (the agreement object). Use before ingestion; this creates a connection and does not ingest evidence. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
authobjectyes
configobjectyes
correction_semanticsstringyes
deletion_semanticsstringyes
kindstringyes
namestringyes
schema_versionstring
spool_idstring

No output schema declared.

No examples provided.

amend_spool ~93

Change acceptance criteria or unit-based earned-value rules on a proposed Spool (the agreement object). Use before acceptance when the draft does not match the intended purchase; this replaces proposal details and does not accept or verify the work. Works in the no-key sandbox.

NameTypeReqDescription
add_conditionsarray
idstringyes
remove_condition_idsarray
unitizationobject

No output schema declared.

No examples provided.

cancel_spool ~70

Cancel a Spool (the agreement object) that should not continue. Use only when cancellation is an allowed action; this changes lifecycle state and does not verify fulfillment or settle payment. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

commit_payment ~90

Ask the configured settlement adapter to authorize and, where supported, hold the maximum value for a Spool (the agreement object). Use after terms are accepted when the selected payment path requires commitment; this may create a payment authorization or hold, but does not verify work or determine earned value. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

compile_spool ~96

Turn purchase intent into a proposed DRAFT Spool (the agreement object) with explicit acceptance criteria and earned-value rules. Use before both parties confirm terms; do not use for one-call unilateral result verification. This creates a persisted draft to inspect, then accept_spool confirms it, amend_spool changes conditions or unitization, and abandon_spool discards it. Works in the no-key sandbox.

NameTypeReqDescription
sourcestringyes

No output schema declared.

No examples provided.

complete_spool ~72

Read a Spool (the agreement object) whose outcome is already completed. Use for compatibility when a completed result is expected; it has no side effects and does not run verification or settlement. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

create_counterparty_invite ~101

Create a 15-minute, single-use grant that lets the other party join a Spool (the agreement object). Use when a counterparty needs scoped access without signing in; do not use as payment authority. This creates a credential that expires after use or 15 minutes. Requires the initiator's full-scope key. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

create_spool ~224

Create a production Spool (the agreement object) from structured terms and acceptance criteria. Use when both parties will participate in the agreement lifecycle; do not use for one-call unilateral verification. This persists a proposed agreement and may send the counterparty invite reported in the response handoff block. The type field defaults to the person or business service path, while agent selects the agent settlement rail. Conditions may declare verification_method third_party with an external_judge so verification consumes your own evaluator's bound result instead of Spoolis judging those conditions. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
agreementobject
conditionsarrayyes
deliverableobjectyes
dispute_policyobject
economicsobject
finalityobject
gated_actionstring
gated_action_notestring
partiesarrayyes
termsarrayyes
typestring
valueobjectyes

No output schema declared.

No examples provided.

decide_review ~89

Decide a pending review for a Spool (the agreement object). Use after inspecting its evidence; this records confirmation or creates a dispute and does not settle payment. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
counter_evidencearray
reasonstringyes
review_idstringyes
verdictstringyes

No output schema declared.

No examples provided.

decline_spool ~69

Decline a proposed Spool (the agreement object). Use when the counterparty rejects its terms; this ends the proposal without accepting it, verifying work, or settling payment. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

get_dispute ~71

Read a dispute for a Spool (the agreement object). Use to inspect claimed, accepted, disputed, final, and payable figures plus resolution state; it has no side effects. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
dispute_idstringyes

No output schema declared.

No examples provided.

get_receipt_status ~74

Check whether an Outcome Receipt is still current or has been superseded, before acting on it. Returns state (current, superseded, unknown) and status (active, corrected, revoked). Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
receipt_idstringyes

No output schema declared.

No examples provided.

get_review ~59

Read the review request for a Spool (the agreement object). Use to poll its state; it has no side effects. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
review_idstringyes

No output schema declared.

No examples provided.

get_spool ~98

Read a Spool (the agreement object), including hash-covered evidence requirements, dispute policy, and salted unit identity configuration. Use for status checks; it has no side effects. A party named in who_may_dispute can supersede an issued receipt through POST /api/v1/receipts/{receipt_id}/supersede. There is no review queue or UI. Works in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

get_spool_events ~61

Read the canonical audit history for a Spool (the agreement object), including agreement, fulfillment, verification, and settlement events. Use to reconstruct what happened; it has no side effects. Works in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

list_discrepancies ~58

Read discrepancies for a Spool (the agreement object). Use for inspecting differences; it has no side effects. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

list_facts ~58

Read typed facts for a Spool (the agreement object). Use to inspect observed evidence; it has no side effects. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

list_matches ~57

Read matches for a Spool (the agreement object). Use to inspect outcomes and explanations; it has no side effects. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

list_sources ~50

Read source connections for a Spool (the agreement object). Use for source health inspection; it has no side effects. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

open_discrepancy ~130

Open a discrepancy for a Spool (the agreement object). Use when expected and observed figures do not reconcile; this records the difference and does not assume either source is wrong. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
expectedobjectyes
explanationstringyes
idstringyes
kindstringyes
linksobject
observedobjectyes
receipt_idstring
sandbox_session_idstring
unitinteger

No output schema declared.

No examples provided.

open_dispute ~99

Open a dispute for a Spool (the agreement object). Use inside its declared window; this records counter-evidence and marks policy-defined value as not currently final or payable. It does not restrict money. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
counter_evidencearray
reasonstringyes
receipt_idstringyes
scopeobjectyes

No output schema declared.

No examples provided.

propose_spool ~77

Move a draft Spool (the agreement object) into the proposed state so the counterparty can review it. Use after the acceptance criteria are ready; this changes agreement state and does not accept terms or settle payment. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

request_review ~107

Route receipt units from a Spool (the agreement object) or its whole outcome to a named reviewer. Use when a human decision is required; this creates a review request and hosted link but does not decide it. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
deadline_atstringyes
on_timeoutstringyes
receipt_idstringyes
reviewerobjectyes
scopeobjectyes

No output schema declared.

No examples provided.

resolve_discrepancy ~92

Resolve a discrepancy for a Spool (the agreement object). Use after authority determines the outcome; this records the resolution and does not initiate settlement. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
discrepancy_idstringyes
outcomestringyes
resolved_bystringyes
superseding_receipt_idstring

No output schema declared.

No examples provided.

run_matching ~59

Run matching for a Spool (the agreement object). Use after claims and facts exist; this records explainable results and discrepancies. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

run_sandbox_scenario ~189

Evaluate Spoolis without a key or account: run a seeded synthetic scenario through a real demo Spool (the agreement object), verification, and a signed demo Outcome Receipt. Use to observe which units may continue after verification and inspect seeded truth only after the Outcome exists. Scenarios: data_enrichment, external_judge_two_consumers, qualified_meetings, production_migration, review_and_dispute, and sources_and_matching. This persists only run parameters and aggregate results; modeled economics are labeled modeled. commercial_state opens and resolves a blocking discrepancy, proving the Outcome moves from uncertain back to accepted. Works in the no-key sandbox.

NameTypeReqDescription
adversarial_case_countinteger
defect_ratenumber
modeled_cost_per_unitnumber
record_countinteger
scenariostringyes
seedstring

No output schema declared.

No examples provided.

submit_evidence ~117

Attach fulfillment evidence to an acceptance criterion in a Spool (the agreement object). Use after work is delivered and before verification; this persists evidence but does not decide whether it passes or what was earned. Works in the no-key sandbox.

NameTypeReqDescription
claim_classstring
condition_idstringyes
idstringyes
metadataobject
on_behalf_ofstring
provenancestring
sourcestringyes
typestringyes

No output schema declared.

No examples provided.

sync_source ~59

Sync a source for a Spool (the agreement object). Use after configuration; this creates an idempotent checkpointed job. Production only: set SPOOLIS_API_KEY; not available in the no-key sandbox.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

verify_result ~382

Get a signed, durable, portable Outcome Receipt: a verdict artifact, per unit for unitized work, another system can fetch and independently verify. Spoolis makes it by verifying returned work against explicit acceptance criteria. Use when an agent, vendor, or tool reports work as done and the next action depends on whether the delivery actually met the agreed criteria. This runs in one call using exactly one of inline conditions or a locally registered recipe slug and hash, creating an inspectable unilateral Spool, the versioned acceptance policy. The maximum amount field is optional for verification-only runs. Omit it when nobody is paying; the earned amount is then zero and the receipt omits committed value. The maximum amount field is required when unit is present because unit math needs the cap. Recipe verification uses the hosted conditions exactly as written and fails closed when the hash differs. The external provider does not accept conditions in Spoolis. For a batch delivery where items can pass, fail, or remain uncertain individually, pass unit (its unit count matching the item count) AND evidence type dataset with exactly one row per delivered item, keeping a field present with a null value when it is missing; that returns distinct per-unit verdicts and earned value only for passing units. Text evidence with unit is batch-only and settles all-or-nothing. For a keyless production alternative, use POST /api/v1/verify/x402. Sandbox dataset evidence is limited to 100 records. Works in the no-key sandbox.

NameTypeReqDescription
conditionsstring|array
evidenceobjectyes
gated_actionstring
gated_action_notestring
idempotency_keystring
max_amount_centsinteger
recipeobject
settlementstring
unitobject

No output schema declared.

No examples provided.

verify_spool ~210

Issue a signed, durable, portable Outcome Receipt from this Spool, the versioned acceptance policy. The receipt is a verdict artifact, per unit for unitized work, another system can fetch and independently verify. Spoolis makes it by evaluating submitted evidence against the acceptance criteria and determining what was earned. Use after evidence is attached; this records the verdict and required evidence as present, missing, stale, unavailable, or provenance unsatisfied. Missing required evidence defaults to uncertain. Conditions with verification_method third_party keep your own judge: verification consumes the declared external evaluator's result, bound to this agreement and evidence per its declared proof requirement, instead of Spoolis judging those conditions itself. Unitized receipts may include salted public unit identities. Sandbox dataset evidence is limited to 100 records. Canonical recipe: compile -> verify -> Outcome Receipt -> verifyReceipt -> optional status check -> consumer acts on earned. Works in the no-key sandbox.

NameTypeReqDescription
confirmationsarray
idstringyes

No output schema declared.

No examples provided.

Common questions

What is the Spoolis MCP server?

Spoolis is an MCP server listed in the public MCP registry as com.spoolis/mcp. Verify work against acceptance criteria; signed receipts attest what passed and was earned. This page covers its hosted endpoint (https://spoolis.com/api/mcp).

Is the Spoolis MCP server safe to use?

Spoolis scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Spoolis MCP server expose?

Spoolis exposes 32 tools: verify_result, run_sandbox_scenario, compile_spool, create_spool, get_spool, and 27 more. Their descriptions and schemas cost roughly 3,266 tokens of context every time the server is loaded.

Does the Spoolis MCP server require authentication?

No. We connected to Spoolis without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Spoolis MCP server still maintained?

Spoolis is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.