hackshop
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Plan and build a physical body for your AI agent: boards, parts list, assembly and pairing.
| Author | dev.hackshop |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1743 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"hackshop": {
"url": "https://www.hackshop.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (10)
intake_gadgetReturn the 4 intake questions (where it lives, how you interact, room sensing, budget), why each matters and how each answer maps to plan_gadget. Ask the human these, then call plan_gadget with `answers`. No input.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
plan_gadgetDeterministically plan a physical body for an AI agent using Meta Muse boards. Ask the intake questions first (intake_gadget, or the `questions` this returns until `intake.complete` is true), then pass the human's choices as `answers`. Inputs: `idea` 3-2000 chars (optional when `answers` or `needs` are given); `answers` {size, interaction, sensing, budget} using the intake option values; `platform` one of muse-esp32, muse-linux, any (default any); `budget_usd` number greater than 0, up to 100000; `owned_device_ids` up to 50 catalog ids; `needs` values: voice, screen, images, touch, camera, air-sensors, e-ink, battery, round, home-tunnel, big-screen, compute, linux; `size` one of pocket, desk, wall, hidden, any (default any); `limit` 1-5 (default 3). Boards that meet the hard needs and the budget rank first, cheapest first. Returns fit, notes, warnings, intake status, questions, picks with difficulty, terms and next steps.
Parameters:
idea— string — Gadget idea or use case, 3-2000 characters. Optional when `answers` or `needs` are given.size— string — Preferred size or placement: pocket, desk, wall, hidden, any. Default any.limit— number — Number of picks to return: 1-5, default 3.needs— array — Optional explicit needs. Allowed: voice, screen, images, touch, camera, air-sensors, e-ink, battery, round, home-tunnel, big-screen, compute, linux.answers— object — The human's intake answers, by question id, using the option values from intake_gadget.platform— string — Platform filter: muse-esp32, muse-linux, or any. Default any.budget_usd— number — Optional hardware budget in USD. Must be greater than 0, max 100000.owned_device_ids— array — Catalog device ids the user already owns. Max 50.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_build_planReturn the complete deterministic build plan for a catalog device id: difficulty, board-specific flash warnings, parts, shopping list with buy_options, prices checked date and purchase policy, steps, machine-readable assembly with verify checks, commands, links, caveats and an agent-ready brief. Input: `device_id` 1-200 chars.
Parameters:
device_id(required) — string — Catalog device id, 1-200 characters.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
assess_hackabilityLook up a device by id, exact name or substring and return hackability, brick risk, firmware links, curated firmware playbooks, community size, build page and agent platform support. Input: `device_name` 1-200 chars.
Parameters:
device_name(required) — string — Device name or id, 1-200 characters.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_reverse_engineering_examplesSearch Hackshop's curated hardware reverse-engineering examples and research methods. With no query, returns the newest dated examples first. Evidence labels distinguish reproduced work, documented implementations, author demos and analysis methods; they do not imply compatibility with similar-looking hardware.
Parameters:
limit— numberquery— string — Optional case-insensitive search across title, device, exact models, summary, outcome and tags. Empty returns the latest examples.method— stringcategory— stringevidence— stringuse_case— string — Filter source-backed design starters by intended use.max_device_price_usd— number — Maximum lowest-listed device price in USD; unknown prices excluded. Accessories, host, shipping and tax are extra; availability is returned separately.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_firmware_playbooksFind curated owner-authorized firmware, local-protocol and cloud-replacement playbooks. Results prefer the least-invasive path and are not compatibility approval; call check_firmware_compatibility before preparation.
Parameters:
query(required) — stringlimit— numberdevice_id— stringintervention— stringrisk_tolerance— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_firmware_compatibilityFail-closed compatibility check for one firmware playbook. Required model, codename, revision, SoC or firmware identifiers must exactly match a curated target; missing facts return unknown and mismatches return unsupported.
Parameters:
playbook_id(required) — stringobserved(required) — object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_firmware_playbookReturn a curated firmware playbook with exact targets, prerequisites, backups, recovery, independent risk axes, sources, validation checks and the human-only destructive-action boundary.
Parameters:
playbook_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
verify_firmware_artifactCompare a caller-supplied filename, source URL and SHA-256 with Hackshop's curated metadata. Hackshop does not fetch, upload or redistribute the artifact; absent hashes return unknown.
Parameters:
playbook_id(required) — stringfilename(required) — stringsha256(required) — stringsource_url(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
prepare_firmware_jobPrepare a non-executing firmware manifest after owner authorization and an exact compatibility match. Returns backup, recovery, sources, validation and stop points; never returns a flash command.
Parameters:
playbook_id(required) — stringowner_authorized(required) — booleanobserved(required) — object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.