{"schema_version":"verify.report.v1","generated_at":"2026-09-21T18:21:00.499040+00:00","snapshot_id":"trustsnap_68fa30b8aea9a664","server":{"namespace":"npm-spoolis","name":"mcp","title":"@spoolis/mcp","description":"Turn an agreement into verifiable acceptance criteria, verify fulfillment, and determine what was earned. Use Spoolis when payment depends on whether work actually passed. Produces signed outcome receipts: attestations of acceptance criteria, what passed,","homepage_url":"https://spoolis.com/docs/mcp","docs_url":"https://spoolis.com/docs/mcp","icon_url":null,"support_url":null,"remote_url":"https://spoolis.com/docs/mcp","server_card_url":null,"latest_version":"0.1.5","current_status":"unverified","current_score":null,"transport_type":"streamable-http","has_oauth":true,"has_dcr":false,"has_prompts":false,"tool_count":0,"current_validation_schema_version":"8058defc70ca932c","last_validated_at":"2026-09-21T15:52:52.567863+00:00","registry_source":"npm_package_discovery","registry_identifier":"npm_package_discovery:@spoolis/mcp","canonical_identifier":null,"current_score_components":{"auth_operability_score":2.0,"error_contract_score":0.0,"rate_limit_semantics_score":2.0,"schema_completeness_score":0.0,"backward_compatibility_score":4.0,"slo_health_score":0.0,"security_hygiene_score":0.0,"task_success_score":0.0,"trust_confidence_score":1.0,"prompt_contract_score":0.0,"resource_contract_score":0.0,"discovery_metadata_score":2.0,"registry_consistency_score":3.0,"installability_score":0.0,"session_semantics_score":0.0,"tool_surface_design_score":0.0,"result_shape_stability_score":0.0,"oauth_interop_score":4.0,"recovery_semantics_score":0.0,"maintenance_signal_score":3.0,"adoption_signal_score":2.0,"freshness_confidence_score":1.0,"transport_fidelity_score":1.0,"spec_recency_score":0.0,"session_resume_score":0.0,"step_up_auth_score":3.0,"transport_compliance_score":0.0,"utility_coverage_score":1.0,"advanced_capability_coverage_score":1.0,"connector_publishability_score":0.0,"tool_snapshot_churn_score":0.0,"connector_replay_score":0.0,"request_association_score":2.0,"interactive_flow_safety_score":3.0,"official_registry_presence_score":2.0,"provenance_divergence_score":4.0,"safety_transparency_score":3.0,"tool_capability_clarity_score":0.0,"data_exfiltration_resilience_score":0.0,"dependency_supply_chain_signal_score":1.0,"input_sanitization_safety_score":0.0,"tool_namespace_clarity_score":0.0},"capability_taxonomy":[],"machine_summary":{},"taxonomy_tags":[],"score_decomposition":[],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{},"request_association":{},"production_readiness":{"code":"metadata_only","label":"Metadata only","reason":"No live validation evidence exists yet for this entry.","badge":"score-low"},"recommended_for":[],"history_summary":{},"validation_timeline":[],"evidence_confidence":{"score":null,"label":"not_assessed","reason":"No evidence-bearing validation runs exist yet (11 captured checks, validation age 2.5 hours). Confidence cannot be computed.","live_check_count":11,"validation_age_hours":2.47,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":2.47,"freshness_threshold_hours":24}},"incident_feed":[],"disputes":[],"remediations":[],"client_remediation_modes":[],"client_profiles":[],"client_readiness_verdicts":[],"publishability_policy_profiles":[],"compatibility_fixtures":[],"install_snippets":{},"aliases":[],"raw_evidence":{"checks":{"probe_noise_resilience":{"status":"ok","latency_ms":244.68,"details":{"url":"https://spoolis.com/robots.txt","http_status":200,"headers":{"content-type":"text/plain","strict-transport-security":"max-age=63072000; includeSubDomains"},"validation_disallowed":false,"consent_error":null}},"server_card":{"status":"ok","latency_ms":186.76,"details":{"url":"https://spoolis.com/.well-known/mcp/server-card.json","payload":{"serverInfo":{"name":"com.spoolis/mcp","version":"0.1.5"},"authentication":{"required":false,"schemes":["bearer"],"description":"No key needed for the sandbox or the pay-per-verification x402 endpoint; spk_live_ API key for authenticated production."},"tools":[{"name":"verify_result","description":"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."},{"name":"run_sandbox_scenario","description":"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."},{"name":"compile_spool","description":"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."},{"name":"create_spool","description":"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."},{"name":"get_spool","description":"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."},{"name":"get_receipt_status","description":"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."},{"name":"request_review","description":"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."},{"name":"get_review","description":"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."},{"name":"decide_review","description":"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."},{"name":"open_dispute","description":"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."},{"name":"get_dispute","description":"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."},{"name":"list_discrepancies","description":"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."},{"name":"open_discrepancy","description":"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."},{"name":"resolve_discrepancy","description":"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."},{"name":"list_sources","description":"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."},{"name":"add_source","description":"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."},{"name":"sync_source","description":"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."},{"name":"list_facts","description":"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."},{"name":"run_matching","description":"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."},{"name":"list_matches","description":"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."},{"name":"create_counterparty_invite","description":"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."},{"name":"propose_spool","description":"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."},{"name":"accept_spool","description":"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."},{"name":"amend_spool","description":"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."},{"name":"abandon_spool","description":"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."},{"name":"decline_spool","description":"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."},{"name":"cancel_spool","description":"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."},{"name":"commit_payment","description":"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."},{"name":"submit_evidence","description":"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."},{"name":"verify_spool","description":"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."},{"name":"complete_spool","description":"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."},{"name":"get_spool_events","description":"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."}],"capabilities":{"acceptance":{"unitVerdicts":["pass","fail","uncertain"],"partialAcceptance":true,"uncertaintyHolds":true,"earningRule":"Only accepted units earn value. Per-unit earned value is accepted units multiplied by the agreed unit amount.","corrections":"A corrected receipt supersedes an earlier receipt without changing it.","nextActions":{"accepted":"The consumer may act under its own authorization and policy.","rejected":"Do not act on rejected units. Correct the work or evidence before verifying again.","uncertain":"Hold the action. Supply missing evidence or resolve the unavailable judgment before verifying again."}},"judges":{"checkerIds":["rows.count","schema.validate","nulls.absent","dedupe.check","url.format","url.reachable","json.path.equals","http.status","text.contains","file.present","hash.matches","metadata.read","dimensions.match","duration.matches","serial.match","deadline.met","claim.cited_by_evidence","human.confirm","human.accept","both.confirm","external.declared"],"deterministicCheckerIds":["rows.count","schema.validate","nulls.absent","dedupe.check","url.format","url.reachable","json.path.equals","http.status","text.contains","file.present","hash.matches","metadata.read","dimensions.match","duration.matches","serial.match","deadline.met"],"externalEvaluatorKinds":["external_service","zk_verifier","marketplace_evaluator","buyer_owned","ai_evaluator","human_arbitration"],"verdictShapes":["binary","scored_quality_consensus","per_unit"],"verdicts":["pass","fail","uncertain"],"proofRequirements":["signed","hashed_ref","declared"],"scoredMapping":{"inputs":["quality","consensus"],"range":[0,100],"thresholdsDeclaredInAgreement":true},"failSafe":"Missing or invalid required proof does not become acceptance. The declared policy returns uncertain or fail."},"outcomes":{"schema":"spoolis/outcome-receipt@1","signatureAlgorithm":"Ed25519","contentAddressedIds":true,"offlineVerification":true,"verifierPackages":[{"name":"@spoolis/receipt-verifier","language":"JavaScript"},{"name":"spoolis-receipt-verifier","language":"Python"}],"receipt":"/api/v1/receipts/{receipt_id}","status":"/api/v1/receipts/{receipt_id}/status","recordConsumption":"/api/v1/receipts/{receipt_id}/consumptions"},"reviews":{"request":"/api/v1/receipts/{receipt_id}/reviews","get":"/api/v1/reviews/{review_id}","decide":"/api/v1/reviews/{review_id}/decision","hosted":"/review/{token}","timeoutActions":["hold","reject","keep_accepted"]},"disputes":{"open":"/api/v1/receipts/{receipt_id}/disputes","get":"/api/v1/disputes/{dispute_id}","frozenValueModes":["freeze_all","freeze_disputed_value"],"escalations":["reverify","external_judge","none"]},"access":{"authentication":["API key bearer","Keyless x402 pay per call"],"verify":"/api/v1/verify","x402Verify":"/api/v1/verify/x402","sandbox":{"available":true,"session":"/api/sandbox/session","verify":"/api/sandbox/verify"},"mcp":{"hosted":"https://spoolis.com/api/mcp","discovery":"https://spoolis.com/.well-known/mcp.json","npm":"@spoolis/mcp"},"openApi":"https://spoolis.com/openapi.json","pricing":{"sandbox":{"free":true,"monthlyProductionAllowance":{"verificationRuns":10,"freeTextCompiles":10}},"billing":{"subscriptionRequired":false,"productionUsage":"Pay for production acceptance usage."},"meter":{"basis":"An acceptance run plus units processed.","bringYourOwnJudgeChangesMeter":false},"quote":{"beforeExecution":true,"lockedMaximum":true,"finalCharge":"The final charge can be lower than the quoted maximum, never higher."},"keyless":{"protocol":"x402","paysPerCall":true,"quotedPerCall":true,"baseComponentMicros":10000,"baseComponentUsd":"$0.010"},"aiAssisted":{"pricedSeparatelyPerUnit":true,"unitComponentMicros":10000,"unitComponentUsd":"$0.010"},"dependsOnUnderlyingTransactionValue":false,"freeOperations":["Receipt reads","Receipt status","Offline verification","Consumption recording"],"providerCosts":"External or provider costs pass through separately where applicable."}},"boundaries":["Spoolis is not a wallet or escrow service.","The acceptance core is rail-neutral: the signed Outcome never depends on how or whether money moves.","Some supported settlement adapters can act on an Outcome using delegated, expiring authority.","Spoolis does not hold root or threshold keys, does not commingle gross funds, and does not make the payment rail part of the acceptance result."],"neutrality":{"billing":{"neutral":true,"description":"Emits results billing systems consume. Creates no invoices or plans."},"rail":{"neutral":true,"description":"The signed Outcome never depends on how or whether money moves. Some supported settlement adapters can act on an Outcome using delegated, expiring authority."},"orchestration":{"neutral":true,"description":"Returns continue, retry, and hold sets. Never executes workflows."},"bringYourOwnJudge":true,"signedOutcomes":true,"downstreamConsumptionEndpoints":["/api/v1/receipts/{receipt_id}","/api/v1/receipts/{receipt_id}/status","/api/v1/receipts/{receipt_id}/consumptions"]},"limits":{"maxConditions":50,"maxUnits":100000,"maxEvidenceMetadataCharacters":8192,"maxOneShotEvidenceCharacters":5000000}}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"oauth_protected_resource":{"status":"ok","latency_ms":124.08,"details":{"url":"https://spoolis.com/.well-known/oauth-protected-resource","payload":{"resource":"https://spoolis.com/api/mcp/assistant","authorization_servers":["https://clerk.spoolis.com"],"scopes_supported":["read","propose"],"bearer_methods_supported":["header"]},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains"}}},"oauth_authorization_server":{"status":"ok","latency_ms":188.92,"details":{"url":"https://clerk.spoolis.com/.well-known/oauth-authorization-server","payload":{"issuer":"https://clerk.spoolis.com","authorization_endpoint":"https://clerk.spoolis.com/oauth/authorize","token_endpoint":"https://clerk.spoolis.com/oauth/token","revocation_endpoint":"https://clerk.spoolis.com/oauth/token/revoke","device_authorization_endpoint":"https://clerk.spoolis.com/oauth/device_authorization","jwks_uri":"https://clerk.spoolis.com/.well-known/jwks.json","response_types_supported":["code"],"grant_types_supported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"token_endpoint_auth_methods_supported":["client_secret_basic","none","client_secret_post"],"scopes_supported":["openid","profile","email","public_metadata","private_metadata","offline_access","propose","read"],"subject_types_supported":["public"],"id_token_signing_alg_values_supported":["RS256"],"claims_supported":["sub","iss","aud","exp","iat","email","name"],"service_documentation":"https://clerk.com/docs/oauth/scoped-access","ui_locales_supported":["en"],"op_tos_uri":"https://clerk.com/legal/standard-terms","code_challenge_methods_supported":["S256"],"client_id_metadata_document_supported":true,"authorization_response_iss_parameter_supported":true},"http_status":200,"headers":{"content-type":"application/json","set-cookie":"__cf_bm=9X0kJa6n29sb1.j4GJYyQWvv2_QFucLVp7voxaB06Bg-1790005972.121647-1.0.1.1-zLxsKSxREEYlVqxEWGKNZYZEORUiuVE9HbuVOwzxiqgHSm42ar09qSUA1wLbGgPVxH8wJsqDRLsTWQLVMk2JziKcMHrhQa7jLyfzJqy82JA1bWvEn32OlFcHNpL1cdR6; HttpOnly; SameSite=None; Secure; Path=/; Domain=clerk.spoolis.com; Expires=Mon, 21 Sep 2026 16:22:52 GMT, _cfuvid=Eq7.ew9xODPmY4X_iGSUmDQnfBV.BbjGrQTnUG9VJGg-1790005972.121647-1.0.1.1-uSoAYw9ZYjTCC6TsBXp3GaTkKWD96pIMJG7G0AEhYxI; HttpOnly; SameSite=None; Secure; Path=/; Domain=clerk.spoolis.com","strict-transport-security":"max-age=63072000;"}}},"openid_configuration":{"status":"ok","latency_ms":78.13,"details":{"url":"https://clerk.spoolis.com/.well-known/openid-configuration","payload":{"issuer":"https://clerk.spoolis.com","authorization_endpoint":"https://clerk.spoolis.com/oauth/authorize","token_endpoint":"https://clerk.spoolis.com/oauth/token","revocation_endpoint":"https://clerk.spoolis.com/oauth/token/revoke","introspection_endpoint":"https://clerk.spoolis.com/oauth/token_info","userinfo_endpoint":"https://clerk.spoolis.com/oauth/userinfo","device_authorization_endpoint":"https://clerk.spoolis.com/oauth/device_authorization","jwks_uri":"https://clerk.spoolis.com/.well-known/jwks.json","scopes_supported":["email","profile","public_metadata","private_metadata","openid","offline_access","propose","read"],"response_types_supported":["code"],"response_modes_supported":["form_post","query"],"grant_types_supported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"subject_types_supported":["public"],"id_token_signing_alg_values_supported":["RS256"],"token_endpoint_auth_methods_supported":["client_secret_basic","none","client_secret_post"],"claims_supported":["exp","iat","email","given_name","family_name","sub","aud","iss","email_verified","name","preferred_username","picture"],"code_challenge_methods_supported":["S256"],"backchannel_logout_supported":false,"frontchannel_logout_supported":false,"authorization_response_iss_parameter_supported":true},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000;"}}},"initialize":{"status":"error","latency_ms":246.17,"details":{"url":"https://spoolis.com/docs/mcp","error":"Non-MCP content type: text/html; charset=utf-8","non_mcp_content_type":"text/html; charset=utf-8"}},"protocol_version_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_protocol_version","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25"}},"tools_list":{"status":"skipped","latency_ms":null,"details":{"reason":"initialize_unreachable"}},"prompts_list":{"status":"skipped","latency_ms":null,"details":{"reason":"initialize_unreachable"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"skipped","latency_ms":null,"details":{"reason":"initialize_unreachable"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"determinism_probe":{"status":"skipped","latency_ms":null,"details":{"reason":"initialize_unreachable"}},"instruction_tool_reference_probe":{"status":"not_assessed","latency_ms":null,"details":{"reason":"initialize_or_tools_unavailable"}},"session_resume_probe":{"status":"skipped","latency_ms":null,"details":{"reason":"initialize_unreachable"}},"step_up_auth_probe":{"status":"warning","latency_ms":null,"details":{"oauth_present":true,"auth_required_checks":[],"supported_scopes":["email","offline_access","openid","private_metadata","profile","propose","public_metadata","read"],"scope_specificity_ratio":0.2222,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"skipped","latency_ms":null,"details":{"reason":"initialize_unreachable"}},"utility_coverage_probe":{"status":"warning","latency_ms":null,"details":{"completions":{"advertised":true,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"skipped","http_status":null},"initialize_capability_keys":[]}},"advanced_capabilities_probe":{"status":"warning","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":false,"completions":true,"roots":true,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":2,"enabled":["completions","roots"],"initialize_capability_keys":[]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_tools"}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_tools"}},"request_association_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id_for_idle_observation","advertised_capabilities":["roots"],"protocol_version":"2025-03-26"}},"interactive_flow_probe":{"status":"ok","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":true,"prompt_available":false}},"action_safety_probe":{"status":"not_assessed","latency_ms":null,"details":{"summary":{"tool_count":0,"high_risk_tools":0,"destructive_tools":0,"exec_tools":0,"egress_tools":0,"secret_tools":0,"bulk_access_tools":0,"declared_non_read_only_tools":0,"annotation_conflict_tools":0,"risk_distribution":{"low":0,"medium":0,"high":0,"critical":0},"capability_distribution":{},"has_mutating_capability":false,"has_non_read_capability":false},"auth_present":true,"safeguard_count":0,"confirmation_signals":[],"reason":"empty_observation_set"}},"official_registry_probe":{"status":"missing","latency_ms":null,"details":{"registry_source":"npm_package_discovery","direct_match":false,"official_peer_count":0}},"provenance_divergence_probe":{"status":"ok","latency_ms":null,"details":{"direct_official_match":false,"registry_title":"@spoolis/mcp","server_card_title":"com.spoolis/mcp","registry_version":"0.1.5","server_card_version":"0.1.5","registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":3,"compared_fields":["title","version","homepage","repository"],"readable_sources":["registry","server_card"],"comparable_field_count":2}},"schema_divergence_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_live_tools","compared_tool_count":0,"compared_dimensions":["server_name","server_version","declared_vs_observed_auth","tool_membership","parameter_names","required_parameters","parameter_types","output_schema_presence"],"server_name_mismatch":false,"card_server_name":"com.spoolis/mcp","live_server_name":null,"server_version_mismatch":false,"card_server_version":"0.1.5","live_server_version":null,"auth_scheme_mismatch":true}},"connector_publishability_probe":{"status":"error","latency_ms":null,"details":{"transport":"streamable-http","tool_count":0,"high_risk_tools":0,"blockers":["initialize","tools_list","protocol_version","session_resume","step_up_auth","transport_compliance","connector_replay","request_association","action_safety","tool_surface","auth_flow"],"criteria":{"remote_transport":true,"initialize":false,"tools_list":false,"protocol_version":false,"session_resume":false,"step_up_auth":false,"transport_compliance":false,"connector_replay":false,"request_association":false,"action_safety":false,"server_card":true,"tool_surface":false,"auth_flow":false}}}}},"active_alerts":[{"code":"registry_endpoint_invalid","severity":"medium","title":"Registry endpoint does not serve MCP","message":"The npm_package_discovery entry's remote_url returns non-MCP content (text/html; charset=utf-8), not a validation finding about this server.","addressee":"registry"}],"maintainer_analytics":{},"public_server_reputation":{},"maintainer_response_quality":{},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{},"tool_security_inventory":[],"transport_compliance":{},"utility_coverage":{},"write_action_governance":{},"provenance_divergence":{},"alias_consolidation":{},"alert_routing":{},"authenticated_validation":{},"hosted_runtime":{},"action_controls_diff":null,"benchmark_tasks":[],"latest_capability_counts":{},"point_loss_breakdown":[],"verdict_traces":{},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_68fa30b8aea9a664","generated_at":"2026-09-21T18:21:00.505808+00:00","trust_evaluated_at":"2026-09-21T18:21:00.505808+00:00","evidence_revision":"a060d3f583bdc96b92a195e9","source":"current_snapshot","server":"npm-spoolis/mcp","last_validated_at":"2026-09-21T15:52:52.567863+00:00","validation_age_hours":2.47,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-21T15:52:52.567863+00:00","age_hours":2.47,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"unverified","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"metadata_only","label":"Metadata only","reason":"No live validation evidence exists yet for this entry."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":2.47,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":2.47,"freshness_threshold_hours":24}},"active_alerts":[{"code":"registry_endpoint_invalid","severity":"medium","title":"Registry endpoint does not serve MCP"}],"active_alert_summary":{"critical":0,"high":0,"medium":1,"low":0,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-21T18:21:00.505808+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_68fa30b8aea9a664","generated_at":"2026-09-21T18:21:00.505808+00:00","trust_evaluated_at":"2026-09-21T18:21:00.505808+00:00","evidence_revision":"a060d3f583bdc96b92a195e9","source":"current_snapshot","server":"npm-spoolis/mcp","last_validated_at":"2026-09-21T15:52:52.567863+00:00","validation_age_hours":2.47,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-21T15:52:52.567863+00:00","age_hours":2.47,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"unverified","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"metadata_only","label":"Metadata only","reason":"No live validation evidence exists yet for this entry."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":2.47,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":2.47,"freshness_threshold_hours":24}},"active_alerts":[{"code":"registry_endpoint_invalid","severity":"medium","title":"Registry endpoint does not serve MCP"}],"active_alert_summary":{"critical":0,"high":0,"medium":1,"low":0,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-21T18:21:00.505808+00:00"}},"agent_commerce":{},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"trust_evaluated_at":"2026-09-21T18:21:00.505808+00:00","evidence_revision":"a060d3f583bdc96b92a195e9","active_alert_summary":{"critical":0,"high":0,"medium":1,"low":0,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-21T18:21:00.505808+00:00"},"owner_opted_out":false},"latest_validation":null,"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_68fa30b8aea9a664","generated_at":"2026-09-21T18:21:00.505808+00:00","trust_evaluated_at":"2026-09-21T18:21:00.505808+00:00","evidence_revision":"a060d3f583bdc96b92a195e9","source":"current_snapshot","server":"npm-spoolis/mcp","last_validated_at":"2026-09-21T15:52:52.567863+00:00","validation_age_hours":2.47,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-21T15:52:52.567863+00:00","age_hours":2.47,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"unverified","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"metadata_only","label":"Metadata only","reason":"No live validation evidence exists yet for this entry."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":2.47,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":2.47,"freshness_threshold_hours":24}},"active_alerts":[{"code":"registry_endpoint_invalid","severity":"medium","title":"Registry endpoint does not serve MCP"}],"active_alert_summary":{"critical":0,"high":0,"medium":1,"low":0,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-21T18:21:00.505808+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_68fa30b8aea9a664","generated_at":"2026-09-21T18:21:00.505808+00:00","trust_evaluated_at":"2026-09-21T18:21:00.505808+00:00","evidence_revision":"a060d3f583bdc96b92a195e9","source":"current_snapshot","server":"npm-spoolis/mcp","last_validated_at":"2026-09-21T15:52:52.567863+00:00","validation_age_hours":2.47,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-21T15:52:52.567863+00:00","age_hours":2.47,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"unverified","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"metadata_only","label":"Metadata only","reason":"No live validation evidence exists yet for this entry."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":2.47,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":2.47,"freshness_threshold_hours":24}},"active_alerts":[{"code":"registry_endpoint_invalid","severity":"medium","title":"Registry endpoint does not serve MCP"}],"active_alert_summary":{"critical":0,"high":0,"medium":1,"low":0,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-21T18:21:00.505808+00:00"}},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"npm-spoolis/mcp","ok":true,"surface_snapshot_ids":{"page":"trustsnap_68fa30b8aea9a664","badge":null,"report":"trustsnap_68fa30b8aea9a664","policy":null},"checked_surfaces":["page","report"],"unchecked_surfaces":["badge","policy"],"checked_count_surfaces":[],"count_mismatches":{},"checked_at":"2026-09-21T18:21:00.499329+00:00"},"history":{},"production_readiness":{"code":"metadata_only","label":"Metadata only","reason":"No live validation evidence exists yet for this entry.","badge":"score-low"},"agent_commerce_readiness":{},"evidence_confidence":{"score":null,"label":"not_assessed","reason":"No evidence-bearing validation runs exist yet (11 captured checks, validation age 2.5 hours). Confidence cannot be computed.","live_check_count":11,"validation_age_hours":2.47,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":2.47,"freshness_threshold_hours":24}},"recommended_for":[],"active_alerts":[{"code":"registry_endpoint_invalid","severity":"medium","title":"Registry endpoint does not serve MCP","message":"The npm_package_discovery entry's remote_url returns non-MCP content (text/html; charset=utf-8), not a validation finding about this server.","addressee":"registry"}],"remediations":[],"cache_note":"Fast fallback response; full report evidence is deferred to protect web capacity. Fields listed in fields_unavailable (including tool_security_inventory, and write_action_governance) are not yet computed on this response -- an empty value means unchecked, not confirmed clean. Treat partial responses as indeterminate.","publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=npm-spoolis%2Fmcp&source=report_json","reason_code":"claim_to_publish_metadata","reason":"Claim this profile to verify publisher identity, add evidence, and manage trust metadata.","score_neutral":true},"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=npm-spoolis%2Fmcp","trust_summary":"/v1/servers/npm-spoolis/mcp/trust-summary","ledger":"/v1/servers/npm-spoolis/mcp/ledger","policy":"/v1/servers/npm-spoolis/mcp/policy","report":"/v1/servers/npm-spoolis/mcp/report"},"intelligence_api":{"available":true,"signup_url":"https://verify.sentinelsignal.io/verify-intelligence-api","use_case":"Programmatic MCP server trust, comparison, policy, and evidence enrichment."},"trust_evaluated_at":"2026-09-21T18:21:00.505808+00:00","evidence_revision":"a060d3f583bdc96b92a195e9","active_alert_summary":{"critical":0,"high":0,"medium":1,"low":0,"high_or_critical":0,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-21T18:21:00.505808+00:00"}}