Skip to main content
On this pageConnect your clientWhat agents can doHow it worksA worked exampleAuthentication and permissionsCreditsToolsPlugin and skillsSecurity and limitsTroubleshooting

AI agents

Resin MCP server

Connect Claude Code, Claude, Codex, Cursor, VS Code, or any other client that speaks the Model Context Protocol (MCP) to your Resin projects. Your agent talks to Resin in plain language, and Resin does the engineering. Helper tools let the agent read a design, look at it, search for parts, run the checks, move files in and out, and see what has been spent. Every change is recorded as a version you can restore.

Server URL

https://api.resineda.com/mcp

Streamable HTTP. Resin hosts the server, so there is nothing to install. Sign in with your Resin account when your client asks.

Connect your client

Pick your client. The server is remote, so there is nothing to install: point the client at the server URL and sign in. The first connection opens a Resin consent screen where you choose what the agent may see and do.

Claude Code
  1. Install Claude Code

    If you have not already, install the Claude Code CLI or the Claude Code desktop app.

  2. Add the Resin MCP server

    From your terminal, add the server to the current project.

    claude mcp add --transport http resin https://api.resineda.com/mcp

    To make it available in all your projects, add --scope user.

    claude mcp add --transport http --scope user resin https://api.resineda.com/mcp
  3. Authenticate

    Start the sign-in. You can also start it from inside Claude Code with /mcp.

    claude mcp login resin

    On the Resin consent screen, choose the workspace, the projects, and the permissions, then approve.

  4. Verify the connection

    Start Claude Code and run /mcp to confirm that resin is connected. Then ask Claude Code to list your Resin projects.

Claude (chat and Cowork)

For chat in the Claude apps and for Cowork. On Team and Enterprise plans, an owner adds the connector before members connect their own accounts.

  1. Add a custom connector

    In Claude, add a custom connector. Name it Resin and give it the remote MCP server URL.

    https://api.resineda.com/mcp

    For authentication choose OAuth. Resin registers the client itself, so leave the OAuth client ID and client secret empty.

  2. Authenticate

    Connect the connector. On the Resin consent screen, choose the workspace, the projects, and the permissions, then approve.

  3. Verify the connection

    Ask Claude to list your Resin projects, and confirm that it uses the Resin connector.

Codex
  1. Install Codex

    If you have not already, install the Codex CLI.

  2. Add the Resin MCP server

    From your terminal, add the server.

    codex mcp add resin --url https://api.resineda.com/mcp
  3. Authenticate

    Complete the browser sign-in if Codex starts one when you add the server. Otherwise start it yourself.

    codex mcp login resin

    On the Resin consent screen, choose the workspace, the projects, and the permissions, then approve.

  4. Verify the connection

    Open or restart Codex and run /mcp to confirm that resin is connected. Then ask Codex to list your Resin projects.

    The ChatGPT desktop app and the Codex IDE extension share this configuration, so Resin is available there too.

Cursor
  1. Add the Resin MCP server

    Add Resin to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for all your projects.

    {
      "mcpServers": {
        "resin": { "url": "https://api.resineda.com/mcp" }
      }
    }
  2. Authenticate

    Cursor asks you to sign in the first time it uses the server. On the Resin consent screen, choose the workspace, the projects, and the permissions, then approve.

  3. Verify the connection

    Ask Cursor to list your Resin projects.

VS Code
  1. Add the Resin MCP server

    VS Code needs an AI assistant extension that supports MCP. Create or edit .vscode/mcp.json in your project.

    {
      "servers": {
        "resin": { "type": "http", "url": "https://api.resineda.com/mcp" }
      }
    }
  2. Authenticate

    VS Code asks you to sign in the first time it uses the server. On the Resin consent screen, choose the workspace, the projects, and the permissions, then approve.

  3. Verify the connection

    Reload the window, then ask your assistant to list your Resin projects.

Other clients
  1. Point the client at the server

    Any client that supports remote MCP servers over Streamable HTTP can connect. Clients that only support SSE cannot.

    https://api.resineda.com/mcp
  2. Authenticate

    Sign in with OAuth when the client asks, or send a personal access token.

Personal access token (CI, scripts, clients without OAuth)
  1. Create a token

    In Resin, open Settings > Agents & API and create a personal access token with the permissions the job needs.

  2. Send it with every request

    The token goes in the Authorization header.

    Authorization: Bearer rsn_pat_…
  3. Configure your client

    In Claude Code, pass the header when you add the server.

    claude mcp add --transport http resin https://api.resineda.com/mcp --header "Authorization: Bearer rsn_pat_…"

    Codex reads the token from an environment variable. Add this to ~/.codex/config.toml and set RESIN_MCP_TOKEN.

    [mcp_servers.resin]
    url = "https://api.resineda.com/mcp"
    bearer_token_env_var = "RESIN_MCP_TOKEN"

    In Cursor and VS Code, add a headers entry next to url.

    "headers": { "Authorization": "Bearer rsn_pat_…" }

What agents can do

Each area below comes with something you can say to your agent as it is written.

  1. Design from a description

    Describe what you need and Resin starts a new project. It asks what it needs to know, chooses real parts, and draws the schematic.

    Ask your agent

    “Design a USB to CAN adapter in Resin: USB-C, an isolated CAN FD transceiver, and 3.3 V logic.”

  2. Change an existing design

    Ask for a change in plain words. Resin decides which parts to use and how they connect, makes the change, and says what it changed.

    Ask your agent

    “In my usb-can project, add a CAN transceiver on CAN1 with decoupling and termination, and bring the bus out on J2.”

  3. Read a design and write firmware from it

    The agent reads the circuit: every component, every net, and the net on each pin. From that it writes pin maps and compares firmware with the board.

    Ask your agent

    “Which MCU pin is SPI1_SCK on in the usb-can project? Generate a C header with all pin assignments.”

  4. Find parts and create library parts

    The agent searches the parts catalog by keyword or part number and gets package, price, and stock. When Resin has no drawing for a part yet, the agent can have its symbol and footprint created in the project library. Creating a part uses AI credits.

    Ask your agent

    “Find a 3.3 V LDO in SOT-23 that is in stock, and create the library part for it if Resin does not have one.”

  5. Run the checks and the design review

    The electrical checks and the layout checks are free and answer at once, in sentences. The design review reads the whole schematic and saves its findings to the review panel in Resin. It uses AI credits.

    Ask your agent

    “Run the checks on my sensor board and tell me what needs fixing. Then run a quick design review.”

  6. Lay out a board

    Ask for the layout in plain words. Resin plans the board, places the parts, and routes it. The layout keeps working in the background and reports into the conversation. The agent follows the layout, passes on any question Resin asks, and can stop it. Resin can undo a finished layout when you ask.

    Ask your agent

    “Lay out the usb-can board. Keep J1 and J2 where they are, and tell me which nets are still unrouted when it is done.”

  7. Import a design from another tool

    Resin gives the agent a short-lived upload address and the agent sends the file there. A design or a board from another tool becomes a new project. A library file is added to the library of a project you name.

    Ask your agent

    “Import hardware/usb_can.PcbDoc into Resin as a new project and give me the link.”

  8. Export manufacturing files

    The agent asks Resin for the manufacturing package of a board and gets a download address that is valid for 15 minutes. Other exports, such as the bill of materials on its own, work the same way.

    Ask your agent

    “Export the manufacturing files for the usb-can board and save them in ./fab.”

How it works

Your agent sends a message to Resin with chat. It reaches the same Resin you talk to in the chat panel of the app. Resin makes the engineering decisions and answers in plain text.

  • Conversations continue. The next message about a project goes to the conversation your agent already has there, so Resin remembers what was said. The agent can also start a new conversation.
  • The conversation shows up in the chat panel in Resin, under your name. You can read it there and carry on yourself.
  • A change applies to your project straight away. Open the project in Resin and the change is there.
  • Every change is recorded as a version, and a reply from Resin says when a version was saved before the turn. To undo a change, open Version Control in Resin and restore an earlier version.
  • Long tasks are waited on. A turn of a conversation, a design review, creating a part, a board layout, and the manufacturing package can take minutes. The agent calls wait until the answer is ready, and stop ends a task.
  • Answers end with a link that opens what they are about in Resin: the sheet, the board, or the project.
  • Things are named the way you name them: a project by its name, a component as U3, a net as +3V3, a pin as U3.7, a part by its manufacturer part number.
  • The helper tools do what is asked and never guess. A helper that lacks something says exactly what to supply. Only chat makes engineering decisions.

A worked example

You ask your agent for a change. The agent passes the request to Resin with chat and gives you the reply.

Ask your agent

“In the USB CAN project, add a CAN transceiver on CAN1 with decoupling and termination, and bring the bus out on J2.”

Your agent calls chat

{
  "project": "USB CAN",
  "message": "Add a CAN transceiver on CAN1 with decoupling and termination, and bring the bus out on J2."
}

Resin answers

Resin: I added U4, a TCAN1042VDRQ1 CAN transceiver, on sheet CAN.
TXD and RXD go to the CAN1 pins of U1. C12 (100 nF) decouples the 5 V supply.
R7 (120 Ω) terminates the bus, and CANH and CANL go to J2 pins 2 and 3.
Questions:
  1. STB is tied to ground, so the transceiver is always on. Should a pin of U1 control it instead?
Changed: Added U4, C12 and R7 on sheet CAN. Connected CAN_TX, CAN_RX, CANH and CANL.
A version was saved before this turn, so it can be undone from Version Control.
Charged: 6.4 credits. This conversation so far: 6.4.
Open: https://resineda.com/w/…/projects/…?show=schematic&sheet=CAN

When Resin needs longer

Resin is working on it.
  Choosing parts
  Drawing the schematic
Call wait for the reply.

The reply says what Resin did, asks what it still needs to know, states what was charged, and ends with a link that opens the change in Resin. Nothing asks you to confirm a charge: an agent can spend only on a connection you gave the ai:spend permission, and never past the credit limit you set for it. get_usage shows what has been spent. When a turn takes longer than the call waits, the agent gets the progress so far and calls wait for the reply.

Authentication and permissions

Sign-in is OAuth 2.1. You approve each connection on a Resin consent screen, where you choose the workspace, which projects the agent may see (all of them or the ones you select), and which permissions it gets.

PermissionWhat it allows
design:readRead your projects, checks and renders. Needed by wait, stop, list_projects, read_design, view, search_parts, run_erc, run_drc, and get_usage.
design:writeChange your designs. Includes design:read. Needed by chat, run_ai_review, and import_design.
ai:spendRun tasks that use AI credits. Needed by chat, generate_part, and run_ai_review.
fab:exportExport manufacturing files. Needed by export_design.
library:writeAdd parts to the project library. Needed by generate_part.
  • An agent can never do more than you can.
  • A connection limited to chosen projects cannot create a new project.
  • Workspace admins can turn agent access off and turn personal access tokens off.
  • Every tool call is recorded. You can see recent activity and disconnect any app in Settings > Agents & API.

Credits

Most of what an agent does is free. The tools that use AI credits ask first and say what they charged.

  • Tools that use AI credits: chat, generate_part, and run_ai_review. Every other tool is free. Calls are rate-limited.
  • Talking to Resin, generating a library part and running an AI design review use AI credits. Each is charged for the AI its run actually uses. That is not known until the work is done, so there is no price list and no estimate.
  • Your agent is not asked to confirm a charge. A connection may spend only when you gave it ai:spend, and never past the credit limit you set for it.
  • You are charged once, when the work succeeds, and the answer states the exact credits charged. Work that fails or is stopped costs nothing.
  • get_usage reports what the connection has been charged, what is left of its limit, what the workspace has used and has left this month, and what each recent paid task cost.
  • A board layout that Resin starts from a chat message is not charged per message: it uses a share of the workspace's monthly AI allowance, which you can change by asking in chat, and it counts toward the workspace total, not toward the connection's limit.
  • An answer from Resin also states what the conversation has cost so far.

Tools

The server offers these tools, grouped by what they are for. Every tool takes a few plain arguments and answers in plain text. Each one is described the way the server describes it to your agent.

Talk

chat sends a message to Resin, and Resin does the engineering, the board layout included. wait collects the answer of a long task or follows a board layout, and stop ends one.

ToolWhat it doesPermissions
chatSend a message to Resin, which designs the electronics. Can replace or remove existing work. Uses AI credits.design:write, ai:spend
waitWait for a task Resin is still working on, and read its answer.design:read
stopStop a task Resin is still working on in a project.design:read

Look

Find a project, read its circuit or its board as text, and see a picture of a sheet or a board. Nothing is changed.

ToolWhat it doesPermissions
list_projectsList the projects this connection can use, most recently changed first.design:read
read_designRead a project's circuit or board as plain text.design:read
viewDraw one schematic sheet or one side of a board as a picture.design:read

Parts

Search the parts catalog, and create the symbol and footprint of a part Resin has no drawing for yet.

ToolWhat it doesPermissions
search_partsSearch Resin's parts catalog by keywords or by manufacturer part number, for example '3.3V LDO SOT-23' or 'TCAN1042'.design:read
generate_partCreate a library part for a manufacturer part number: Resin reads the datasheet and builds the symbol and, when the package can be verified, the footprint. Uses AI credits.library:write, ai:spend

Check

The electrical checks and the layout checks answer at once. The design review is a long task. To fix or accept a finding, the agent asks in chat.

ToolWhat it doesPermissions
run_ercRun the electrical checks on a project's schematic.design:read
run_drcRun the layout checks on a board, and check that the board matches the schematic.design:read
run_ai_reviewRun an independent design review of the schematic. Uses AI credits.design:write, ai:spend

Files

A tool call cannot carry a file, so both tools answer with a signed address that is valid for 15 minutes. An agent with a shell uploads or downloads the file itself. Any other agent gives you the link.

ToolWhat it doesPermissions
import_designBring a file into Resin.design:write
export_designGet a file out of a project.fab:export

Usage

What the connection has been charged, what is left of its credit limit, what the workspace has used this month, and what each recent paid task cost.

ToolWhat it doesPermissions
get_usageSee what has been spent.design:read

Plugin and skills

A Resin plugin for Claude Code adds two skills: a base skill that teaches an agent how to work with Resin through these tools, and a firmware skill for pin maps. The plugin is coming to the plugin directory.

Security and limits

  • Sign-in uses OAuth 2.1 with PKCE.
  • Tokens are scoped to this server.
  • Calls are rate-limited.
  • Upload and download addresses are signed and stop working after 15 minutes. Resin checks your permissions again when one is used.
  • Text that comes from datasheets, part listings, or imported files is marked as untrusted, and agents are told not to follow instructions inside it.
  • Supported protocol versions: 2025-03-26 through 2026-07-28.

Troubleshooting

Find the symptom and apply the fix.

Sign-in loops, or the client says it could not reach the server

Check that the URL ends with /mcp. If it does, your workspace admin may have agent access turned off.

A call fails with “insufficient scope”

The connection lacks a permission the tool needs. Reconnect and grant the permission, or create a token that includes it.

A call is refused because of credits

Either the workspace has no AI credits left this month, or the connection reached the credit limit you set for it. The agent calls get_usage to see which. Raise the limit in Settings > Agents & API, or add credits.

Resin is still working on the last message

A project takes one message from a connection at a time. The agent calls wait for the reply, or stop to end the turn.

Two projects have the same name

The agent calls list_projects and uses the key shown in brackets after the name.

An upload or download address no longer works

The addresses are valid for 15 minutes. The agent calls import_design or export_design again for a new one.