Koskamo

EasyCircuit MCP

An official MCP server for EasyCircuit that allows AI assistants to search a verified parts catalog, retrieve component pinouts and capabilities, perform wiring checks on circuit designs, and save designs to the EasyCircuit editor for hobbyists and makers prototyping electronics.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

EasyCircuit MCP logo, by EasyCircuitVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by EasyCircuit
MCP endpoint (Streamable HTTP)
https://easycircuit.app/mcp
Vendor documentation

What you can do with it

  • Search the parts catalog by name, function, or role
  • Return an exact part's pinout including voltage and polarity
  • Run wiring checks on a circuit design to find structural mistakes
  • Save a validated design and get a link to open in the editor

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
easycircuit 1.0.0
MCP protocol
2025-06-18
Tools
7 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

EasyCircuit is an electronics prototyping tool with a parts catalog and wiring checks. Use it whenever the user is planning, wiring, or debugging a hobby electronics prototype (a microcontroller board with sensors, displays, motors, pumps, LEDs, or batteries), including when they say they are stuck. Answer pin questions from get_part_pins rather than memory. When a prototype misbehaves (it resets, a display stays blank, a sensor reads zero, a motor or pump will not run), write the user's wiring as a design and run check_design: it finds missing grounds, unwired power pins, wrong pins, and loads with no supply of their own. If the user has not described their parts and wiring yet, ask for them and offer this check. To design a circuit: use search_parts to pick real parts, get_part_pins for their exact pinouts, write the design JSON, run check_design, fix every blocking issue and every real designWarning, then call save_design and give the user the link so they can open, edit, and build it in the EasyCircuit editor. Pin facts are reference data: say when a fact is unverified, and never invent pins. Do not design mains (wall AC) wiring.

Tools

7 advertised

search_parts — Search parts catalog
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches EasyCircuit's electronics parts catalog by name, function or role (for example 'OLED display', 'temperature sensor', 'ESP32 board'). Returns matching parts with their catalog ids, interfaces, pin roles, and whether each can be ordered in a kit.

search_parts input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "role": {
      "type": "string",
      "description": "Optional circuit role, e.g. controller, sensor, load."
    },
    "limit": {
      "type": "integer",
      "default": 8,
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "What the part is or does."
    },
    "availability": {
      "enum": [
        "catalog",
        "one_click"
      ],
      "type": "string",
      "default": "catalog",
      "description": "one_click limits results to parts orderable in a kit."
    }
  }
}
search_parts annotations
{
  "title": "Search parts catalog",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_part — Get part details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one catalog part by its catalog id, including its pin evidence and electrical capabilities.

get_part input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
get_part annotations
{
  "title": "Get part details",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_part_pins — Get part pinout
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the pinout of an exact part: each pin's function, voltage, direction and polarity, with the source of each fact and any conflicting sources. Long pinouts are paged; next_offset is the offset of the next page.

get_part_pins input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 64,
      "maximum": 64,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Exact part name, catalog id, or part number."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "minimum": 0
    }
  }
}
get_part_pins annotations
{
  "title": "Get part pinout",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_part_capabilities — Get part capabilities
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the electrical capabilities of an exact part: pin roles, drive type, voltage ranges, required terminals, protocols, and whether each fact is physically verified.

get_part_capabilities input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 64,
      "maximum": 64,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Exact part name, catalog id, or part number."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "minimum": 0
    }
  }
}
get_part_capabilities annotations
{
  "title": "Get part capabilities",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
catalog_summary — Catalog summary
Advertised by the server during the last successful anonymous check.
Advertised read-only

Counts catalog parts by status and role.

catalog_summary input schema
{
  "type": "object",
  "properties": {}
}
catalog_summary annotations
{
  "title": "Catalog summary",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_design — Check circuit design
Advertised by the server during the last successful anonymous check.
Advertised read-only

Runs EasyCircuit's wiring checks on a complete circuit design without saving it. Returns status (passed or blocked), blockingIssues that prevent saving, designWarnings from general electrical rules (such as a part with no ground pin) that do not apply to every part, and reviewWarnings for pin facts that are not yet physically verified.

check_design input schema
{
  "type": "object",
  "required": [
    "design"
  ],
  "properties": {
    "design": {
      "type": "object",
      "required": [
        "components",
        "connections"
      ],
      "properties": {
        "nets": {
          "type": "object"
        },
        "summary": {
          "type": "string"
        },
        "components": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "connections": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "description": "A complete circuit. nets: {net_id: {label, color '#rrggbb'}}. components: [{id, name, type: controller|sensor|switch|power|load|bus|protection|camera|assembly|wiring, pins: [{id, label, side: left|right, net}]}]. connections: [{id, from: 'componentId.pinId', to: 'componentId.pinId', net}]. Ids are short lowercase strings and pin labels are the part's real pin labels. The wiring checks expect every wired part's power and GND pins to be wired, a common GND, VCC, GND, SDA and SCL on I2C devices, and a battery or power-supply component for motors, pumps, solenoids and heaters."
    }
  }
}
check_design annotations
{
  "title": "Check circuit design",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
save_design — Save design to EasyCircuit
Advertised by the server during the last successful anonymous check.
Open-world

Saves a circuit design that has no blocking wiring issues and returns a link that opens it in the EasyCircuit editor, with schematic, breadboard and perfboard views, editing, and parts ordering. Anyone with the link can open a copy. Designs with blocking issues are not saved.

save_design input schema
{
  "type": "object",
  "required": [
    "design",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Short project name shown in the editor."
    },
    "design": {
      "type": "object",
      "required": [
        "components",
        "connections"
      ],
      "properties": {
        "nets": {
          "type": "object"
        },
        "summary": {
          "type": "string"
        },
        "components": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "connections": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "description": "A complete circuit. nets: {net_id: {label, color '#rrggbb'}}. components: [{id, name, type: controller|sensor|switch|power|load|bus|protection|camera|assembly|wiring, pins: [{id, label, side: left|right, net}]}]. connections: [{id, from: 'componentId.pinId', to: 'componentId.pinId', net}]. Ids are short lowercase strings and pin labels are the part's real pin labels. The wiring checks expect every wired part's power and GND pins to be wired, a common GND, VCC, GND, SDA and SCL on I2C devices, and a battery or power-supply component for motors, pumps, solenoids and heaters."
    }
  }
}
save_design annotations
{
  "title": "Save design to EasyCircuit",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
607 ms
95th percentile latency
607 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 607 ms · metadata changed · 7 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http easycircuit-mcp https://easycircuit.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add easycircuit-mcp --url https://easycircuit.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable easycircuit-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "easycircuit-mcp": {
      "url": "https://easycircuit.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "easycircuit-mcp": {
      "type": "streamableHttp",
      "url": "https://easycircuit.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start easycircuit-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "easycircuit-mcp": {
      "type": "http",
      "url": "https://easycircuit.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http easycircuit-mcp https://easycircuit.app/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "easycircuit-mcp": {
      "url": "https://easycircuit.app/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "easycircuit-mcp": {
      "serverUrl": "https://easycircuit.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like EasyCircuit MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run EasyCircuit MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing