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

Physical Capability Cloud

REMOTE · CAPABILITY.NETWORK

Discover, hire, and verify real-world physical capability through MCP.

0 this week 79 Trust /100

Last scanned (8 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.

Trust breakdown (7 categories)

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

Endpoint Security57
Transport & Reachability100
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
Changelog

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

  • 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.

Diagnostics

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

Captured 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
MCP tools · 256 exposed · ~22,670 tokens

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

Tool Tokens
pcc_chat_send ~75

Send a chat message to a kernel's operator or agent. Used for human-in-the-loop communication during job execution, troubleshooting, and escalation.

NameTypeReqDescription
kernelIdstringyesKernel ID to send the message to
messagestringyesMessage content
rolestring–Sender role (default: user)

No output schema declared.

No examples provided.

pcc_contributor_list ~78

List all contributor profiles for an address across roles. Returns an array of {id, address, role, scheduleHash, ipId, contributorNftTokenId, metadataUri, registeredAt}. Returns empty array when no profiles exist for the address.

NameTypeReqDescription
addressstringyesWallet address (0x + 40 hex chars)

No output schema declared.

No examples provided.

pcc_contributor_register ~235

Register a contributor profile binding a wallet address to a role and a published RateSchedule. Body: address (0x40hex), role (10 ContributorRole values from ADR-12 §2.1 + legacy 'designer'), scheduleHash (0x64hex of a previously published schedule), optional ipId, metadataUri, contributorNftTokenId. Returns the persisted profile (composite id is address:role:tail). Idempotent on the composite id — re-posting the same (address, role, contributorNftTokenId) replaces the prior profile.

NameTypeReqDescription
addressstringyesWallet address (0x + 40 hex chars)
contributorNftTokenIdstring–Optional ContributorNFT tokenId once minted on-chain
ipIdstring–Optional Story Protocol IP Asset ID
metadataUristring–Optional ipfs:// or https:// URI
rolestringyesContributorRole — 10 ADR-12 roles + deprecated 'designer'
scheduleHashstringyes0x + 64 hex sha256 of a published RateSchedule

No output schema declared.

No examples provided.

pcc_create_scope ~261

Create an execution scope for a job. Scopes define exactly which tool calls are allowed on a kernel during a job, with command budgets, retry limits, and time-to-live. Required before issuing SCOPED WRITE operations (protocol upload, run create, run action).

NameTypeReqDescription
allowedPipettesarray–Which pipettes may be used (e.g. ['left'])
allowedSlotsarray–Which deck slots may be accessed (e.g. [1, 2, 3, 9])
allowedToolsarrayyesList of tool names allowed in this scope (e.g. ['ot2_protocol_upload', 'ot2_run_create', 'ot2_run_action'])
jobIdstring–Job ID this scope is bound to (optional)
kernelIdstringyesKernel ID to create the scope for
maxCommandsnumber–Maximum tool calls allowed in this scope (default 100)
maxRetriesnumber–Maximum retries allowed (default 3)
protocolHashstring–SHA-256 hash of the approved protocol content. If set, protocol uploads are hash-verified.
ttlMinutesnumber–Scope duration in minutes (default 30)

No output schema declared.

No examples provided.

pcc_decompose_request ~52

Re-trigger decomposition of an existing capability request. Overwrites the existing capability DAG with a fresh decomposition. Useful after updating the description or budget.

NameTypeReqDescription
requestIdstringyesRequest ID to decompose

No output schema declared.

No examples provided.

pcc_dht_announce ~81

Announce capabilities to the DHT network. Signs the announcement with your node's Ed25519 key and broadcasts to connected peers.

NameTypeReqDescription
capabilitiesarrayyesArray of capability summaries to announce
kernelIdstringyesKernel ID announcing capabilities
ttlSecondsnumber–How long the announcement is valid (default 300)

No output schema declared.

No examples provided.

pcc_dht_metrics ~53

Get a snapshot of DHT telemetry counters and recent events. Returns message counts, peer connection stats, query/announce rates, and a list of the last 50 metric events. Use for monitoring network health.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pcc_dht_peers ~33

List known DHT peers and their connection status. Shows which nodes are currently connected to the gossip network.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pcc_dht_query ~127

Query the DHT for capabilities matching your requirements. Returns announcements from operators whose equipment matches the type, materials, and price range you specify.

NameTypeReqDescription
limitnumber–Maximum results to return (default 10)
materialsarray–Materials you need (matches if operator supports ANY of these)
maxPricenumber–Maximum price per job — matches operators whose min price is at or below this
typestring–Capability type to search for (e.g. 'fdm_print', 'liquid-handler', 'cnc-3axis')

No output schema declared.

No examples provided.

pcc_get_request ~53

Get a capability request by ID with the full decomposed DAG — all capability nodes, their dependencies, estimated costs/hours, assigned operators, and linked bounty IDs.

NameTypeReqDescription
requestIdstringyesRequest ID

No output schema declared.

No examples provided.

pcc_get_request_critical_path ~70

Get the critical path (longest dependency chain) for a capability request. The critical path determines the minimum calendar time to complete the request. Returns node IDs in order, the full node details, and total hours on the critical path.

NameTypeReqDescription
requestIdstringyesRequest ID

No output schema declared.

No examples provided.

pcc_get_request_dag ~58

Get the capability DAG (directed acyclic graph) for a request as adjacency data — nodes with all fields plus explicit edges showing dependency relationships. Useful for visualization or workflow planning.

NameTypeReqDescription
requestIdstringyesRequest ID

No output schema declared.

No examples provided.

pcc_get_tool_manifest ~67

Get the tool manifest for a kernel's device type. Lists all available tools with their safety classification (read, safe_control, scoped_write, privileged) and input schemas. Use to understand what tools are available before making tool calls.

NameTypeReqDescription
kernelIdstringyesKernel ID

No output schema declared.

No examples provided.

pcc_get_tool_result ~55

Get the result of a previously relayed tool call. Poll this endpoint until the executor has processed the call and posted results.

NameTypeReqDescription
callIdstringyesTool call ID returned from pcc_relay_tool_call

No output schema declared.

No examples provided.

pcc_job_complete ~117

Complete a job: gathers tool call audit trail from execution scopes, builds evidence bundle with SHA-256 hash, stores evidence, revokes scopes, and settles escrow (mock or real). This is how a job run through execution scopes is finished. A node that submitted its evidence and set status completed (operator_update_job_status) must not call it: it then answers 409 ("Job already completed or completion in progress").

NameTypeReqDescription
jobIdstringyesJob ID to complete
messagestring–Completion message or notes

No output schema declared.

No examples provided.

pcc_job_settlement ~118

Get a job's settlement status from its own escrow records: status (settled only when a settlement read confirms the release; reported_released when the milestone record says released but nothing confirms it; simulated for a mock escrow; awaiting_settlement, no_settlement_record, unknown or unavailable otherwise), settled, payout, paidAmount (confirmed releases only), reportedReleasedAmount, quotedAmount, currency (recorded or null), escrow, milestones, the negotiation session, notices and asOf.

NameTypeReqDescription
jobIdstringyesJob ID

No output schema declared.

No examples provided.

pcc_list_requests ~64

List all capability requests with optional filtering. Shows status, decomposed DAG summary, estimated costs, and timelines.

NameTypeReqDescription
requesterEmailstring–Filter by requester email
statusstring–Filter by status
urgencystring–Filter by urgency

No output schema declared.

No examples provided.

pcc_list_verdicts ~94

List recent capture verdicts, newest first. Optionally filter by jobId. Default limit is 50, capped at 200 server-side. Returns {verdicts, count, limit, jobId}.

NameTypeReqDescription
jobIdstring–Filter by job ID. Omit for all verdicts across jobs.
limitinteger–Maximum rows returned (default 50, hard cap 200).

No output schema declared.

No examples provided.

pcc_onboard_session_build_agent ~85

Finalise a physical-operator onboarding session: registers the operator on PCC, mints a wallet, writes the SEO mirror, returns the publication payload (capabilities, operator_id, discovery_url). Idempotent — safe to retry inside the same session_id. Auth-required.

NameTypeReqDescription
idstringyesSession id returned by pcc_onboard_session_start.

No output schema declared.

No examples provided.

pcc_onboard_session_ingest_docs ~101

Queue documents (datasheets, SOPs, MOPs, certifications) for ingestion into a physical-operator onboarding session. Document URLs may be local:// for files dropped in the chat console or full https:// URLs. Auth-required.

NameTypeReqDescription
doc_urlsarrayyesURLs of documents to ingest. Mix of local:// and https:// is fine.
idstringyesSession id returned by pcc_onboard_session_start.

No output schema declared.

No examples provided.

pcc_onboard_session_live_data ~103

Full event log for a physical-operator onboarding session — feeds the chat console's activity sidebar. Supports incremental polling via ?since=<unix-millis>. Returns the next cursor on every response. Auth-required.

NameTypeReqDescription
idstringyesSession id returned by pcc_onboard_session_start.
sincenumber–Unix milliseconds cursor — returns only events with t > since. Use the 'cursor' field of the previous response for incremental polling.

No output schema declared.

No examples provided.

pcc_onboard_session_scrape ~103

Scrape a URL into the running physical-operator onboarding session. Triggers a stealth fetch + structured extraction (machines, hours, services, certifications). Returns a small JSON summary; full extraction is appended to the session's running profile and visible via /live-data. Auth-required.

NameTypeReqDescription
idstringyesSession id returned by pcc_onboard_session_start.
urlstringyesURL to scrape (e.g. company About page).

No output schema declared.

No examples provided.

pcc_onboard_session_start ~86

Start a new physical-operator onboarding session. Returns a session_id used by every subsequent /api/onboard/* call. Auth-required.

NameTypeReqDescription
namestringyesOperator / company name (e.g. 'Oakland Titanium Mills').
urlstring–Optional company website. If supplied, the orchestrator scrapes it on the next /scrape call.

No output schema declared.

No examples provided.

pcc_onboard_session_status ~79

Coarse status snapshot for a physical-operator onboarding session: current state, 0-100 progress, scraped_count, ingested_count, last_event, publication payload (if built). Cheap — designed for polling from the chat header. Auth-required.

NameTypeReqDescription
idstringyesSession id returned by pcc_onboard_session_start.

No output schema declared.

No examples provided.

pcc_oracle_status ~93

Not served by the PCC gateway: GET /api/oracle/health returns 404 there. PCC's verification oracle runs as a separate service, and this route answers only where a deployment fronts it. Agents never call the oracle to settle a job: settlement is the gateway's step after pcc_job_complete. Where it is served, it returns the oracle's EIP-712 signing address and chain ID.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pcc_oracle_verify ~195

Not served by the PCC gateway: POST /api/oracle/verify returns 404 there. PCC's verification oracle runs as a separate service, and this route answers only where a deployment fronts it. Agents never call it to settle a job: settlement is the gateway's step after pcc_job_complete. Where it is served, it checks that the evidence exists, its hash matches, tier requirements are met, there is no replay and the operator identity is valid, and it returns a signed EIP-712 attestation.

NameTypeReqDescription
assuranceTierinteger–Evidence tier (0=none, 1=basic, 2=full, 3=ZK)
escrowAddressstringyesEscrow contract address
evidenceHashstringyesSHA-256 hash of evidence bundle
jobIdstringyesPCC job ID
kernelIdstringyesOperator kernel ID

No output schema declared.

No examples provided.

pcc_orchestrator_list_templates ~72

List the orchestrator templates the dashboard's chat console can drive. Each entry includes slug, display_name, description, produces_kind, capability_class (physical | digital), greeting, and api_base (the route prefix that serves the six session-driver routes for that template). Public — no auth required.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pcc_orchestrator_match_capabilities ~97

Heuristic template matcher. Pass a free-text description of what you want to onboard (e.g. 'I run a CNC milling shop' or 'I have a Postgres database with a GraphQL endpoint') and the matcher returns all templates ranked by keyword score with a 'reason' string per match. Public — no auth required.

NameTypeReqDescription
inputstringyesFree-text description of what you want to onboard.

No output schema declared.

No examples provided.

pcc_protocol_fee ~52

Get the current protocol fee rate (2.35%, immutable) and fee recipient address. The fee is hardcoded in the PCCProtocol smart contract — no admin, no governance, no upgrade can change it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pcc_publish_request ~57

Publish all pending capability nodes in a request as bounties. Each node becomes a bidding opportunity for operators. Returns the list of created bounty IDs linked to each capability node.

NameTypeReqDescription
requestIdstringyesRequest ID to publish

No output schema declared.

No examples provided.

pcc_relay_generic_tool_call ~127

Relay a tool call to any kernel's device executor via the generic relay (not OT-2 specific). Works with any device type. Safe tools (read/safe_control) don't need a scope. Scoped write tools require an active execution scope. Returns a call ID — poll pcc_get_tool_result for the response.

NameTypeReqDescription
argsobject–Tool arguments
kernelIdstringyesTarget kernel ID
scopeIdstring–Execution scope ID (required for write operations)
toolNamestringyesTool name from the device manifest

No output schema declared.

No examples provided.

pcc_relay_tool_call ~126

Relay a tool call to a device executor. The brain (LLM) posts tool calls here; the executor (on the device) polls for them and executes locally. Used for the brain/executor split architecture.

NameTypeReqDescription
kernelIdstringyesKernel ID of the target device
scopeIdstring–Execution scope ID (required for SCOPED WRITE tools)
toolArgsobjectyesArguments for the tool call
toolNamestringyesTool to execute (e.g. 'ot2_health', 'ot2_run_create')

No output schema declared.

No examples provided.

pcc_report ~488

Report a bug, friction, or dead-end you hit while using PCC. Call this the moment you get stuck and cannot recover: a 5xx (its response carries a `report_hint` with pre-filled fields), a 4xx you cannot fix from its message, the same step failing twice, or a misleading tool/description. PUBLIC — works before you provision an API key (cold agents are exactly who this is for). Persisted durably and reviewed by the PCC team. Report each distinct failure ONCE; never include an API key, token, or wallet secret. Rate-limited per IP.

NameTypeReqDescription
agentIdstring–Which model/agent you are. Example: 'claude', 'gpt-4o', 'gemini'. Optional.
detailstring–Multi-line context: the full error body, what you tried, what you expected. Optional but recommended.
endpointstring–The route you were on when you got stuck. From a 5xx `report_hint.send.endpoint`. Example: '/api/build/contract'.
errorCodestring–The machine error code from the response body, if any. From `report_hint.send.errorCode`.
logsarray–Optional but valuable: your last few steps as SUMMARIES (never full request/response bodies) — the sequence that led to the failure. Secrets are never allowed in a note.
methodstring–The HTTP method you used. From `report_hint.send.method`. Example: 'POST'.
severitystring–How badly this blocked you. Optional.
statusinteger–The HTTP status you got. From `report_hint.send.status`. Example: 500.
summarystringyes1-line description of what you were doing and what went wrong. Example: 'POST /api/build/contract returned 500 with no hint about the missing field.'
traceIdstring–Your journey ID — returned by provision_api_key and on every response as `x-pcc-trace-id` (also in a 5xx `report_hint.traceId`). Lets PCC replay your full run.
typestring–bug = something is broken/wrong; friction = it works but was confusing/harder than it should be; idea = a suggestion or missing capability. Defaults to bug.

No output schema declared.

No examples provided.

pcc_report_attempt ~502

Report one phase of an onboarding attempt, success or failure (attempt reporting contract v1). Send one report when each runbook phase ends, and a final report with phase "session" (with the `phases` roll-up), also when you stop early (outcome abandoned or budget_stop). Generate `sessionId` (UUID v4) once per attempt and increment `seq` with every report; a retried report with the same sessionId and seq is collapsed. Never guess: send null for what you do not know (tokens: source "unknown"). Redact keys, tokens, emails and wallet secrets before sending. Always include `summary`: contract v1 makes it optional, but until the gateway's attempt support lands it is the only field kept, and today's server refuses a report without it. The schema is contract v1: an unknown phase, outcome or harness name is accepted (the server stores it as other or unknown, with the raw value as a label), and budget-stop is a spelling of budget_stop. Never send a transcript; consent.transcript stays false until the operator decides. Unauthenticated.

NameTypeReqDescription
consentobject|null––
contractinteger––
detailstring|null––
deviceobject|null––
durationMsinteger|null–The phase's wall time; on session, the whole attempt
envobject|null––
harnessobject|null––
idsobject|null–Only the ids known so far: each at most 200 characters of [A-Za-z0-9:._/-], or null
kindstringyes–
logsarray|null–The phase's step timeline, summaries only
outcome–yes–
packobject|null––
phase–yes–
phasesarray|null–Only on phase "session": the roll-up
proposalobject|null–One improvement idea
seqintegeryesPer-session report counter
sessionIdstringyesUUID v4, generated once at the start of the attempt
summarystring|null–One line, e.g. "register: failed, POST /api/kernels 400"
tokensobject|null–Never guess: send null with source "unknown"
traceIdstring|null–x-pcc-trace-id of the last PCC call

No output schema declared.

No examples provided.

pcc_revoke_scope ~60

Revoke an execution scope immediately (emergency stop). All pending tool calls under this scope are rejected. The kernel enters a stopped state. A new scope must be created to resume.

NameTypeReqDescription
scopeIdstringyesScope ID to revoke

No output schema declared.

No examples provided.

pcc_schedule_evaluate ~160

Evaluate a published RateSchedule at a moment, returning the effective bps. Inputs: scheduleHash + now (unix seconds) + optional jobValueCents (piecewise-value) + optional jobsPerDay (adoption-indexed). Returns {scheduleHash, bps, segmentKind, segmentIndex}. segmentIndex=-1 + bps=0 when no segment covers the moment (silent gap).

NameTypeReqDescription
jobValueCentsinteger–Job value in cents (piecewise-value segments)
jobsPerDaynumber–Rolling 24h job count (adoption-indexed segments)
nowintegeryesUnix seconds at evaluation moment
scheduleHashstringyes0x + 64 hex schedule hash

No output schema declared.

No examples provided.

pcc_schedule_get ~63

Fetch a published RateSchedule by its content hash. Returns {schedule, publishedBy} with segments re-validated via Zod, or 404 if not found.

NameTypeReqDescription
scheduleHashstringyes0x + 64 hex sha256 of the schedule

No output schema declared.

No examples provided.

pcc_schedule_publish ~126

Publish a sealed off-chain RateSchedule. Computes scheduleHash server-side via the canonical sha256-over-canonical-JSON algorithm (matching the on-chain RateScheduleRegistry.publish() invariant). Idempotent: re-publishing the same content returns alreadyPublished:true. Returns {scheduleHash, alreadyPublished}.

NameTypeReqDescription
publishedBystringyesAddress that publishes (0x + 40 hex chars)
scheduleobjectyesRateSchedule body — version, segments (constant/step/linear-decay/exponential-decay/adoption-indexed/piecewise-value), and optional notes

No output schema declared.

No examples provided.

pcc_scope_audit ~49

Get the audit trail for an execution scope — every tool call made under this scope, with validation results, timestamps, and outcomes.

NameTypeReqDescription
scopeIdstringyesScope ID to audit

No output schema declared.

No examples provided.

pcc_submit_paid_job ~163

Fast-track paid job: one call from DHT discovery to funded escrow + active scope. Auto-negotiates, quotes, creates escrow with milestones, creates execution scope. Returns jobId, scopeId, escrowId, quote with pricing adjustments, contract terms. For testnet, escrow is mock-funded automatically.

NameTypeReqDescription
capabilityTypestringyese.g. 'liquid-handler', 'fdm', 'cnc-3axis'
kernelIdstringyesTarget kernel ID (from DHT query)
parametersobject–Job parameters (protocolType, volume, materials, etc.)
paymentMethodstring–Payment method (testnet-mock for demo)
userAgentIdstringyesYour agent/user ID

No output schema declared.

No examples provided.

pcc_submit_request ~220

Submit a high-level capability request in natural language. The system automatically decomposes it into a capability DAG with dependencies, timelines, and budget allocation across fabrication, design, assembly, electronics, software, logistics, and verification nodes. Returns the request with full decomposed DAG. Example: 'Build a cute animatronic plush desk robot with servo-driven animations'.

NameTypeReqDescription
budgetnumber–Total budget in USDC (default: 1000)
currencystring–Currency (default: USDC)
deadlinestring–ISO 8601 deadline (default: 7 days from now)
descriptionstringyesFull natural language description of what needs to be built or done
requesterEmailstring–Requester email for notifications
requesterWalletstring–Requester wallet address for payments
titlestringyesShort title for the request
urgencystring–Urgency level — affects cost multipliers (emergency: 2x cost, 0.5x time)

No output schema declared.

No examples provided.

pcc_training_manifest_get ~58

Fetch the TrainingManifest for a model IP. Returns the parsed datasets array + manifestHash + createdAt, or 404 if no manifest has been set.

NameTypeReqDescription
modelIpIdstringyesStory IP Asset ID for the model

No output schema declared.

No examples provided.

pcc_training_manifest_set ~161

Set (insert-or-replace) the TrainingManifest for a model IP — the dataset weight map the LicensingEngine walks when distributing payouts to a 'model-author' entry in a CompositionManifest. Dataset weightBps must sum to ≤ 10000 (gateway accepts partial mixes; on-chain enforces exact 10000). Returns {modelIpId, manifestHash}.

NameTypeReqDescription
baseModelIpIdstring–Optional parent ModelNFT IP if this was fine-tuned
datasetWeightsarrayyesDatasetIP entries with weightBps (sum ≤ 10000)
methodologyHashstring–Optional 0x + 64 hex reproducibility hash
modelIpIdstringyesStory IP Asset ID for the model

No output schema declared.

No examples provided.

pcc_trilobio_build_config ~528

Generate a complete KERNEL_CONFIG JSON for a Trilobio (tcode-api) fleet controller. Wraps `buildTrilobioConfig()` from the @pcc/trilobio npm package. Returns a TrilobioKernelConfig with sensible defaults (pollIntervalMs=3000, maxScriptTimeoutSec=3600, allowArbitraryScripts=false). The result can be passed to `pcc-node start` via the KERNEL_CONFIG env var, or handed to setup_generate_config / setup_register_device for direct API-driven registration. Note: this is a TypeScript package helper (no HTTP call). For programmatic use, `import { buildTrilobioConfig } from "@pcc/trilobio"`.

NameTypeReqDescription
allowArbitraryScriptsboolean–Permit customer-supplied tcode-api Python scripts (true) or only curated protocol IDs (false). Default: false. Set true only for trusted-counterparty deployments.
apiKeystring–Trilobio fleet-controller API key (from the trilobot admin UI). Either apiKey OR username+password is required unless mockMode=true.
deviceIdstring–Logical device ID within the kernel (default: trilobio-fleet-01)
kernelIdstring–Kernel ID this device belongs to (auto-generated as kernel_trilobio_<timestamp> if omitted)
maxScriptTimeoutSecnumber–Maximum allowed wall-clock seconds for a single tcode script (range 30-86400). Default: 3600.
mockModeboolean–Bypass real HTTP and simulate runs. Use for CI / floor demos. Default: false.
mockRunDurationMsnumber–Mock-mode simulated run duration in ms. Default: 2000.
passwordstring–Fleet-controller account password (basic-auth mode only)
pollIntervalMsnumber–Poll interval in ms for run status (range 500-60000). Default: 3000.
tcodeApiVersionstring–Pinned tcode-api version on the fleet controller. Format: 'latest' or semver (e.g. 1.25.1). Default: latest. Surfaces in evidence bundles for reproducibility.
urlstringyesFleet-controller URL on the LAN (host[:port], no trailing slash, no path) — e.g. http://192.168.1.50
usernamestring–Fleet-controller account username (basic-auth mode only)

No output schema declared.

No examples provided.

pcc_trilobio_capability_template ~186

Return the `TRILOBIO_CAPABILITY` constant from @pcc/trilobio — a default capability template for a Trilobio fleet controller. Pass to POST /api/capabilities to publish a baseline liquid-handling capability for a kernel hosting a trilobot. Operators can extend the `materials` and `capabilities` arrays to advertise instrument-specific features (custom labware libraries, sample types). Notable: includes `tcode-script-execution` as an advertised capability, which is unique to Trilobio — operators who set `allowArbitraryScripts: true` can accept jobs that ship a full tcode-api Python script as the protocol payload. Note: TypeScript package helper (no HTTP call); for programmatic use, `import { TRILOBIO_CAPABILITY } from "@pcc/trilobio"`.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pcc_trilobio_validate_options ~263

Sanity-check operator-supplied Trilobio options before generating a KERNEL_CONFIG. Wraps `validateTrilobioOptions()` from @pcc/trilobio. Catches the common mistakes (malformed URL, missing creds, out-of-range timeouts, invalid tcodeApiVersion semver) before they hit the gateway or the device. Returns { valid: boolean, errors: string[], warnings?: string[] }. Note: this is a TypeScript package helper (no HTTP call); for programmatic use, `import { validateTrilobioOptions } from "@pcc/trilobio"`.

NameTypeReqDescription
allowArbitraryScriptsboolean––
apiKeystring–Fleet-controller API key
deviceIdstring––
kernelIdstring––
maxScriptTimeoutSecnumber––
mockModeboolean––
mockRunDurationMsnumber––
passwordstring–Basic-auth password
pollIntervalMsnumber––
tcodeApiVersionstring–'latest' or semver string
urlstring–Fleet-controller URL
usernamestring–Basic-auth username

No output schema declared.

No examples provided.

pcc_trilobio_validate_script ~205

Quick lint of a tcode-api Python script before submission to a Trilobio fleet controller. Wraps `validateTcodeScript()` from @pcc/trilobio. Surface check only — NOT a sandbox or sanitizer. Looks for: imports of `tcode_api` (presence required), obviously dangerous statements (subprocess, os.system, eval, exec, __import__, socket, urllib, requests, file writes), empty scripts, and missing top-level tcode commands. Returns { valid: boolean, errors: string[], warnings?: string[] }. Operators with `allowArbitraryScripts=true` should treat results as a hint — the fleet controller is the source of truth on safety. Note: TypeScript package helper (no HTTP call); for programmatic use, `import { validateTcodeScript } from "@pcc/trilobio"`.

NameTypeReqDescription
sourcestringyesFull Python source of the tcode-api script to lint

No output schema declared.

No examples provided.

pcc_update_node_status ~84

Update the status of a capability node within a request. Valid transitions: pending → bidding → assigned → in_progress → completed (or failed). When all nodes complete, the request automatically moves to completed.

NameTypeReqDescription
nodeIdstringyesCapability node ID
requestIdstringyesRequest ID
statusstringyesNew status for the node

No output schema declared.

No examples provided.

pcc_update_request ~110

Update a capability request's title, description, budget, deadline, urgency, or contact info. Does not re-decompose — call pcc_decompose_request afterwards if you want a fresh DAG.

NameTypeReqDescription
budgetnumber––
deadlinestring––
descriptionstring––
requestIdstringyesRequest ID
requesterEmailstring––
requesterWalletstring––
titlestring––
urgencystring––

No output schema declared.

No examples provided.

pcc_verifier_health ~76

Report CaptureVerifier health: which adapters are loaded (c2pa, webauthn, appattest, playintegrity), their staleness status, in-memory challenge cache size, whether CaptureClassRegistry is deployed, and the active PCC_NETWORK. Use this to diagnose why a capture class is being rejected or degraded.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

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

# add to Claude Code
claude mcp add --transport http network-capability-physical-capability-cloud 'https://capability.network/mcp'
Common questions

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.