{"name":"dev.hackshop/hackshop-mcp","slug":"hackshop-mcp","title":"hackshop","description":"Plan and build a physical body for your AI agent: boards, parts list, assembly and pairing.","url":"https://mcp.market/server/hackshop-mcp","rating":null,"grade":"A","score":93,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":31,"stars":0,"forks":0,"downloads_week":45,"last_push_at":"2026-10-08T16:45:45.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T06:25:38.825Z","last_ok_at":"2026-11-04T06:25:38.825Z","latency_ms":434},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.hackshop.dev","version":"0.0.6","remotes":[{"type":"streamable-http","url":"https://www.hackshop.dev/mcp"}],"packages":[{"registryType":"npm","identifier":"hackshop-mcp","version":"0.0.6","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional. Improves propose_hardware when the MCP host cannot sample.","format":"string","isSecret":true,"name":"ANTHROPIC_API_KEY"},{"description":"Set to 0 to turn off anonymous usage pings.","format":"string","name":"HACKSHOP_TELEMETRY"}]}],"tools":[{"name":"assess_hackability","description":"Look 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"device_name":{"type":"string","minLength":1,"maxLength":200,"description":"Device name or id, 1-200 characters."}},"required":["device_name"]}},{"name":"check_firmware_compatibility","description":"Fail-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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"playbook_id":{"type":"string","minLength":1,"maxLength":200},"observed":{"type":"object","properties":{"model_number":{"type":"string","minLength":1,"maxLength":200,"description":"Model number from the physical label, not the retail family name."},"codename":{"type":"string","minLength":1,"maxLength":200,"description":"Documented hardware codename, when available."},"hardware_revision":{"type":"string","minLength":1,"maxLength":200,"description":"Exact hardware or PCB revision."},"soc":{"type":"string","minLength":1,"maxLength":200,"description":"Confirmed SoC or module identifier."},"sensor":{"type":"string","minLength":1,"maxLength":200,"description":"Confirmed image sensor or other sensor identifier."},"wifi_module":{"type":"string","minLength":1,"maxLength":200,"description":"Confirmed Wi-Fi or radio module identifier."},"firmware_version":{"type":"string","minLength":1,"maxLength":200,"description":"Installed vendor firmware version."}},"additionalProperties":false}},"required":["playbook_id","observed"]}},{"name":"find_firmware_playbooks","description":"Find 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"device_id":{"type":"string","minLength":1,"maxLength":200},"intervention":{"type":"string","enum":["official_local_api","protocol_replacement","cloud_replacement","stock_firmware_overlay","custom_userspace","full_replacement","research_only"]},"risk_tolerance":{"type":"string","enum":["low","moderate","high"],"default":"moderate"},"limit":{"type":"number","minimum":1,"maximum":10,"default":5}},"required":["query"]}},{"name":"get_build_plan","description":"Return 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"device_id":{"type":"string","minLength":1,"maxLength":200,"description":"Catalog device id, 1-200 characters."}},"required":["device_id"]}},{"name":"get_firmware_playbook","description":"Return a curated firmware playbook with exact targets, prerequisites, backups, recovery, independent risk axes, sources, validation checks and the human-only destructive-action boundary.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"playbook_id":{"type":"string","minLength":1,"maxLength":200}},"required":["playbook_id"]}},{"name":"intake_gadget","description":"Return 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"plan_gadget","description":"Deterministically 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"idea":{"type":"string","minLength":3,"maxLength":2000,"description":"Gadget idea or use case, 3-2000 characters. Optional when `answers` or `needs` are given."},"answers":{"type":"object","properties":{"size":{"type":"string","enum":["pocket","desk","wall","hidden"],"description":"Where should this body live? pocket = Pocket; desk = Desk; wall = Wall or fridge; hidden = Hidden, no screen."},"interaction":{"type":"string","enum":["voice","touch","light-button"],"description":"How should you interact with it? voice = Talk to it; touch = Touch screen; light-button = Light and button."},"sensing":{"type":"string","enum":["camera","air-quality","none"],"description":"Should it sense the room? camera = Camera; air-quality = Air quality; none = None."},"budget":{"type":"string","enum":["under-25","under-50","under-100","no-limit"],"description":"What budget should I plan around? under-25 = Under $25; under-50 = Under $50; under-100 = Under $100; no-limit = No limit."}},"additionalProperties":false,"description":"The human's intake answers, by question id, using the option values from intake_gadget."},"platform":{"type":"string","enum":["muse-esp32","muse-linux","any"],"default":"any","description":"Platform filter: muse-esp32, muse-linux, or any. Default any."},"budget_usd":{"type":"number","exclusiveMinimum":0,"maximum":100000,"description":"Optional hardware budget in USD. Must be greater than 0, max 100000."},"owned_device_ids":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Catalog device ids the user already owns. Max 50."},"needs":{"type":"array","items":{"type":"string","enum":["voice","screen","images","touch","camera","air-sensors","e-ink","battery","round","home-tunnel","big-screen","compute","linux"]},"description":"Optional explicit needs. Allowed: voice, screen, images, touch, camera, air-sensors, e-ink, battery, round, home-tunnel, big-screen, compute, linux."},"size":{"type":"string","enum":["pocket","desk","wall","hidden","any"],"default":"any","description":"Preferred size or placement: pocket, desk, wall, hidden, any. Default any."},"limit":{"type":"number","minimum":1,"maximum":5,"default":3,"description":"Number of picks to return: 1-5, default 3."}}}},{"name":"prepare_firmware_job","description":"Prepare 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"playbook_id":{"type":"string","minLength":1,"maxLength":200},"owner_authorized":{"type":"boolean"},"observed":{"type":"object","properties":{"model_number":{"type":"string","minLength":1,"maxLength":200,"description":"Model number from the physical label, not the retail family name."},"codename":{"type":"string","minLength":1,"maxLength":200,"description":"Documented hardware codename, when available."},"hardware_revision":{"type":"string","minLength":1,"maxLength":200,"description":"Exact hardware or PCB revision."},"soc":{"type":"string","minLength":1,"maxLength":200,"description":"Confirmed SoC or module identifier."},"sensor":{"type":"string","minLength":1,"maxLength":200,"description":"Confirmed image sensor or other sensor identifier."},"wifi_module":{"type":"string","minLength":1,"maxLength":200,"description":"Confirmed Wi-Fi or radio module identifier."},"firmware_version":{"type":"string","minLength":1,"maxLength":200,"description":"Installed vendor firmware version."}},"additionalProperties":false}},"required":["playbook_id","owner_authorized","observed"]}},{"name":"verify_firmware_artifact","description":"Compare 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"playbook_id":{"type":"string","minLength":1,"maxLength":200},"filename":{"type":"string","minLength":1,"maxLength":500},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"source_url":{"type":"string","format":"uri"}},"required":["playbook_id","filename","sha256","source_url"]}}],"scan":{"score":93,"grade":"A","scanned_at":"2026-10-14T12:22:24.965Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-14T12:22:24.936Z","components":{"code":{"score":25,"max":25,"notes":["57 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 339ms"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":8,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://www.hackshop.dev/mcp","reachable":true,"authRequired":false,"latencyMs":339,"serverInfo":{"name":"hackshop","version":"0.0.7"}}],"packages":[{"registryType":"npm","identifier":"hackshop-mcp","version":"0.0.6","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-10-04T19:27:04.166Z","repositoryUrl":"git+https://github.com/msanchezgrice/hackshop-mcp.git","weeklyDownloads":45}],"repo":{"found":true,"owner":"msanchezgrice","repo":"hackshop-mcp","archived":false,"pushedAt":"2026-10-08T16:45:45Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/337896062?v=4","ownerCreatedAt":"2012-02-22T15:46:34Z","license":"MIT"},"icon":{"url":"https://www.hackshop.dev/apple-icon.png?b326080e2ebe5c8e","source":"site","width":180,"height":180},"presence":{"stars":0,"forks":0,"downloadsWeek":45,"license":"MIT","lastPushAt":"2026-10-08T16:45:45.000Z","score":31}}}},"grade_history":[],"reviews":[]}