{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_qq42s924jkkh","handle":"physical-capability-cloud","url":"https://wellknown.network/agents/physical-capability-cloud","links":{"self":"https://wellknown.network/agents/physical-capability-cloud/record.json","html":"https://wellknown.network/agents/physical-capability-cloud","markdown":"https://wellknown.network/agents/physical-capability-cloud/record.md","api":"https://wellknown.network/api/v1/agents/physical-capability-cloud","status":"https://wellknown.network/api/v1/agents/physical-capability-cloud/status","claim":"https://wellknown.network/agents/physical-capability-cloud/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/physical-capability-cloud/claim.json","badge":"https://wellknown.network/agents/physical-capability-cloud/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/physical-capability-cloud/history","tools":"https://wellknown.network/api/v1/agents/physical-capability-cloud/tools"},"ard":{"identifier":"urn:air:capability.network:server:physical-capability-cloud","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Physical Capability Cloud","summary":"Discover, hire, and verify real-world physical capability through MCP.","description":"Discover, hire, and verify real-world physical capability through MCP.","publisher":{"name":"network.capability","url":null},"homepage":"https://capability.network","repository":"https://github.com/LamaSu/physical-capability-cloud","version":"2.19.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://capability.network/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-13T22:13:19.77255Z","publishedAt":"2026-07-13T22:13:19.77255Z","registryName":"network.capability/physical-capability-cloud"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.992,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.977,"provenance":"derived"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":0.583,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.525,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.525,"provenance":"derived"}],"categories":["automation","commerce","data","dev","documents","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-12T11:24:43.042Z","lastProbedAt":"2026-10-12T11:24:43.042Z","statusComputedAt":"2026-10-12T11:26:03.292Z","reliability30d":{"probes":112,"successRate":1,"p50Ms":214,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":110,"ok":110,"authBoundaryOk":0,"serviceOk":110,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-12T11:24:43.042Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1186,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T05:26:03.049Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":183,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T23:22:12.705Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":169,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T17:23:32.694Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1171,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T11:24:05.973Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":195,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T05:26:06.219Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":314,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T23:22:12.007Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":180,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T16:33:04.283Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":180,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T10:29:27.675Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":233,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T04:32:52.196Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":207,"error":null,"detail":{"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"toolCount":256,"toolsHash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","serverName":"Physical Capability Cloud","capabilities":["tools","resources"],"serverVersion":"2.19.3+sha256.737720f44f32d183f5cf0dce0d","protocolVersion":"2025-06-18"}}],"tools":[{"name":"provision_api_key","description":"CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer <key>' on all subsequent reque"},{"name":"list_api_keys","description":"List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires "},{"name":"revoke_api_key","description":"Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID."},{"name":"setup_detect","description":"Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing befor"},{"name":"setup_generate_config","description":"Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment."},{"name":"setup_validate","description":"Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings."},{"name":"setup_register_device","description":"Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterTyp"},{"name":"setup_test_job","description":"Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result."},{"name":"setup_status","description":"Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live."},{"name":"list_capability_types","description":"List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata."},{"name":"search_capabilities","description":"Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability."},{"name":"get_build_options","description":"Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price."},{"name":"calculate_price","description":"Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost."},{"name":"build_contract","description":"Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address."},{"name":"list_kernels","description":"List all Shop Kernels on the network with status and capability types. Optionally filter by status."},{"name":"get_kernel","description":"Get kernel details including full capability objects, devices, and queue."},{"name":"get_kernel_devices","description":"List all devices registered under a specific kernel, including adapter configs and device types."},{"name":"get_kernel_jobs","description":"List all jobs submitted to a specific kernel, including job status and progress."},{"name":"create_kernel","description":"Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow."},{"name":"list_jobs","description":"List all jobs with status. Optionally filter by kernelId or status."},{"name":"get_job","description":"Get job details including progress, evidence bundles, and milestones."},{"name":"update_job_status","description":"Update a job's status and optional progress percentage. Used by kernels to report job progress."},{"name":"list_escrows","description":"List escrow contracts with milestones and bonds. Optionally filter by status."},{"name":"get_escrow","description":"Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain."},{"name":"get_escrow_chain_state","description":"Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts."},{"name":"get_escrow_events","description":"Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events."},{"name":"get_token_balance","description":"Read an ERC-20 token balance for an account address from the blockchain."},{"name":"get_token_allowance","description":"Read the ERC-20 token allowance granted by an owner to a spender from the blockchain."},{"name":"get_escrow_dispute","description":"Read dispute state for a specific milestone from the blockchain."},{"name":"get_write_status","description":"Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address."},{"name":"fund_escrow","description":"Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step)"},{"name":"release_milestone","description":"Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash."},{"name":"file_escrow_dispute","description":"File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash."},{"name":"deposit_bond","description":"Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash."},{"name":"submit_evidence_hash","description":"Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash."},{"name":"submit_attestation","description":"Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash."},{"name":"archive_evidence","description":"Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID."},{"name":"get_evidence_bundle","description":"Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules."},{"name":"grant_evidence_access","description":"Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient."},{"name":"list_evidence_grants","description":"List all evidence access grants for an address. Returns bundles the address has been granted access to."},{"name":"archive_encrypted_bundle","description":"Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived."},{"name":"get_bundle_ipfs","description":"Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available."},{"name":"retrieve_ipfs","description":"Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage."},{"name":"get_lit_conditions","description":"Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption."},{"name":"lit_decrypt","description":"Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload."},{"name":"verify_evidence_zk","description":"Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs."},{"name":"commit_evidence","description":"Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance."},{"name":"get_telemetry_stats","description":"Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs."},{"name":"get_active_telemetry","description":"List currently active jobs with their current pipeline phase and telemetry status."},{"name":"get_job_telemetry","description":"Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata."},{"name":"get_telemetry_logs","description":"Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search."},{"name":"emit_telemetry","description":"Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress."},{"name":"submit_for_human_verification","description":"Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs."},{"name":"get_verification_assignments","description":"Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to."},{"name":"get_verification_status","description":"Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count."},{"name":"respond_to_verification","description":"Submit a verifier's verdict for a verification request. Returns consensus state after this vote."},{"name":"dispute_verification","description":"File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID."},{"name":"register_capability_ip","description":"Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used."},{"name":"register_job_evidence_ip","description":"Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use."},{"name":"distribute_royalties","description":"Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100."},{"name":"pay_ip_royalty","description":"Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits."},{"name":"claim_ip_revenue","description":"Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash."},{"name":"get_ip_revenue","description":"Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments."},{"name":"get_ip_lineage","description":"Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations."},{"name":"get_capability_ip","description":"Get the Story Protocol IP registration for a capability by its capability ID."},{"name":"raise_ip_dispute","description":"Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason."},{"name":"list_protocols","description":"List protocol templates in the library. Filter by tags, required capabilities, search query, or status."},{"name":"get_protocol","description":"Get protocol template details by ID. Returns steps, transfers, parameters, and metadata."},{"name":"create_protocol","description":"Create a new protocol template draft. Returns the new template ID."},{"name":"update_protocol","description":"Update an existing protocol template (must be in draft status). Returns updated name and version."},{"name":"publish_protocol","description":"Publish a draft protocol template, making it visible in the protocol library for others to discover and use."},{"name":"fork_protocol","description":"Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID."},{"name":"get_protocol_forks","description":"List all forks of a protocol template. Shows who forked it and what parameters they changed."},{"name":"validate_protocol","description":"Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility."},{"name":"list_protocol_runs","description":"List protocol runs. Filter by status or kernelId."},{"name":"get_protocol_run","description":"Get protocol run status including step progress, transfer status, current phase, and evidence hashes."},{"name":"create_protocol_run","description":"Instantiate a protocol template as a run on a specific kernel with given parameter values."},{"name":"start_protocol_run","description":"Start execution of a protocol run that is in 'ready' or 'binding' state."},{"name":"pause_protocol_run","description":"Pause a running protocol run. Use resume_protocol_run to continue."},{"name":"resume_protocol_run","description":"Resume a paused protocol run from where it stopped."},{"name":"cancel_protocol_run","description":"Cancel a protocol run. Cannot be cancelled once completed or already cancelled."},{"name":"get_workflows","description":"List active instrument workflows in the orchestrator. Optionally filter by status."},{"name":"get_workflow","description":"Get detailed workflow information including steps, node assignments, and progress."},{"name":"get_transfer_graphs","description":"Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels."},{"name":"list_automation_status","description":"List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId."},{"name":"get_automation_status","description":"Get automation status for a specific instrument-to-instrument transfer pair."},{"name":"record_episode","description":"Record a transfer episode for a node pair. Increments episode count toward VLA training threshold."},{"name":"advance_automation","description":"Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episod"},{"name":"list_transfer_agents","description":"List all transfer agents (robots and human operators) available for instrument-to-instrument transfers."},{"name":"get_logistics_overview","description":"Logistics hub overview: active shipments, pending installations, and upcoming bookings."},{"name":"get_shipments","description":"List equipment shipments with tracking status. Optionally filter by status."},{"name":"create_shipment","description":"Create a new equipment shipment with origin, destination, package details, and provider."},{"name":"get_shipment_quote","description":"Get shipping quotes from logistics providers based on origin, destination, weight, and priority."},{"name":"get_installations","description":"List equipment installation orders with step progress and status."},{"name":"get_space_bookings","description":"List space bookings for hosting equipment. Optionally filter by status or space."},{"name":"search_spaces","description":"Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements."},{"name":"get_space","description":"Get detailed information about a hosting space including power, amenities, safety features, and pricing."},{"name":"match_spaces","description":"Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches."},{"name":"get_marketplace_overview","description":"Equipment marketplace overview with demand/supply metrics across all capability types."},{"name":"get_equipment_classes","description":"List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing."}],"package":null,"toolSurface":{"id":"ts_z46qsffep7sn","endpointId":"ep_zzkqfxxatw8t","hash":"67ed4b3ba228709e0eab196d864824348956d5800edf648498a7b38a4dd2e9f3","toolCount":200,"serverName":"Physical Capability Cloud","serverVersion":"2.19.3","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-04T02:29:36.929Z","lastSeenAt":"2026-10-12T11:24:43.045Z","observations":32,"toolNames":["provision_api_key","list_api_keys","revoke_api_key","setup_detect","setup_generate_config","setup_validate","setup_register_device","setup_test_job","setup_status","list_capability_types","search_capabilities","get_build_options","calculate_price","build_contract","list_kernels","get_kernel","get_kernel_devices","get_kernel_jobs","create_kernel","list_jobs","get_job","update_job_status","list_escrows","get_escrow","get_escrow_chain_state","get_escrow_events","get_token_balance","get_token_allowance","get_escrow_dispute","get_write_status","fund_escrow","release_milestone","file_escrow_dispute","deposit_bond","submit_evidence_hash","submit_attestation","archive_evidence","get_evidence_bundle","grant_evidence_access","list_evidence_grants","archive_encrypted_bundle","get_bundle_ipfs","retrieve_ipfs","get_lit_conditions","lit_decrypt","verify_evidence_zk","commit_evidence","get_telemetry_stats","get_active_telemetry","get_job_telemetry","get_telemetry_logs","emit_telemetry","submit_for_human_verification","get_verification_assignments","get_verification_status","respond_to_verification","dispute_verification","register_capability_ip","register_job_evidence_ip","distribute_royalties","pay_ip_royalty","claim_ip_revenue","get_ip_revenue","get_ip_lineage","get_capability_ip","raise_ip_dispute","list_protocols","get_protocol","create_protocol","update_protocol","publish_protocol","fork_protocol","get_protocol_forks","validate_protocol","list_protocol_runs","get_protocol_run","create_protocol_run","start_protocol_run","pause_protocol_run","resume_protocol_run","cancel_protocol_run","get_workflows","get_workflow","get_transfer_graphs","list_automation_status","get_automation_status","record_episode","advance_automation","list_transfer_agents","get_logistics_overview","get_shipments","create_shipment","get_shipment_quote","get_installations","get_space_bookings","search_spaces","get_space","match_spaces","get_marketplace_overview","get_equipment_classes","get_demand_supply","calculate_roi","get_operator_dashboard","get_operator_machines","get_operator_earnings","get_operator_certs","get_sensor_channels","get_kernel_sensors","get_settlement_status","get_settlement_epochs","get_depin_stats","mint_certificate","onboard_machine","analyze_machine_docs","redeem_invite","check_invite","list_batches","list_evidence","submit_demand","list_bounties","claim_bounty","verify_bounty","get_top_demand","get_bounty_leaderboard","create_investment_pool","stake_in_pool","get_pool_earnings","get_pool","list_pools","close_pool","claim_pool","convert_bounty_to_pool","get_subnet_status","get_subnet_miners","list_conversations","submit_feedback","report_anomaly","get_unresolved_anomalies","get_agent_anomalies","resolve_anomaly","get_anomaly_stats","report_protocol_failure","pcc_dht_query","pcc_dht_announce","pcc_dht_peers","pcc_create_scope","pcc_revoke_scope","pcc_scope_audit","pcc_relay_tool_call","pcc_get_tool_result","pcc_camera_latest","pcc_chat_send","pcc_chat_history","approve_registration","reject_registration","activate_registration","prove_registration","list_registrations","get_registration","near_status","near_quote","near_intent","near_intent_status","protocol_state","protocol_fee","protocol_token_fees","protocol_escrow_fees","protocol_create_escrow","pcc_dht_metrics","marketplace_categories","marketplace_list_listings","marketplace_get_listing","marketplace_create_listing","marketplace_update_listing","marketplace_delete_listing","marketplace_place_order","marketplace_list_orders","marketplace_get_order","system_telemetry","operator_poll_jobs","operator_push_evidence","operator_heartbeat","operator_update_job_status","pcc_submit_paid_job","pcc_job_complete","pcc_job_settlement","pcc_get_tool_manifest","pcc_relay_generic_tool_call","pcc_submit_request","pcc_list_requests","pcc_get_request","pcc_decompose_request","pcc_publish_request","pcc_get_request_dag","pcc_get_request_critical_path","pcc_assign_node_operator","pcc_update_node_status","pcc_update_request","pcc_cancel_request","pcc_oracle_status"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_zzkqfxxatw8t","url":"https://capability.network/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T22:26:32.587Z","auth":{"observedAt":"2026-10-09T22:26:32.766Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T22:26:32.791Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"capability.network","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-09-14T21:43:50.000Z","validTo":"2026-12-13T21:43:49.000Z","daysToExpiry":62,"sanCount":2,"fingerprint256":"73:34:1A:BE:72:AF:10:F6:1E:E0:49:2E:DF:98:2E:9A:17:E6:73:E9:14:15:F1:35:F5:C0:4A:86:93:ED:A4:F7"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"network.capability/physical-capability-cloud","url":"https://registry.modelcontextprotocol.io/v0/servers/network.capability%2Fphysical-capability-cloud","firstSeenAt":"2026-09-07T08:19:43.011Z","fetchedAt":"2026-10-11T14:22:30.239Z","normalizedAt":"2026-10-11T14:22:30.239Z"}]},"firstSeenAt":"2026-09-07T08:19:43.011Z","updatedAt":"2026-10-12T11:27:19.891Z"}