hackshop

Plan and build a physical body for your AI agent: boards, parts list, assembly and pairing.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
80%
Naming quality
90%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • INFOTool description contains placeholder or incomplete textin assess_hackability

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,186Tokens (tool definitions)
~2.0 KBTypical response size
Moderate attention impact (0.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "hackshop-mcp": {
      "command": "npx",
      "args": [
        "hackshop-mcp"
      ]
    }
  }
}

Runnable packages

npmhackshop-mcp0.0.6stdio

Remote endpoints

https://www.hackshop.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪intake_gadget

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.

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "properties": {}
}
⚪plan_gadget(idea, answers, platform, budget_usd, owned_device_ids, ...)

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.

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."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {}
}
🟢get_build_plan(device_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "device_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Catalog device id, 1-200 characters."
    }
  },
  "required": [
    "device_id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {}
}
⚪assess_hackability(device_name)

Look up a device by id, exact name or substring and return hackability, brick risk, firmware links, community size, build page and agent platform support. Input: `device_name` 1-200 chars.

Input Schema

{
  "type": "object",
  "properties": {
    "device_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Device name or id, 1-200 characters."
    }
  },
  "required": [
    "device_name"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools