MCP Bill of Materials
A machine-readable inventory of what this server exposes and depends on: tools with their effects, transports, packages, findings and provenance (schema version 1.0). Third-party text in it is escaped. Also available from the REST API at /api/v1/servers/c35aa49e-86c8-4acd-99aa-9c9c8ffabeeb/mcbom.
MCP Bill of Materials
root{21}
schema_version: "1.0"
bom_format: "squatch-mcbom"
generator{3}
name: "squatch-mcp"
classifier_version: "rules_v1@2026-10-11.1"
unicode_version: "18.0.0"
server{7}
name: "dev.spendctl/spendctl"
title: "spendctl"
description: "Spend policy for AI agents that pay (x402, MPP). Login-free sandbox, real sidecar, no real funds."
version: "0.1.0"
homepage_url: "https://spendctl.dev/docs/sandbox/"
source: "official_registry"
upstream_status: "active"
publisher{4}
namespace: "dev.spendctl"
display_name: "dev.spendctl"
type: "registry_namespace"
status: "unclaimed"
organization: null
repository: null
packages[0]
transports[1]
0{5}
kind: "remote"
type: "streamable-http"
endpoint_url: "https://mcp.spendctl.dev/mcp"
endpoint_host: "mcp.spendctl.dev"
auth_type: "none"
auth{3}
type: "none"
authorization_servers[0]
scopes[0]
protocol{4}
era: "modern"
negotiated_version: "2026-07-28"
supported_versions[0]
transport_type: "streamable-http"
tools[8]
0{9}
name: "approve"
title: "Approve or deny a held sandbox payment"
effect: "WRITE"
effect_confidence: 0.917
capabilities[2]
0{2}
capability: "FINANCIAL_TRANSACTION"
confidence: 0.854
1{2}
capability: "PAYMENT"
confidence: 0.856
risk_severity: "HIGH"
fingerprint: "510122b03682aec758415d5d58b67e2864c5af3bc951d8ec9c88e68004509693"
input_schema_fingerprint: "783f1d33dc39606a315e73547874af8b521810ff94a5fddd2f3b2d42fc57afe6"
annotations{5}
title: "Approve or deny a held sandbox payment"
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: false
1{9}
name: "await_approval"
title: "Wait for a held sandbox payment's decision"
effect: "READ"
effect_confidence: 0.32
capabilities[1]
0{2}
capability: "PAYMENT"
confidence: 0.831
risk_severity: "LOW"
fingerprint: "dbea4b866e425a4a42e7fddb4c9da936fcfac9e0111408be2597c2d114e8683c"
input_schema_fingerprint: "79d857a42515b8bc07cca93e91307cd6a7ce8099c304fc203fcd20de3e593067"
annotations{5}
title: "Wait for a held sandbox payment's decision"
readOnlyHint: true
destructiveHint: null
idempotentHint: null
openWorldHint: false
2{9}
name: "check_budget"
title: "Check remaining budget"
effect: "READ"
effect_confidence: 0.921
capabilities[0]
risk_severity: "INFO"
fingerprint: "563da759366b84d8998c4f68b785f0d90a1fdf708fe601507214331c95f93446"
input_schema_fingerprint: "f5628088ca2a44c566f20db884f3cec20911ca4630d36fcdec863ca6bff7e187"
annotations{5}
title: "Check remaining budget"
readOnlyHint: true
destructiveHint: null
idempotentHint: null
openWorldHint: false
3{9}
name: "get_policy"
title: "Show the sandbox policy"
effect: "READ"
effect_confidence: 0.921
capabilities[0]
risk_severity: "INFO"
fingerprint: "116a34edb7684604e884f67d1964fed97ae9bbc0ca948d3d8d909bfc30faf475"
input_schema_fingerprint: "f5628088ca2a44c566f20db884f3cec20911ca4630d36fcdec863ca6bff7e187"
annotations{5}
title: "Show the sandbox policy"
readOnlyHint: true
destructiveHint: null
idempotentHint: null
openWorldHint: false
4{9}
name: "list_receipts"
title: "List receipts"
effect: "READ"
effect_confidence: 0.933
capabilities[1]
0{2}
capability: "PAYMENT"
confidence: 0.617
risk_severity: "LOW"
fingerprint: "a3da767348a821018d238892b6561519f88606f93869da585d221c050e72960a"
input_schema_fingerprint: "169186b8c02a61a36135314fbed1a208f69e48dfba9e81354c6576ccad5bf7d9"
annotations{5}
title: "List receipts"
readOnlyHint: true
destructiveHint: null
idempotentHint: null
openWorldHint: false
5{9}
name: "sandbox_create"
title: "Create a spendctl sandbox"
effect: "WRITE"
effect_confidence: 0.835
capabilities[0]
risk_severity: "LOW"
fingerprint: "556f57e68beaa14da32dcc5fe0dbfc336afc4440f96754f5834181855ec90b41"
input_schema_fingerprint: "77c4daeec2de3114e386ec5c726ca28527632ea43e2aec2fc9726a1d1a1899c6"
annotations{5}
title: "Create a spendctl sandbox"
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
6{9}
name: "sandbox_pay"
title: "Fetch a paid sandbox URL"
effect: "WRITE"
effect_confidence: 0.639
capabilities[2]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.907
1{2}
capability: "PAYMENT"
confidence: 0.859
risk_severity: "MEDIUM"
fingerprint: "6ce74447e1feec71ed39b6db409e891186a8dc80f2962ad0ac87f45d98eb2be6"
input_schema_fingerprint: "76245215c233138a65f2e1552f270fe7694a9843e522e2c717fe857ac494bb74"
annotations{5}
title: "Fetch a paid sandbox URL"
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
7{9}
name: "withdraw_approval"
title: "Withdraw a held sandbox payment"
effect: "WRITE"
effect_confidence: 0.848
capabilities[2]
0{2}
capability: "FINANCIAL_TRANSACTION"
confidence: 0.8
1{2}
capability: "PAYMENT"
confidence: 0.831
risk_severity: "HIGH"
fingerprint: "259acd9d50d715ee3deb9cb260cda040977624beb48852444f3a939133273485"
input_schema_fingerprint: "e1d43660d09a76ffb4e3549fdcffd3424ee42178c322ee927249ac10dfb7152f"
annotations{5}
title: "Withdraw a held sandbox payment"
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: false
resources[0]
prompts[0]
extensions[0]
data{6}
privacy_completeness: "not_provided"
data_categories[0]
ai_training: null
retention_policy: null
processing_regions[0]
subprocessors[0]
external_integrations[1]
0{3}
host: "mcp.spendctl.dev"
registrable_domain: "spendctl.dev"
source: "transport"
findings[5]
0{6}
check_id: "SQ-REPO-MISSING"
category: "provenance"
severity: "LOW"
title: "No source repository linked"
subject_type: "server"
subject_name: null
1{6}
check_id: "SQ-SERVER-AUTH-NONE-WRITE"
category: "authentication"
severity: "MEDIUM"
title: "State-changing tools available without authentication"
subject_type: "server"
subject_name: null
2{6}
check_id: "SQ-SERVER-INSTRUCTIONS-INJECTION"
category: "prompt_injection"
severity: "MEDIUM"
title: "Server instructions contain directives to the AI model"
subject_type: "server"
subject_name: null
3{6}
check_id: "SQ-TOOL-CROSS-TOOL-REFERENCE"
category: "prompt_injection"
severity: "CRITICAL"
title: "Gives instructions about other tools"
subject_type: "tool"
subject_name: "sandbox_create"
4{6}
check_id: "SQ-TOOL-EXFIL-DIRECTIVE"
category: "prompt_injection"
severity: "CRITICAL"
title: "Asks the AI model to pass conversation data or secrets"
subject_type: "tool"
subject_name: "sandbox_create"
trust{9}
registry_namespace: "verified_upstream"
publisher_identity: "unverified"
organization: "unverified"
domain: "unverified"
repository: "not_provided"
source_provenance: "unknown"
security_scan: "findings_detected"
privacy_transparency: "not_provided"
monitoring: "active"
provenance{4}
registry_name: "dev.spendctl/spendctl"
registry_content_sha256: "7a2bc7bc2c30fc76d7742891974d1c88e7be3332e3f331dd286ed2c8d2c13697"
scan_snapshot_fingerprint: "6ae6f019f1f801a4d0130b26abe896570bec50fbd73ba818cc679f168d02cba0"
scanner_version: "1.0.0"
timestamps{4}
generated_at: "2026-11-15T03:10:50.237Z"
observed_at: "2026-11-14T06:24:30.2+00:00"
registry_published_at: "2026-10-26T08:59:19.33071+00:00"
registry_updated_at: null