Handwork

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Nov 7, 2026

Commission physical-world tasks from a human service: list services, request quotes, track.

已验证STDIO仅桌面效率与工作流商业与电商

概览

AI 生成的概览

把助手连接到人工服务台,处理现实世界任务:查看服务目录、申请固定报价并查询进度。

可以做什么
  • 查看服务目录:服务台承接与不承接的范围、拒接类别、示例价格、付款规则与合同条款
  • 提交现实世界任务的报价申请,填写工作内容、交付物、截止时间、收货地址、输入文件与客户开票信息
  • 用 quote_id 和 access_token 查询此前报价申请的状态
  • 所有调用都转发到服务台的公开远程端点,并原样返回结果
适用场景
当助手需要把必须由现实世界中的人完成的工作(例如制作、测量、组装、测试或寄送)转交出去,且用户希望先拿到价格再决定时适用。它只是报价渠道,不能下单或付款。
运行要求
通过 npx(需 Node.js)或已发布的容器镜像以 stdio 在本地运行。未声明任何认证方式或环境变量。需要能访问上游端点,默认指向该服务的公开 MCP 地址,可用 HANDS_MCP_URL 环境变量改为其他地址。
安装前请注意
request_quote 会把任务详情、收货地址、输入文件和客户开票信息发送给第三方服务及人工审核者;返回的 quote_id 与 access_token 是回读该申请的唯一凭据,需妥善保存。在通过电子邮件接受报价之前不会扣费也不会开工,工具本身不具备下单或支付能力。记录保留 90 天。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Handwork,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

handwork

Some jobs need a person in the physical world: something made, measured, assembled, tested, or shipped. handwork is a small MCP server that connects an agent to a human service desk that takes on exactly that kind of work. It exposes three tools — a service catalogue, a quote request, and a status lookup — and forwards each call to the desk's public remote endpoint, returning the answer unchanged.

Asking for a quote is not placing an order. Nothing is charged and nothing is made until a quote comes back by e-mail and is accepted there; the tools themselves carry no ordering or payment capability.

Tools

  • list_services — what the service will and will not do, the categories it refuses, example prices, how payment works, and the key contract terms. Takes no arguments and needs no authentication.
  • request_quote — describe a physical-world task (what is to be done, which services it needs, deliverables, deadline, delivery address, input files, currency) along with the client's invoice details, and a human screens it and replies with a fixed-price quote by e-mail within 24 hours. The reply carries a quote_id and an access_token; keep the token, it is the only way to read the request back. No field at the top level is required, but the nested task object requires a description and the nested client object requires email and name.
  • get_status — the state of an earlier quote request. Both id (the quote_id) and access_token are required. Records are kept for 90 days, and the quote itself arrives by e-mail.

How it works

handwork is a forwarding client, not a reimplementation. It serves tools/list itself, from the tool definitions the remote publishes, and for every tools/call it opens a streamable-HTTP JSON-RPC session with the upstream — initialize, then notifications/initialized, then the call, carrying the Mcp-Session-Id header whenever the upstream issues one — and passes the upstream result through verbatim. If the upstream cannot be reached or answers with an error, the call fails with a handwork error: message instead of a fabricated result.

The upstream endpoint defaults to https://handsforagents.com/mcp. Setting the HANDS_MCP_URL environment variable points the client at a different endpoint (a reconstruction affordance; the published service itself names no override).

Run it

As an MCP server over stdio:

bash
npx -y @reneturcios/handwork mcp

MCP client configuration:

json
{  "mcpServers": {    "handwork": {      "command": "npx",      "args": ["-y", "@reneturcios/handwork", "mcp"]    }  }}

In a container (the default command is mcp):

bash
docker run -i ghcr.io/cloudcorprecords/handworkdocker run --rm ghcr.io/cloudcorprecords/handwork --version

CLI

bash
handwork mcp          # serve the tools over stdiohandwork --version    # print the version

Any other subcommand prints usage and exits with code 2.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner via tsx; stubbed upstream, no networknpm run dev     # run the CLI from source

The tests drive the forwarding core against a fake JSON-RPC upstream injected in place of fetch, covering the handshake order, session handling, verbatim pass-through, event-stream responses, error surfacing, and a check that the served tools/list matches the captured upstream surface exactly.

License

MIT — see LICENSE.

来源:README.md,提交 10c2bb9

工具

3

list_services

List services, prices and terms

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 https://handsforagents.com/services.json. No authentication.

无需输入参数。

request_quote

Request a fixed-price quote from a human

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 is made until you accept the quote. A human answers by e-mail within 24 hours, counted in real time, weekends and Czech public holidays included. Returns quote_id, access_token, response_due_at and nda_url. Store the access_token — it is the only way to read the quote back. No authentication. Legacy endpoint: a quote requested here is ordered by e-mail. To order and pay by card through tools (create_task, Stripe Checkout), send request_quote to https://mcp.handsforagents.com/mcp instead.

输入参数taskagentclientallow_anonymised_example

get_status

Read a quote request back

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 kept for 90 days. The quote itself is sent by e-mail. Only for quotes requested at this legacy endpoint; tasks and payments are at https://mcp.handsforagents.com/mcp.

输入参数id必填access_token必填

版本历史

1
  1. v0.1.0最新Nov 4, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分