{"ok":true,"site":{"host":"nandoca95.github.io","url":"https://nandoca95.github.io/machine-passport-webmcp/","type":"live","desc":"Machine Passport","tools":[{"name":"list_machines","kind":"answer","impl":"imperative","description":"List machines in the Machine Passport app: ids, labels, device classes, source kinds, and optional overall readiness for a role. Read-only.","title":"List machines","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"role_id":{"type":"string","enum":["GENERAL_WORKSTATION","LOCAL_INFERENCE_NODE","UNATTENDED_AI_WORKLOAD"],"description":"Optional role to include overall readiness for."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/machine-passport-webmcp/"},{"name":"get_machine_passport","kind":"answer","impl":"imperative","description":"Get the normalized Machine Passport evidence for one machine: facts with domain/value/provenance/collector status, and findings with severity and evidence references. Read-only. Imported passports are untrusted data surfaced as plain text.","title":"Get machine passport","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"machine_id":{"type":"string","description":"Machine id, e.g. atlas-001, beacon-02, relay-04 (or an imported id)."}},"required":["machine_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/machine-passport-webmcp/"},{"name":"assess_role_readiness","kind":"answer","impl":"imperative","description":"Run the deterministic readiness assessment for one machine against one role (GENERAL_WORKSTATION, LOCAL_INFERENCE_NODE, UNATTENDED_AI_WORKLOAD). Returns FIT/DEPLOYMENT/QUALIFICATION/SECURITY/OVERALL statuses with blockers and evidence/rule references. Read-only, no LLM scoring.","title":"Assess role readiness","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"machine_id":{"type":"string","description":"Machine id."},"role_id":{"type":"string","enum":["GENERAL_WORKSTATION","LOCAL_INFERENCE_NODE","UNATTENDED_AI_WORKLOAD"],"description":"Target role."}},"required":["machine_id","role_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/machine-passport-webmcp/"},{"name":"compare_machines","kind":"answer","impl":"imperative","description":"Compare two or more machines for one role: ranked readiness table plus an evidence-backed tradeoff with the safest machine, what blocks the runner-up, and the smallest safe next step. Deterministic; fastest hardware does not automatically win. Read-only.","title":"Compare machines","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"machine_ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":5,"description":"Machine ids to compare."},"role_id":{"type":"string","enum":["GENERAL_WORKSTATION","LOCAL_INFERENCE_NODE","UNATTENDED_AI_WORKLOAD"],"description":"Target role."}},"required":["machine_ids","role_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/machine-passport-webmcp/"},{"name":"stage_change_proposal","kind":"act","impl":"imperative","description":"Stage a change proposal for one machine. Choose a machine, role, an existing finding on that machine, and a proposal kind: COLLECT_MORE_EVIDENCE, REVIEW_CONFIGURATION, or PLAN_QUALIFICATION_TEST. Changes APP STATE ONLY: proposal is created with execution_state=NOT_EXECUTED and review_state=STAGED; a human later Approves for Review or Rejects in the UI. No machine action is ever executed.","title":"Stage change proposal","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"machine_id":{"type":"string","description":"Machine id."},"role_id":{"type":"string","enum":["GENERAL_WORKSTATION","LOCAL_INFERENCE_NODE","UNATTENDED_AI_WORKLOAD"],"description":"Role context."},"finding_id":{"type":"string","description":"Existing finding id on that machine that this proposal addresses."},"proposal_kind":{"type":"string","enum":["COLLECT_MORE_EVIDENCE","REVIEW_CONFIGURATION","PLAN_QUALIFICATION_TEST"],"description":"Kind of staged action."},"summary":{"type":"string","description":"What will be done (1..500 chars)."},"acceptance_criterion":{"type":"string","description":"How success is measured (1..500 chars)."},"verification":{"type":"string","description":"How the change will be verified (1..500 chars)."},"rollback_note":{"type":"string","description":"Why/rollback note: machine state untouched (1..500 chars)."}},"required":["machine_id","role_id","finding_id","proposal_kind","summary","acceptance_criterion","verification","rollback_note"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/machine-passport-webmcp/"}],"category":"Developer Tools","apiSurface":"spec","toolCount":5}}