Skip to content
REST API

MCP Server

Let AI assistants search, watch and manage parts on your behalf through the Model Context Protocol.
https://www.elexess.com/mcp

Elexess runs a Model Context Protocol (MCP) server, so AI assistants and agent tools can work with your account with exactly your permissions. Newmatik's assistant Moth connects this way, and so can any MCP client that supports OAuth.

Connect your assistant

Add the URL above as a remote (HTTP) MCP server. When the assistant first connects, your browser opens Elexess. Sign in, check the Authorize access screen, and choose Allow access. You do not need a client ID or key.

Claude (web and desktop)

Open Settings → Connectors → Add custom connector, paste the URL, then choose Connect. On Team and Enterprise plans an owner adds the connector once for the organization, and each member then connects their own account.

Claude Code

claude mcp add --transport http elexess https://www.elexess.com/mcp

Then run /mcp, pick elexess and choose Authenticate.

ChatGPT

Turn on developer mode under Settings → Apps → Advanced settings. Then create an app with the URL above and choose OAuth as the authentication.

Codex

codex mcp add elexess --url https://www.elexess.com/mcp
codex mcp login elexess

Cursor

Add the server to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project:

{ "mcpServers": { "elexess": { "url": "https://www.elexess.com/mcp" } } }

Then open Cursor Settings, find elexess in the MCP server list and choose Connect.

VS Code

Run MCP: Add Server from the Command Palette, choose HTTP, and paste the URL. You can also add it to .vscode/mcp.json:

{ "servers": { "elexess": { "type": "http", "url": "https://www.elexess.com/mcp" } } }

VS Code asks you to sign in to Elexess the first time a tool runs.

Scripts and CI

For unattended use, send a team API token in place of signing in, for example claude mcp add --transport http elexess https://www.elexess.com/mcp --header "Authorization: Bearer el_live_…". Team API tokens are read-only.

The server accepts two kinds of Bearer credential:

CredentialWho it representsWhat it can do
Your account (OAuth 2.1 with PKCE)youwhat you can do in the web app, nothing more
Team API token (el_live_…)your teamread-only: search, catalog, team watchlist, team part numbers, status

Assistants register themselves when they first connect, so any standard MCP client can connect. Registering does not give a client any access. Each connection still needs your approval on the Elexess Authorize access screen. The screen shows:

  • the name the app gave itself
  • the address where access will be sent, with a warning if Elexess does not recognise it
  • what the app will be able to do

An app can choose any name, so check the address. Only allow access if you started connecting from that app a moment ago. If your account uses two-factor authentication, you confirm it before the screen appears.

Access tokens expire after an hour. The assistant renews them while your approval stands.

Tools

Read tools only look things up. Write tools change data. Tools marked needs confirm change nothing unless the call includes confirm: true. Without it they return a preview of the change. A good assistant shows you the preview and asks before it confirms.

ToolWhat it doesTypeTeam API token
whoamiyour profile, teams, plan and search limitReadyes
search_partslive distributor stock and pricing for a part number (uses 1 search credit); with mode: "item", all part numbers of one of your items (1 credit each)Readyes
price_bomprice a whole BOM of up to 500 lines in one call (free from stored data; live searches use 1 credit per part number)Read, needs confirm to spend creditsyes
list_parts, get_part, autocompletestored catalog data, listings, price breaks, riskReadyes
list_manufacturers, get_manufacturermanufacturer catalog and timelineReadyes
list_suppliers, get_supplier_statusdistributors, availability, incidentsReadyes
get_exchange_rateslatest currency ratesReadyes
list_watchlistpersonal and team watchlistsReadteam only
list_items, get_itemyour team's items with customer part numbers and every linked part number and its approvalReadyes
list_team_part_numbersteam items (internal part numbers), notes and part numbersReadyes
get_supply_risksupply-chain risk and historyReadyes
get_team_usage, list_recent_searchessearch credits used and search historyReadyes
list_team_membersmembers, roles and statusReadyes
list_api_tokensteam API tokens (never the secret)Readno
add_to_watchlistwatch a partWriteno
set_team_part_numbercreate or update a team part number and noteWriteno
recalculate_supply_riskrecompute a part's supply risk nowWriteno
update_teamrename the team or change its currency (admins)Writeno
remove_from_watchliststop watching a partWrite, needs confirmno
remove_team_part_numberremove a team part numberWrite, needs confirmno
invite_team_memberemail an invitation to join the team (admins)Write, needs confirmno
update_team_memberchange a member's role or status (admins)Write, needs confirmno
create_api_tokencreate a team API token, shown once, optionally with write scopes (admins)Write, needs confirmno
revoke_api_tokenrevoke a team API token permanently (admins)Write, needs confirmno

Safety

  • Your permissions, nothing more. Every call runs as you. It sees only what you see in Elexess and can change only what your role allows. Plan limits apply as in the web app; for example, team watchlists need Pro or Enterprise.
  • Confirm before anything hard to undo. Removing data, inviting people, changing roles and creating or revoking API tokens all need confirm: true. Otherwise the tool returns a preview and changes nothing.
  • No ownership or domain changes. Ownership transfers and email-domain settings are not available over MCP.
  • Team API tokens never write. They read your team's data only.
  • No secrets in answers. Tool results never include passwords, other teams' data, or existing API token secrets. A new token's secret is shown once, when it is created.

Limits

Each search_parts call uses one search credit from your team's monthly allowance, the same as a search on the website. An item search (mode: "item") uses one credit per part number it searches, at most 10; pass link_ids to search fewer. When an item search needs more than one credit, search_parts first returns a preview of the part numbers and credits without searching. Call it again with confirm: true and max_credits set to the credits the user approved; without max_credits a confirmed search may use up to 10. If the item needs more than max_credits by then, it returns a new preview instead of searching. When the allowance runs out, the tool says so; the allowance resets at the start of each month. list_items and get_item are free.

price_bom uses credits only for live searches, one per distinct part number, and only with confirm: true. Without it, it prices what it can from stored data and returns a preview with the credits a live run would use. One call takes at most 500 lines and spends at most max_live_searches credits (default 100). Live searches stop after the time budget (50 seconds by default, up to 120) or when the allowance runs out. The answer is then marked partial and lists the lines still to price under resume. Lists return at most 100 to 200 rows per call; use limit and offset to page.

Revoke access

  • Your account: open Profile → Connected apps and revoke the app. Its tokens stop working immediately, and the assistant has to ask for your approval again.
  • Team API tokens: team admins revoke them under Dashboard → API Tokens.

Transport

Streamable HTTP in stateless mode: each JSON-RPC request gets a single JSON response. Supported protocol versions are 2025-11-25, 2025-06-18 and 2025-03-26. The server does not offer session streams; GET with Accept: text/event-stream answers 405.

Example

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": { "name": "search_parts",
              "arguments": { "searchterm": "LM358DR", "quantity": 500 } } }

The result lists offers sorted by unit price at the requested quantity. It also lists which suppliers answered, returned nothing, or failed.

Pricing a BOM for 250 boards with 2% attrition:

{ "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": { "name": "price_bom",
              "arguments": { "boards": 250, "attrition_pct": 2, "currency": "EUR",
                             "lines": [
                               { "line_id": "10", "mpn": "LM358DR", "qty_per_board": 2, "designators": "U1, U2" },
                               { "line_id": "20", "mpn": "GRM188R71H104KA93D", "manufacturer": "Murata", "qty_per_board": 12 }
                             ] } } }

Each line needs ceil(qty_per_board × boards × (1 + attrition_pct / 100)) pieces. Attrition is 0 unless you set it, for the BOM or per line. For every line the answer gives the chosen supplier and SKU, unit price at the price break, extended price, MOQ and order multiple, stock, lead time, lifecycle and data age. It also lists flags: no_offer, insufficient_stock, stock_unknown, eol, nrnd, ambiguous_mpn, manufacturer_unmatched, currency_unconverted, duplicate_mpn, designator_count_mismatch, stale_data, live_search_failed and not_searched. Offers with enough stock come first, then the lowest total cost. MOQ, order multiples and a cheaper larger price break can raise the order quantity; the cost of the extra pieces is reported as excess_cost. Totals include the BOM cost per board, the total cost, the excess cost, the number of lines without a price, the longest lead time and the credits spent.

Support

Questions or problems connecting an assistant: email service@newmatik.com.