{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_gkj3fcgkdf97","handle":"hands-for-agents","url":"https://wellknown.network/agents/hands-for-agents","links":{"self":"https://wellknown.network/agents/hands-for-agents/record.json","html":"https://wellknown.network/agents/hands-for-agents","markdown":"https://wellknown.network/agents/hands-for-agents/record.md","api":"https://wellknown.network/api/v1/agents/hands-for-agents","status":"https://wellknown.network/api/v1/agents/hands-for-agents/status","claim":"https://wellknown.network/agents/hands-for-agents/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/hands-for-agents/claim.json","badge":"https://wellknown.network/agents/hands-for-agents/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/hands-for-agents/history","tools":"https://wellknown.network/api/v1/agents/hands-for-agents/tools"},"ard":{"identifier":"urn:air:handsforagents.com:server:hands-for-agents","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Hands for Agents","summary":"Human-operated physical world in the EU: make, assemble, measure, verify, ship.","description":"Human-operated physical world in the EU: make, assemble, measure, verify, ship.","publisher":{"name":"com.handsforagents","url":null},"homepage":"https://handsforagents.com","repository":"https://github.com/handsforagents/handsforagents-mcp","version":"0.2.0","license":"MIT","protocols":["mcp"],"tags":["mcp","mcp-server","model-context-protocol","modelcontextprotocol","agent","agents","physical-world","manufacturing","3d-printing","human-in-the-loop","fulfilment","europe"],"pricing":null,"endpoints":[{"url":"https://handsforagents.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://mcp.handsforagents.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:handsforagents-mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-23T11:29:16.925056Z","npmKeywords":["mcp","mcp-server","model-context-protocol","modelcontextprotocol","agent","agents","physical-world","manufacturing","3d-printing","human-in-the-loop","fulfilment","europe"],"publishedAt":"2026-09-23T11:29:16.925056Z","registryName":"com.handsforagents/hands"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.583,"provenance":"derived"},{"slug":"media.3d","name":"3D & Design","confidence":0.563,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","media","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-22T11:34:51.675Z","lastProbedAt":"2026-10-22T11:34:51.675Z","statusComputedAt":"2026-10-22T11:38:11.401Z","reliability30d":{"probes":213,"successRate":1,"p50Ms":120,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":210,"ok":210,"authBoundaryOk":0,"serviceOk":210,"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-22T11:34:51.675Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":221,"error":null,"detail":{"tools":[{"name":"list_services","description":"Returns what the service does and does not do, the refused categories, prices and how to pay, as a short summary. No authentication. With full=true it returns t"},{"name":"request_quote","description":"Creates a request for a fixed-price quote from a human. The request is not binding and nothing is charged. Required: description, email and name (the person or "},{"name":"create_task","description":"Accepts a quote and the terms of service (quote_id, access_token, terms_accepted=true, terms_version as stated in the quote) and creates the task. Returns task_"},{"name":"get_status","description":"Returns the current status of a quote (id = quote_id) or a task (id = task_id): status, next_action (a short text on the next step), payments, updates, and mess"},{"name":"confirm_delivery","description":"Accepts or disputes the delivery of a task. accepted=true closes the task and, for a card hold, captures it. accepted=false with a reason opens a dispute, answe"}],"toolCount":5,"toolsHash":"5c606d9c2e14345da6853640d0e3ccfd348042c2bb45196404da2bb19c175b37","serverName":"handsforagents","capabilities":["experimental","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T10:36:38.188Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":108,"error":null,"detail":{"tools":[{"name":"list_services","description":"What this company will and will not do in the physical world, the refused categories, example prices, the payment rules and the key contract terms. Identical to"},{"name":"request_quote","description":"Send a physical-world task to a human in the Czech Republic for screening and a fixed-price quote. Not an order and not binding: nothing is charged and nothing "},{"name":"get_status","description":"Status of a quote request made with request_quote. Needs the quote_id and the access_token returned by that call; there is no other way in, and the record is ke"}],"toolCount":3,"toolsHash":"2b8e25dfc76a1d4d91823a163ae2fa3cf0be5a718158b9120ed8e46eefc33521","serverName":"handsforagents","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:27:27.969Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":165,"error":null,"detail":{"tools":[{"name":"list_services","description":"Returns what the service does and does not do, the refused categories, prices and how to pay, as a short summary. No authentication. With full=true it returns t"},{"name":"request_quote","description":"Creates a request for a fixed-price quote from a human. The request is not binding and nothing is charged. Required: description, email and name (the person or "},{"name":"create_task","description":"Accepts a quote and the terms of service (quote_id, access_token, terms_accepted=true, terms_version as stated in the quote) and creates the task. Returns task_"},{"name":"get_status","description":"Returns the current status of a quote (id = quote_id) or a task (id = task_id): status, next_action (a short text on the next step), payments, updates, and mess"},{"name":"confirm_delivery","description":"Accepts or disputes the delivery of a task. accepted=true closes the task and, for a card hold, captures it. accepted=false with a reason opens a dispute, answe"}],"toolCount":5,"toolsHash":"5c606d9c2e14345da6853640d0e3ccfd348042c2bb45196404da2bb19c175b37","serverName":"handsforagents","capabilities":["experimental","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:27:13.033Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":101,"error":null,"detail":{"tools":[{"name":"list_services","description":"What this company will and will not do in the physical world, the refused categories, example prices, the payment rules and the key contract terms. Identical to"},{"name":"request_quote","description":"Send a physical-world task to a human in the Czech Republic for screening and a fixed-price quote. Not an order and not binding: nothing is charged and nothing "},{"name":"get_status","description":"Status of a quote request made with request_quote. Needs the quote_id and the access_token returned by that call; there is no other way in, and the record is ke"}],"toolCount":3,"toolsHash":"2b8e25dfc76a1d4d91823a163ae2fa3cf0be5a718158b9120ed8e46eefc33521","serverName":"handsforagents","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T21:34:21.237Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":218,"error":null,"detail":{"tools":[{"name":"list_services","description":"Returns what the service does and does not do, the refused categories, prices and how to pay, as a short summary. No authentication. With full=true it returns t"},{"name":"request_quote","description":"Creates a request for a fixed-price quote from a human. The request is not binding and nothing is charged. Required: description, email and name (the person or "},{"name":"create_task","description":"Accepts a quote and the terms of service (quote_id, access_token, terms_accepted=true, terms_version as stated in the quote) and creates the task. Returns task_"},{"name":"get_status","description":"Returns the current status of a quote (id = quote_id) or a task (id = task_id): status, next_action (a short text on the next step), payments, updates, and mess"},{"name":"confirm_delivery","description":"Accepts or disputes the delivery of a task. accepted=true closes the task and, for a card hold, captures it. accepted=false with a reason opens a dispute, answe"}],"toolCount":5,"toolsHash":"5c606d9c2e14345da6853640d0e3ccfd348042c2bb45196404da2bb19c175b37","serverName":"handsforagents","capabilities":["experimental","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T21:33:47.701Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":114,"error":null,"detail":{"tools":[{"name":"list_services","description":"What this company will and will not do in the physical world, the refused categories, example prices, the payment rules and the key contract terms. Identical to"},{"name":"request_quote","description":"Send a physical-world task to a human in the Czech Republic for screening and a fixed-price quote. Not an order and not binding: nothing is charged and nothing "},{"name":"get_status","description":"Status of a quote request made with request_quote. Needs the quote_id and the access_token returned by that call; there is no other way in, and the record is ke"}],"toolCount":3,"toolsHash":"2b8e25dfc76a1d4d91823a163ae2fa3cf0be5a718158b9120ed8e46eefc33521","serverName":"handsforagents","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T11:27:03.650Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":222,"error":null,"detail":{"tools":[{"name":"list_services","description":"Returns what the service does and does not do, the refused categories, prices and how to pay, as a short summary. No authentication. With full=true it returns t"},{"name":"request_quote","description":"Creates a request for a fixed-price quote from a human. The request is not binding and nothing is charged. Required: description, email and name (the person or "},{"name":"create_task","description":"Accepts a quote and the terms of service (quote_id, access_token, terms_accepted=true, terms_version as stated in the quote) and creates the task. Returns task_"},{"name":"get_status","description":"Returns the current status of a quote (id = quote_id) or a task (id = task_id): status, next_action (a short text on the next step), payments, updates, and mess"},{"name":"confirm_delivery","description":"Accepts or disputes the delivery of a task. accepted=true closes the task and, for a card hold, captures it. accepted=false with a reason opens a dispute, answe"}],"toolCount":5,"toolsHash":"5c606d9c2e14345da6853640d0e3ccfd348042c2bb45196404da2bb19c175b37","serverName":"handsforagents","capabilities":["experimental","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T11:26:53.315Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":172,"error":null,"detail":{"tools":[{"name":"list_services","description":"What this company will and will not do in the physical world, the refused categories, example prices, the payment rules and the key contract terms. Identical to"},{"name":"request_quote","description":"Send a physical-world task to a human in the Czech Republic for screening and a fixed-price quote. Not an order and not binding: nothing is charged and nothing "},{"name":"get_status","description":"Status of a quote request made with request_quote. Needs the quote_id and the access_token returned by that call; there is no other way in, and the record is ke"}],"toolCount":3,"toolsHash":"2b8e25dfc76a1d4d91823a163ae2fa3cf0be5a718158b9120ed8e46eefc33521","serverName":"handsforagents","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T03:26:48.450Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":101,"error":null,"detail":{"tools":[{"name":"list_services","description":"What this company will and will not do in the physical world, the refused categories, example prices, the payment rules and the key contract terms. Identical to"},{"name":"request_quote","description":"Send a physical-world task to a human in the Czech Republic for screening and a fixed-price quote. Not an order and not binding: nothing is charged and nothing "},{"name":"get_status","description":"Status of a quote request made with request_quote. Needs the quote_id and the access_token returned by that call; there is no other way in, and the record is ke"}],"toolCount":3,"toolsHash":"2b8e25dfc76a1d4d91823a163ae2fa3cf0be5a718158b9120ed8e46eefc33521","serverName":"handsforagents","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T03:26:20.665Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":127,"error":null,"detail":{"tools":[{"name":"list_services","description":"Returns what the service does and does not do, the refused categories, prices and how to pay, as a short summary. No authentication. With full=true it returns t"},{"name":"request_quote","description":"Creates a request for a fixed-price quote from a human. The request is not binding and nothing is charged. Required: description, email and name (the person or "},{"name":"create_task","description":"Accepts a quote and the terms of service (quote_id, access_token, terms_accepted=true, terms_version as stated in the quote) and creates the task. Returns task_"},{"name":"get_status","description":"Returns the current status of a quote (id = quote_id) or a task (id = task_id): status, next_action (a short text on the next step), payments, updates, and mess"},{"name":"confirm_delivery","description":"Accepts or disputes the delivery of a task. accepted=true closes the task and, for a card hold, captures it. accepted=false with a reason opens a dispute, answe"}],"toolCount":5,"toolsHash":"5c606d9c2e14345da6853640d0e3ccfd348042c2bb45196404da2bb19c175b37","serverName":"handsforagents","capabilities":["experimental","tools"],"serverVersion":"1.30.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"list_services","description":"Returns what the service does and does not do, the refused categories, prices and how to pay, as a short summary. No authentication. With full=true it returns t"},{"name":"request_quote","description":"Creates a request for a fixed-price quote from a human. The request is not binding and nothing is charged. Required: description, email and name (the person or "},{"name":"create_task","description":"Accepts a quote and the terms of service (quote_id, access_token, terms_accepted=true, terms_version as stated in the quote) and creates the task. Returns task_"},{"name":"get_status","description":"Returns the current status of a quote (id = quote_id) or a task (id = task_id): status, next_action (a short text on the next step), payments, updates, and mess"},{"name":"confirm_delivery","description":"Accepts or disputes the delivery of a task. accepted=true closes the task and, for a card hold, captures it. accepted=false with a reason opens a dispute, answe"}],"package":{"name":"handsforagents-mcp","registry":"npm","observedAt":"2026-10-22T12:21:29.803Z","publishedAt":"2026-09-25T05:24:52.630Z","latestVersion":"0.2.1","weeklyDownloads":51},"toolSurface":{"id":"ts_dvwtn8y2ewwz","endpointId":"ep_p96t6euy253p","hash":"5c606d9c2e14345da6853640d0e3ccfd348042c2bb45196404da2bb19c175b37","toolCount":5,"serverName":"handsforagents","serverVersion":"1.30.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-02T12:29:30.313Z","lastSeenAt":"2026-10-22T11:34:51.678Z","observations":74,"toolNames":["list_services","request_quote","create_task","get_status","confirm_delivery"],"distinctSurfaces":20},"endpointFacts":[{"id":"ep_fdhy54jusxmy","url":"https://handsforagents.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-19T05:32:29.827Z","auth":{"observedAt":"2026-10-19T05:32:29.907Z","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-19T05:32:29.920Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"handsforagents.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-23T05:43:42.000Z","validTo":"2026-12-22T05:43:41.000Z","daysToExpiry":60,"sanCount":2,"fingerprint256":"C3:F3:A5:03:68:09:F9:69:50:48:8E:05:BF:AD:38:39:5F:F8:15:21:C5:21:8A:48:4A:B4:67:16:77:97:C3:DA"}},{"id":"ep_p96t6euy253p","url":"https://mcp.handsforagents.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-15T04:28:26.577Z","auth":{"observedAt":"2026-10-15T04:28:26.624Z","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-15T04:28:26.635Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"handsforagents.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-23T05:43:42.000Z","validTo":"2026-12-22T05:43:41.000Z","daysToExpiry":60,"sanCount":2,"fingerprint256":"C3:F3:A5:03:68:09:F9:69:50:48:8E:05:BF:AD:38:39:5F:F8:15:21:C5:21:8A:48:4A:B4:67:16:77:97:C3:DA"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"handsforagents-mcp","url":"https://www.npmjs.com/package/handsforagents-mcp","firstSeenAt":"2026-09-24T11:21:37.128Z","fetchedAt":"2026-10-22T12:20:29.279Z","normalizedAt":"2026-10-22T12:20:29.279Z"},{"source":"mcp_registry","key":"com.handsforagents/hands","url":"https://registry.modelcontextprotocol.io/v0/servers/com.handsforagents%2Fhands","firstSeenAt":"2026-09-20T14:18:29.807Z","fetchedAt":"2026-10-21T20:20:12.992Z","normalizedAt":"2026-10-21T20:20:12.992Z"}]},"firstSeenAt":"2026-09-20T14:18:29.807Z","updatedAt":"2026-10-22T12:21:29.803Z"}