Physical Capability Cloud
REMOTE · CAPABILITY.NETWORK
Discover, hire, and verify real-world physical capability through MCP.
Available components
Last scanned (7 hours ago)
Scores higher than 79% of remote servers
Reachable. Last reached 5 Nov 2026.
Category IoT and Hardware
Recent critical change
Authorization (1 Oct 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (revoke_api_key). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability85
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 22909 tokens (~88/item across 260 items; 256 tools + 4 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
- Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 92% of tool parameters carry a description.Partial
- Structured output schemas are declared (3% of tools); any adoption earns full credit.Pass
Tool Safety97
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 13 of 15 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "get_transfer_graphs" implies "transfer" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 258 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 −1
- Stability: pass → 0.97 functional
- 3 Nov 26 0
- Stability: fail → pass ▲ security
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 96 to 99.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 89 to 93.
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 86.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 76 to 79.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 69 to 73.
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 59 to 63.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://capability.network/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=capability.network | CN=YE1,O=Let's Encrypt,C=US | 14 Sept 2026 | 13 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 61e79ee07e783aedc9770a1b1a54789ebd0 |
| SANs: *.capability.network, capability.network | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of capability.network. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| network. | present | 11416, 40414 | 8, 8 | Verified |
| capability.network. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://capability.network/mcp | Verified | 200 | |
| http (plaintext) | http://capability.network/mcp | HTTPS enforced | 301 | https://capability.network/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
kernel_heartbeat ~71
Send a per-kernel heartbeat to keep the kernel marked online. Used by pcc-node daemons as an alternative to the operator relay heartbeat.
| Name | Type | Req | Description |
|---|---|---|---|
| capabilities | array | – | Optional capability announcements |
| kernelId | string | yes | Kernel ID |
| status | string | – | Kernel status (online/offline) |
No output schema declared.
No examples provided.
list_api_keys ~49
List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires a valid API key or SIWE session.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_automation_status ~48
List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId.
| Name | Type | Req | Description |
|---|---|---|---|
| kernelId | string | – | Filter by kernel ID |
No output schema declared.
No examples provided.
list_batches ~15
List active and completed settlement batches.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_bounties ~56
List open bounties for capabilities the network needs. Operators can claim these to earn rewards by onboarding new capabilities.
| Name | Type | Req | Description |
|---|---|---|---|
| capabilityType | string | – | Filter by capability type |
| status | string | – | Filter by bounty status |
No output schema declared.
No examples provided.
list_capability_types ~34
List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_conversations ~25
List agent-to-agent conversations showing topic, participants, message count, and status.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_escrows ~35
List escrow contracts with milestones and bonds. Optionally filter by status.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by escrow status |
No output schema declared.
No examples provided.
list_evidence ~18
List encrypted evidence bundles stored in the gateway.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_evidence_grants ~48
List all evidence access grants for an address. Returns bundles the address has been granted access to.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | EVM address to look up grants for (0x...) |
No output schema declared.
No examples provided.
list_jobs ~60
List all jobs with status. Optionally filter by kernelId or status.
| Name | Type | Req | Description |
|---|---|---|---|
| kernelId | string | – | Filter by kernel ID |
| status | string | – | Filter by status (pending, queued, in_progress, paused, completed, failed, cancelled) |
No output schema declared.
No examples provided.
list_kernels ~46
List all Shop Kernels on the network with status and capability types. Optionally filter by status.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by kernel status (online, offline, maintenance) |
No output schema declared.
No examples provided.
list_operator_channels ~64
List every channel attached to an operator. Returns the full channel records (id, transport, direction, endpoint, describe, enabled flags). Useful for an operator's onboarding agent to confirm what is wired up, and for status dashboards.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Operator slug. |
No output schema declared.
No examples provided.
list_pools ~46
List all investment pools. Optionally filter by status or capability type.
| Name | Type | Req | Description |
|---|---|---|---|
| capabilityType | string | – | Filter by capability type |
| status | string | – | Filter by pool status |
No output schema declared.
No examples provided.
list_protocol_runs ~43
List protocol runs. Filter by status or kernelId.
| Name | Type | Req | Description |
|---|---|---|---|
| kernelId | string | – | Filter by kernel ID |
| status | string | – | Filter by run status |
No output schema declared.
No examples provided.
list_protocols ~97
List protocol templates in the library. Filter by tags, required capabilities, search query, or status.
| Name | Type | Req | Description |
|---|---|---|---|
| capabilities | string | – | Comma-separated required capability filter (e.g. 'hplc,centrifuge') |
| search | string | – | Full-text search query |
| status | string | – | Filter by template status |
| tags | string | – | Comma-separated tag filter (e.g. 'biotech,protein') |
No output schema declared.
No examples provided.
list_registrations ~36
List all machine registrations on the network. See pending, approved, active, and rejected registrations. Public endpoint — no auth required.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_transfer_agents ~27
List all transfer agents (robots and human operators) available for instrument-to-instrument transfers.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
lit_decrypt ~71
Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload.
| Name | Type | Req | Description |
|---|---|---|---|
| authSig | object | yes | Lit auth signature object with sig, derivedVia, signedMessage, and address fields |
| bundleId | string | yes | Evidence bundle ID (must be Lit-encrypted) |
No output schema declared.
No examples provided.
marketplace_categories ~53
List all supplies and materials marketplace categories with the count of active listings in each. Categories cover the full spectrum of physical production inputs: raw metals, plastics, lab reagents, consumables, electronics, tooling, and more.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
marketplace_create_listing ~222
Create a new supplies/materials listing in the marketplace. Suppliers post available raw materials, lab reagents, tooling, or consumables for other operators to purchase.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Category: raw-metals, plastics-polymers, lab-reagents, lab-consumables, electronics, chemicals, biologicals, tooling, packaging, calibration, safety, other |
| description | string | – | Detailed product description |
| inStock | boolean | – | Whether the item is currently available |
| leadTimeDays | number | – | Estimated lead time in business days |
| location | string | – | Supplier region or country |
| maxOrder | number | – | Maximum order quantity |
| minOrder | number | – | Minimum order quantity |
| name | string | yes | Product name |
| pricePerUnit | number | yes | Price per unit in USDC |
| sellerId | string | – | Supplier entity ID |
| tags | array | – | Search tags |
| unit | string | yes | Unit of sale: kg, L, each, box, plate, etc. |
No output schema declared.
No examples provided.
marketplace_delete_listing ~39
Remove a supplies/materials listing from the marketplace. The listing is immediately hidden from search results.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Listing ID to remove |
No output schema declared.
No examples provided.
marketplace_get_listing ~55
Get full details of a specific supplies/materials marketplace listing by ID. Returns pricing, availability, lead time, location, and tags.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Listing ID (e.g. 'lst-al6061-bar') |
No output schema declared.
No examples provided.
marketplace_get_order ~52
Get details of a specific supply order including the associated listing details, quantity, total price, status, and optional escrow address.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Order ID (e.g. 'ord-demo-001') |
No output schema declared.
No examples provided.
marketplace_list_listings ~147
Search and filter supplies/materials marketplace listings. Operators buy raw materials here to fulfill capability contracts. Filter by category, in-stock status, location, or free-text query.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category: raw-metals, plastics-polymers, lab-reagents, lab-consumables, electronics, chemicals, biologicals, tooling, packaging, calibration, safety, other |
| inStock | string | – | Filter to only in-stock listings |
| location | string | – | Filter by region (e.g. 'US-Midwest', 'EU-West', 'Asia-Pacific') |
| query | string | – | Full-text search across name, description, and tags |
No output schema declared.
No examples provided.
marketplace_list_orders ~74
List marketplace supply orders. Filter by buyerId, sellerId, or status. Returns order history with pricing and status.
| Name | Type | Req | Description |
|---|---|---|---|
| buyerId | string | – | Filter to orders placed by this buyer |
| sellerId | string | – | Filter to orders received by this seller |
| status | string | – | Filter by order status |
No output schema declared.
No examples provided.
marketplace_place_order ~116
Place a purchase order for supplies or materials. Calculates total price automatically (quantity × pricePerUnit). Returns an order with 'pending' status. Optionally links to an on-chain escrow for trustless settlement.
| Name | Type | Req | Description |
|---|---|---|---|
| buyerId | string | – | Buyer entity ID (operator kernel ID, etc.) |
| escrowAddress | string | – | Optional on-chain escrow address for trustless settlement |
| listingId | string | yes | Listing ID to order from |
| quantity | number | yes | Quantity to order (must meet listing minOrder/maxOrder) |
No output schema declared.
No examples provided.
marketplace_update_listing ~105
Update an existing supplies/materials listing (price, stock status, description, etc.). Pass only the fields you want to change.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Updated description |
| id | string | yes | Listing ID to update |
| inStock | boolean | – | Stock availability |
| leadTimeDays | number | – | Updated lead time in days |
| pricePerUnit | number | – | New price per unit in USDC |
| tags | array | – | Updated search tags |
No output schema declared.
No examples provided.
match_spaces ~60
Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches.
| Name | Type | Req | Description |
|---|---|---|---|
| minArea | number | – | Minimum floor area in square feet |
| voltage | number | – | Required voltage (e.g. 208, 480) |
No output schema declared.
No examples provided.
mint_certificate ~129
Mint a soulbound capability certificate (cNFT via Metaplex Core) for a kernel. Proves a verified capability on-chain as an immutable credential. Step 5 of onboarding.
| Name | Type | Req | Description |
|---|---|---|---|
| assuranceTier | number | – | Assurance tier (0-3) |
| capabilityType | string | yes | Capability type (e.g. fdm, cnc-3axis, hplc) |
| kernelDid | string | yes | DID of the kernel (e.g. did:pcc:kernel:biolab-01) |
| metadata | object | – | Additional metadata (tolerances, materials, calibration proof CID) |
No output schema declared.
No examples provided.
near_intent ~114
Submit a cross-chain payment intent to the NEAR 1Click solver network. Creates a signed intent that routes the payment atomically across chains. Call near_quote first to obtain a quoteId. Intents typically settle within 30-60 seconds — poll near_intent_status to track progress.
| Name | Type | Req | Description |
|---|---|---|---|
| quoteId | string | yes | Quote ID returned from near_quote |
| recipient | string | – | Recipient address on the destination chain (optional) |
| workflowId | string | yes | PCC workflow or job ID this payment is for |
No output schema declared.
No examples provided.
near_intent_status ~63
Check the settlement status of a submitted NEAR 1Click cross-chain payment intent. Statuses progress: pending → submitted → settled | failed. Returns txHash and explorerUrl when settled.
| Name | Type | Req | Description |
|---|---|---|---|
| intentId | string | yes | Intent ID returned from near_intent |
No output schema declared.
No examples provided.
near_quote ~198
Get a cross-chain payment quote from the NEAR 1Click solver network (chaindefuser.com). Provides optimal routing and fee estimates for funding PCC escrow contracts using any source asset on any supported chain. Call near_status first to confirm available chains/assets.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Amount as an integer string in the smallest denomination (e.g. '1000000' for 1 USDC with 6 decimals) |
| fromAsset | string | yes | Source asset symbol (e.g. 'USDC', 'ETH', 'NEAR') |
| fromChain | string | yes | Source chain (e.g. 'eth', 'base', 'near', 'arbitrum') |
| recipient | string | – | Recipient address on the destination chain (optional) |
| toAsset | string | yes | Destination asset symbol (e.g. 'USDC') |
| toChain | string | yes | Destination chain (e.g. 'base', 'eth') |
No output schema declared.
No examples provided.
near_status ~69
Get NEAR Protocol chain-abstraction integration status. Returns supported chains (near, eth, base, arbitrum, optimism, polygon), supported assets (USDC, USDT, NEAR, ETH, WBTC), and capability flags. Use this to confirm cross-chain settlement is available before requesting quotes.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
onboard_machine ~174
Register a new machine on the PCC network. Provide machine details to create a registration record. Include `operator` ({walletAddress, displayName, email}): without it the registration is recorded as operator 0x0000000000000000000000000000000000000000 / "Unknown", and prove cannot match it to you.
| Name | Type | Req | Description |
|---|---|---|---|
| capabilities | array | – | Array of capability objects |
| category | string | yes | Machine category (e.g. fdm, cnc, laser-cut, hplc) |
| description | string | – | Machine description |
| manufacturer | string | – | Manufacturer name |
| model | string | – | Model identifier |
| name | string | yes | Machine name |
| operator | object | – | Who owns this machine. prove and activate match the caller against operator.walletAddress (or operator.email). |
No output schema declared.
No examples provided.
operator_heartbeat ~121
Operator sends heartbeat with capability re-announcement. Keeps the kernel alive on the network and updates its own capability rows. Requires operate authority for this kernel: its recorded operator identity (the caller that registered it), its proven operator wallet, or the gateway admin authority. Another identity gets 403; no credentials gets 401; an unregistered kernel gets 404 for a non-admin. Operator identity proof for operate is completed by WP-A (DECISIONS items 136 and 138).
| Name | Type | Req | Description |
|---|---|---|---|
| capabilities | array | – | – |
| kernelId | string | yes | – |
No output schema declared.
No examples provided.
operator_poll_jobs ~139
Operator polls jobs assigned to their kernel; status defaults to queued, and the route can filter any status. Requires operate authority for this kernel: its recorded operator identity (the caller that registered it), its proven operator wallet, or the gateway admin authority. Another identity gets 403; no credentials gets 401; an unregistered kernel gets 404 for a non-admin. Operator identity proof for operate is completed by WP-A (DECISIONS items 136 and 138). The pcc-node 0.1.1 daemon does not call it: it takes no jobs.
| Name | Type | Req | Description |
|---|---|---|---|
| kernelId | string | yes | Kernel ID to poll jobs for |
No output schema declared.
No examples provided.
operator_push_evidence ~194
Operator pushes evidence bundle from a completed job execution. Requires decide authority for the stored job's kernel: its proven operator wallet or the gateway admin authority. A matching claimed operator key gets 403 operator_proof_required. Evidence takes decide, per DECISIONS 2026-10-04 01:25 (N31c). Evidence is posted with the kernel's proven operator wallet authority (decide). The body's kernelId cannot choose the authorization target. No credentials gets 401 before the job read; a job without a kernel gets 403 for a non-admin. Contains device ID, execution timestamp, result payload, and event timeline. Success is a receipt with stored: true naming this jobId. HTTP 200 with stored: false means nothing was stored: never follow it with status completed.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | object | yes | – |
| jobId | string | yes | – |
| kernelId | string | yes | – |
No output schema declared.
No examples provided.
operator_update_job_status ~286
Operator reports a job's status (in_progress, completed, failed). Requires operate authority for the stored job's kernel: its recorded operator identity (the caller that registered it), its proven operator wallet, or the gateway admin authority. The body's kernelId cannot choose the authorization target. Another identity gets 403; no credentials gets 401 before the job read; a job without a kernel gets 403 for a non-admin. Operator identity proof for operate is completed by WP-A (DECISIONS items 136 and 138). The node path finishes a job in two calls: submit its evidence (POST /api/operator/evidence, posted with the kernel's proven operator wallet authority, decide), and only if that receipt says stored: true for this jobId, set status completed here. HTTP 200 alone is not enough: the relay answers 200 with stored: false when it could not store the evidence (an unknown job, a storage failure); then set failed with the reason evidence_not_stored. On the current gateway, completed marks the job done and its timeline then says settled, but the escrow is not released yet (board G1). Do not call pcc_job_complete after this: it answers 409.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | – |
| kernelId | string | yes | – |
| metadata | object | – | – |
| status | string | yes | – |
No output schema declared.
No examples provided.
pause_protocol_run ~35
Pause a running protocol run. Use resume_protocol_run to continue.
| Name | Type | Req | Description |
|---|---|---|---|
| runId | string | yes | Protocol run ID to pause |
No output schema declared.
No examples provided.
pay_ip_royalty ~72
Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Amount to pay in wei (as string) |
| ipId | string | yes | IP asset ID |
| payerAddress | string | yes | EVM address of the payer |
No output schema declared.
No examples provided.
pcc_assign_node_operator ~77
Assign an operator to a specific capability node within a request. The node status changes to 'assigned'. Operators claim nodes to indicate they will execute that capability.
| Name | Type | Req | Description |
|---|---|---|---|
| nodeId | string | yes | Capability node ID |
| operatorId | string | yes | Operator kernel ID or wallet address |
| requestId | string | yes | Request ID |
No output schema declared.
No examples provided.
pcc_camera_latest ~61
Get the latest camera frame from a kernel as a JSON snapshot (base64 JPEG + metadata). For raw JPEG image, use GET /api/ot2/camera/latest directly.
| Name | Type | Req | Description |
|---|---|---|---|
| kernelId | string | yes | Kernel ID to get camera frame from |
No output schema declared.
No examples provided.
pcc_cancel_request ~56
Cancel a capability request. Cancelled requests cannot be updated, decomposed, or published. This is a soft delete — the request remains visible with status 'cancelled'.
| Name | Type | Req | Description |
|---|---|---|---|
| requestId | string | yes | Request ID to cancel |
No output schema declared.
No examples provided.
pcc_capture_anchor ~110
Anchor a PASS + anchor-candidate capture verdict to CaptureClassRegistry on-chain (Base Sepolia by default). Rejects FAIL/PARTIAL verdicts. Idempotent — re-submitting the same verdictId returns the existing anchor row. Returns 202 {status:'deferred'} if CaptureClassRegistry is not yet deployed (CAPTURE_REGISTRY_ADDRESS unset).
| Name | Type | Req | Description |
|---|---|---|---|
| verdictId | string | yes | The verdictId returned by pcc_capture_upload. Must be a PASS verdict with anchorCandidate=true. |
No output schema declared.
No examples provided.
pcc_capture_challenge ~162
Issue a fresh block-anchored CaptureNonceChallenge for a job. The operator's device must render this nonce into the captured media (QR code, audio tone, etc.) before calling pcc_capture_upload. The nonce is derived from (challengeId, latest blockHash, workOutputRoot) so captures cannot be pre-computed. Returns challengeId, 64-char hex nonce, blockNumber, maxAgeSeconds (clamped to 120).
| Name | Type | Req | Description |
|---|---|---|---|
| declaredClass | string | yes | Capture class the operator plans to claim. Determines which gates the verifier will run. |
| jobId | string | yes | PCC job ID the capture belongs to |
| requestedTtlSeconds | integer | – | Requested challenge lifetime in seconds. Clamped to 120 server-side. |
No output schema declared.
No examples provided.
pcc_capture_class_registry ~144
Look up a capture's on-chain anchor record in CaptureClassRegistry by its 32-byte captureHash. Returns the registry address, captureHash, and decoded anchor tuple (declaredClass, verifiedClass, manifestHash, submittedBy, jobId, challengeId, blockAnchor, capturedAt, attestationsRoot, attesterCount). onchain is null if the capture was never anchored. Returns 202 deferred when CaptureClassRegistry is not yet deployed.
| Name | Type | Req | Description |
|---|---|---|---|
| captureHash | string | yes | Capture hash (32-byte). Accepts 0x-prefixed or unprefixed hex, or sha256:<hex> format. Padded server-side to bytes32. |
No output schema declared.
No examples provided.
pcc_capture_status ~75
Fetch the combined verdict + on-chain anchor view for a single capture. Mirrors the verifier's DB shape plus the anchor tx metadata (txHash, blockNumber, gasUsed, explorerUrl). Anchor is null if the verdict was never anchored.
| Name | Type | Req | Description |
|---|---|---|---|
| verdictId | string | yes | Capture verdict UUID (from pcc_capture_upload). |
No output schema declared.
No examples provided.
pcc_capture_upload ~340
Upload a capture (photo / video / audio / sensor clip) with its CaptureManifest for G1..G6 verification. Bytes are base64-encoded inline; optional base64 C2PA manifest bytes can be supplied for CC3+ claims. The server runs the 6-gate CaptureVerifier and persists a PASS/PARTIAL/FAIL verdict. Returns {verdictId, verdict, verifiedClass, gatesPassed, gatesFailed, warnings, anchorCandidate, captureHash, manifestHash}.
| Name | Type | Req | Description |
|---|---|---|---|
| c2paManifestBase64 | string | – | Optional base64-encoded C2PA manifest JUMBF bytes. Required when manifest.class >= CC3. |
| captureBytesBase64 | string | yes | Base64-encoded capture bytes (image / video / audio / sensor clip). Hash must match manifest.mediaHash. |
| challengeId | string | – | Challenge UUID to re-bind to the in-memory challenge cache (G3 freshness gate). |
| jobId | string | – | Job ID for telemetry binding. Falls back to manifest.jobId if omitted. |
| manifest | object | yes | CaptureManifest — ALCOA+-ready metadata: class, declaredAt (ISO-8601), deviceFingerprint, mediaHash (sha256:<hex>), optional challengeId. See CaptureManifestSchema in @pcc/spec. |
| operatorId | string | – | Explicit operator ID. Falls back to the authenticated session userId. |
| submittedAt | integer | – | Client-submitted timestamp (epoch ms). Used in drift detection. |
| visualNonceEcho | string | – | The visual nonce value the operator rendered in-scene (QR payload, audio tone id, etc.). |
No output schema declared.
No examples provided.
pcc_chat_history ~61
Get chat history with a kernel. Returns messages between agents, operators, and users for a specific kernel.
| Name | Type | Req | Description |
|---|---|---|---|
| kernelId | string | yes | Kernel ID to get chat history for |
| limit | number | – | Maximum messages to return (default 50) |
No output schema declared.
No examples provided.
How do I install the Physical Capability Cloud MCP server?
Physical Capability Cloud is a hosted endpoint at https://capability.network/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · capability.network
claude mcp add --transport http network-capability-physical-capability-cloud 'https://capability.network/mcp'
What is the Physical Capability Cloud MCP server?
Physical Capability Cloud is an MCP server listed in the public MCP registry as network.capability/physical-capability-cloud. Discover, hire, and verify real-world physical capability through MCP. This page covers its hosted endpoint (https://capability.network/mcp).
Is the Physical Capability Cloud MCP server safe to use?
Physical Capability Cloud scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Physical Capability Cloud MCP server expose?
Physical Capability Cloud exposes 256 tools: provision_api_key, list_api_keys, revoke_api_key, setup_detect, setup_generate_config, and 251 more. Their descriptions and schemas cost roughly 22,670 tokens of context every time the server is loaded.
Does the Physical Capability Cloud MCP server require authentication?
No. We connected to Physical Capability Cloud without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Physical Capability Cloud MCP server still maintained?
Physical Capability Cloud is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.