feat(mcp_modules): add taskmarket delegation module - #25
Conversation
…work to Taskmarket from the Profullstack MCP server: browse\nopen tasks, create a funded task after explicit user authorization, track\nlive status, and retrieve submissions for human review — all on Base\nmainnet via the official taskmarket CLI (first-party tooling, no secrets\nhandled in this module).\n\nSafety gates required by the integration spec:\n- createTask / acceptSubmission require confirm:true (no silent spending)\n- Base mainnet only; reward must not exceed caller-supplied maxSpend\n- no blind payment retries on unknown settlement; errors surfaced to caller\n- submissions surfaced for human review; never silently accepted/rejected\n- no private keys / secrets requested, stored, logged, or committed\n\nTests: node --test (12 passing) exercise every gate and a CLI round-trip.
Summary — Taskmarket delegation moduleThis PR adds a taskmarket module to the Profullstack MCP server so it can delegate real work to Taskmarket. What it does
Safety (per the integration requirements)
Tests: Docs: |
|
cc @ralyodio — this PR adds a Taskmarket delegation module to the server: browse tasks, create a funded task after explicit |
…L insecure-temp-file)
|
Resolved the CodeQL Insecure temporary file alert on the taskmarket module. The test previously wrote a predictable-named executable ( This should clear the security check. CI is re-running on the push. Ready for re-review when convenient. cc @ralyodio |
|
Hi @ralyodio — gentle nudge on this Taskmarket delegation PR. It's ready to merge: What it adds: an MCP delegation module so a user can complete a full Taskmarket requester workflow from inside the server — If there's anything you'd like changed before merging (style, scope, tests), I'm happy to adjust. Thanks for maintaining the project! |
Summary
Add a taskmarket delegation module to the Profullstack MCP server. It lets a
user or agent recognize that a request is better delegated to external workers
and, with explicit authorization, create or discover a Taskmarket task instead
of repeatedly spending inference or forcing an unreliable local solution.
The module is a new
mcp_modules/taskmarketpackage that registers HTTP routesand agent tools on the official server. It shells out to the official
taskmarketCLI (first-party Taskmarket tooling) for every operation, so itbehaves exactly like a user would on the command line — no reimplemented
protocol and no mock interface.
Why this is a real integration
(public, actively maintained, with a documented
mcp_modules/extensionsystem loaded automatically by
src/core/moduleLoader.js).Taskmarket — browse open tasks, create funded tasks, track status, and pull
submissions for review.
taskmarketCLI;this module never handles keys or reimplements the wire protocol.
Features
GET /taskmarket/tasks— browse open tasksGET /taskmarket/tasks/:id— task details / live statusPOST /taskmarket/tasks— create a funded task (auth-gated)GET /taskmarket/tasks/:id/submissions— list submissions for human reviewPOST /taskmarket/tasks/:id/submissions/:subId/accept— accept a reviewed submission (auth-gated)Security model (required by the integration spec)
commits private keys, seed phrases, tokens, cookies, or other secrets. The
taskmarketCLI reads the operator's configured wallet from its own securestore; this module only ever passes public task parameters to it.
createTask(funds the reward) and
acceptSubmission(costs 0.001 USDC) — requires thecaller to send
confirm: true. Without it the server refuses withrequireConfirmation: true. The server never spends on its own initiative.any other
networkis rejected.rewardmust not exceed the caller-suppliedmaxSpendceiling.the error is surfaced to the caller. The module never auto-retries a payment
whose outcome is unknown.
human to read; acceptance is a separate, confirmed call. Work is never
silently auto-accepted.
Tests & evidence
node --test→ 12 passing: every authorization / spending / network gateplus a CLI round-trip against an injected fake binary (no real wallet,
network, or funds required).
taskmarketCLI:mcp_modules/taskmarket/README.mdandmcp_modules/taskmarket/docs/api.md; runnable example inmcp_modules/taskmarket/examples/basic-usage.js.Related
Taskmarket: https://taskmarket.dev/ · Docs: https://docs.taskmarket.dev/