Tersa EDA
Model Context Protocol · Engineering Early access

Tersa MCP gives engineering agents controlled simulation tools.

Tersa MCP is an early-access engineering-agent platform for validated simulation, measurements, bounded circuit optimization, and Touchstone inspection. An agent can run ngspice, optimize component values, or inspect one-port and two-port S-parameters for passivity and reciprocity. Harmonic balance, EM, and broader RF synthesis remain on the roadmap. Live image tools can turn a validated netlist into a deterministic circuit schematic and selected traces from an account-owned completed simulation into a plot. MCP returns PNG by default for broad client compatibility, with SVG available explicitly. Seven live workspace tools let an authenticated account list projects, create or read canonical revisions, and turn a typed engineering request into an editable SchematicDocument 1.0 through the real Tersa .NET component catalog and domain commands. Completed generation jobs provide a token-free link that opens the exact revision in Tersa Web.

Tersa MCP · Early access
Protocol endpoint · live
Dashboardmcp.tersaeda.com
Protocol endpointhttps://mcp-api.tersaeda.com/mcp · live
agent> Validate this RC low-pass netlist, run a transient analysis, return time and v(out), then explain whether the response is consistent with the component values. Do not change the circuit until you report any validation warning.

tool  spice_validate_netlist
result valid · analysis=tran · warnings=0
tool  spice_simulate
result completed · engine=ngspice · vectors=2

Transport

Streamable HTTP

Identity

OAuth 2.1 + PKCE

Engine

ngspice worker

Engineering agent platform

Tersa MCP is more than a SPICE wrapper.

Tersa MCP is the agent-facing control plane for Tersa engineering workflows. SPICE simulation, typed measurements, bounded optimization, Touchstone 1.x inspection, and editable circuit generation are live production capabilities. Harmonic balance, EM, and broader RF synthesis remain gated roadmap work.

Live beta

SPICE simulation

Validated .op, .dc, .ac, .tran, and .noise analyses through an isolated ngspice worker, with bounded vectors and stable diagnostics.

Available now

Research

Harmonic balance

Periodic steady-state and nonlinear RF analysis exposed through typed, inspectable agent contracts.

Platform roadmap

Planned

EM analysis

Geometry-aware electromagnetic jobs, field results, and solver diagnostics with explicit resource limits.

Platform roadmap

Live beta

Optimization

Bounded component variables, explicit engineering goals, deterministic methods, progress polling, cancellation, and source-simulation evidence.

Available now

Live beta

S-parameters

Bounded one-port and two-port Touchstone 1.x inspection with impedance, sweep, passivity, reciprocity, and stable diagnostics.

Available now

Live beta

Editable circuit generation

Typed circuit specs materialized by Tersa's real .NET component catalog and domain commands into immutable SchematicDocument 1.0 revisions.

Available now

Roadmap items are product direction, not currently available MCP tools. Their names, scope, and release order may change.

Early access

The public OAuth endpoint is live in early access.

The production endpoint has completed a real OAuth-to-MCP-to-BFF-to-worker-to-ngspice run with PKCE, consent, refresh rotation, revocation, account usage reporting, and bounded vectors. Access is user-scoped and requires a verified Tersa account. Codex and ChatGPT remain target clients until their interactive product acceptance is recorded; shared API keys are not the public authentication model.

Answer first

Tersa MCP, in three direct answers

What is it?

A remote Model Context Protocol service for controlled SPICE work. An agent calls typed tools rather than inventing shell commands, handling server files, or parsing an unbounded simulator transcript.

What can it do?

Validate and simulate an inline SPICE netlist, optimize bounded component values, or inspect one-port and two-port Touchstone 1.x S-parameters. Results include bounded vectors, typed measurements, passivity, reciprocity, stable diagnostics, polling, and cancellation.

Who is it for?

Engineers and technical teams using an OAuth-capable remote MCP client who want an agent to assist with repeatable analog or RF checks. It is a focused simulation service, not a replacement for a complete desktop EDA suite.

Tools

Twenty-five tools for circuit generation, projects, simulation, optimization, RF networks, and engineering visuals

Each tool has a narrow contract so the client can separate preparation, execution, monitoring, and diagnosis. Jobs are owned by the authenticated Tersa account; the public launch will not expose the internal service credential to users or agents.

spice_capabilities

Read supported analyses, protocol behavior, server limits, and result constraints before composing a request.

spice_validate_netlist

Run preflight checks without starting ngspice. Unsafe directives, multiple analyses, oversized input, and unsupported file operations are rejected early.

spice_submit_simulation

Create an asynchronous simulation job with requested vectors and an optional idempotency key for safe retries.

spice_get_simulation

Poll only a job owned by the current account and receive its stable state, bounded result, or diagnostic code.

spice_cancel_simulation

Request cancellation when a queued or running experiment is no longer useful.

spice_simulate

Submit and wait briefly in one call; receive either a completed result or a job reference to continue polling.

spice_explain_failure

Turn a stable validation or execution code into corrective guidance that an agent can apply to the next attempt.

spice_measure_result

Calculate typed measurements from retained vectors of a completed job without rerunning ngspice.

optimize_circuit

Submit a bounded component-value optimization with explicit variables, ranges, engineering goals, method, evaluation budget, and deterministic seed.

get_optimization

Poll an owner-scoped optimization and receive progress, best values, per-goal evidence, the materialized netlist, and source-simulation lineage.

cancel_optimization

Request cooperative cancellation of a queued or running optimization without affecting another account's work.

network_submit_touchstone

Submit bounded Touchstone 1.x S-parameter data for a one-port or two-port network in RI, MA, or DB format.

network_get_analysis

Poll an owner-scoped network job for reference impedance, sweep bounds, passivity, reciprocity, and stable diagnostics.

network_cancel_analysis

Cancel a queued Touchstone inspection before worker execution begins.

render_circuit_schematic

Render a validated bounded SPICE netlist as a deterministic circuit schematic with connectivity metadata; PNG is the default and SVG is optional.

render_simulation_plot

Render selected real or complex traces from an owner-scoped completed simulation as a bounded PNG or SVG plot without rerunning ngspice.

get_render

Poll an owner-scoped render job and receive bounded metadata plus the completed PNG or SVG as an MCP image block.

cancel_render

Cancel a queued render before worker execution begins.

project_list

List account-owned project summaries without returning schematic documents or other project payloads.

project_get

Read bounded metadata for one account-owned project, including sheet, plot, and model summaries but not document contents.

project_create

Idempotently create an empty account-owned project with a stable clientRequestId; replay returns the same project and conflicting reuse is rejected.

project_get_document

Read one owner-scoped canonical SchematicDocument 1.0 revision, including its immutable revision identifier.

project_save_revision

Save a bounded canonical revision idempotently; updates require the latest baseRevisionId and conflicting reuse is rejected.

project_generate_circuit

Submit a bounded typed circuit specification for materialization by Tersa’s real .NET component catalog, placement, conductor, analysis, validation, and canonical serialization logic.

get_project_generation

Poll an account-owned generation job and receive its immutable revision identifier, bounded counts, and token-free Tersa Web editor URL without exposing the generated document in activity logs.

Which typed measurements are live in Tersa MCP?

The spice_measure_result tool contract 1.8.0 evaluates retained result vectors without rerunning ngspice. Sixteen algorithms are available now, and every request uses explicit parameters, source-vector evidence, and stable failure codes.

Scalar and series measurements

VALUE_AT_X, MINIMUM, MAXIMUM, MEAN, RMS, CROSSING, and BANDWIDTH are live for bounded result vectors. Crossing and bandwidth requests use an explicit threshold instead of an inferred level.

Transient rise, fall, and settling

RISE_TIME and FALL_TIME require explicit lowThreshold and highThreshold values. SETTLING_WINDOW requires a finite target and positive absolute tolerance. All three require a real time vector.

Sampled overshoot and undershoot

OVERSHOOT and UNDERSHOOT require explicit target and startTime values. They report the sampled peak or trough and excursion amount at or after startTime; they do not invent an interpolated extremum.

Delay from an explicit reference

DELAY requires an explicit threshold and referenceTime. Exactly one threshold crossing must occur at or after referenceTime; the returned delay is crossingTime minus referenceTime.

Period, frequency, and duty cycle

PERIOD and FREQUENCY average all complete rising-to-rising cycles at an explicit threshold. DUTY_CYCLE uses the same cycles and requires exactly one falling threshold crossing inside every included cycle.

Ambiguity fails explicitly

Missing crossings return insufficient-data failures, while extra eligible crossings return AMBIGUOUS_CROSSING. Tersa MCP does not select a convenient edge for rise/fall timing, DELAY, CROSSING, BANDWIDTH, or periodic duty measurements.

Architecture

How a request becomes measured data

The MCP adapter does not run a simulator itself and never connects directly to the database. Separation between the public protocol, account authority, job state, and native process keeps the surface understandable and gives each layer one security responsibility.

1. The client authorizes the request

A compatible client will open Tersa sign-in and consent. Email/password and Google sign-in resolve to the same account and session model. OAuth scopes will distinguish reading capabilities, validation, and simulation.

2. MCP translates a typed tool call

The remote adapter validates JSON-RPC and tool arguments, resolves the user, applies origin and rate policies, then delegates through a separate internal credential. The user token is not forwarded into the simulation network.

3. The BFF records a bounded job

Tersa validates the inline netlist, analysis count, requested vectors, ownership, concurrency, and idempotency. PostgreSQL stores the queue and status through Hibernate/JPA so a client can safely reconnect and poll.

4. An isolated worker runs ngspice

A worker claims the job and launches ngspice as a constrained child process in a private temporary directory. Timeout, CPU, memory, process, and result-point limits bound the run. Structured results return through the BFF and MCP tool response.

Connect

Early-access quick start

Create a verified Tersa account, open the private dashboard, then add https://mcp-api.tersaeda.com/mcp to a compatible remote client. OAuth discovery, PKCE, consent, refresh rotation, and revocation are live; named-client acceptance remains an explicit compatibility check.

Example agent request

Validate this RC low-pass netlist, run a transient analysis, return time and v(out), then explain whether the response is consistent with the component values. Do not change the circuit until you report any validation warning.

  1. 1

    Create or sign in to one Tersa account

    Register with email and password or use Google. The same identity is intended for the separate MCP dashboard, future Web CAD, mobile applications, and MCP grants; a separate MCP-only account is not required.

  2. 2

    Open the MCP dashboard

    The separate app at mcp.tersaeda.com is the control plane for early-access status, future client connections, grants, revocation, execution counts, and daily usage. It remains private and is not a search landing page.

  3. 3

    Connect a supported remote MCP client

    Add https://mcp-api.tersaeda.com/mcp. The client discovers authorization metadata, starts an OAuth 2.1 authorization-code flow with PKCE, and returns to its exact callback after consent.

  4. 4

    Ask for a bounded engineering task

    Start with capabilities or validation, name one supported analysis, request only the vectors needed for the decision, and let the agent poll an asynchronous job when it cannot finish within the short synchronous window.

Client compatibility

The intended transport is remote Streamable HTTP over HTTPS with user-scoped OAuth 2.1 and PKCE. Compatibility is defined by protocol behavior, not by a hard-coded vendor integration. The final public claim will follow an initialize, tools/list, validate, simulate, poll, cancel, refresh, and revoke acceptance run in each named client.

  • Codex is a target client; the repository and CLI expose remote MCP and OAuth configuration, but production acceptance is still pending.
  • ChatGPT is a target client where the selected plan and workspace support custom remote MCP applications; production acceptance is still pending.
  • Other standards-compatible clients can qualify if they support the advertised MCP protocol version, HTTPS remote transport, authorization discovery, PKCE, and refresh-token rotation.

Account, privacy, and execution boundaries

Registration is mandatory because simulations consume compute and every grant, job, result, and usage event needs an owner. The design favors short, inspectable contracts and rejects capabilities that would turn a simulator input into general server access.

  • Access and refresh credentials are opaque random values; only SHA-256 hashes are stored, and refresh credentials rotate once with replay-family revocation.
  • Google identity tokens are verified server-side against allowed client IDs. An OAuth client secret is never bundled into the Nuxt page, mobile app, MCP request, or netlist.
  • Netlists are bounded and must contain exactly one supported analysis. File reads, arbitrary includes, control blocks, shell execution, code models, and caller-selected output paths are rejected.
  • The worker runs ngspice outside the Java process with a read-only container, private temporary files, dropped Linux capabilities, no privilege escalation, and explicit time, memory, CPU, PID, and output limits.
  • Operational logs may contain job IDs and stable error codes, but must not contain full netlists, project contents, email addresses, OAuth assertions, access tokens, internal keys, or other credentials.

What the beta is—and is not

Tersa MCP is being built as a reliable RF/analog simulation notebook for agents, not as unrestricted remote compute. Clear limitations make tool calls predictable and reduce the chance that an apparently simple prompt becomes an unsafe or irreproducible job.

  • One inline analysis per request: .op, .dc, .ac, .tran, or .noise. Arbitrary interactive ngspice control sessions are outside the launch scope.
  • No caller-provided .include or .lib files. A curated server-side model library requires a separate reviewed registry and is future work.
  • Results and diagnostics are bounded. Large sweeps should be narrowed to the frequency range, vectors, and point count needed for the engineering decision.
  • The service complements Tersa schematic, plots, measurements, and tuning workflows. It is not positioned as an ADS, AWR, or full desktop EDA replacement.
  • Public endpoint availability, quotas, client list, and beta terms may change while OAuth, usage reporting, and remote-client evidence are completed.

Related

Learn the simulator workflow, review RF matching guidance, or open the private MCP dashboard. These routes explain the product around the protocol instead of treating MCP as an isolated API.

Tersa MCP

Prepare your account for Tersa MCP early access.

Create one Tersa identity, explore the simulator, and use the separate MCP dashboard to follow availability. If you need a specific client or analysis in the acceptance matrix, tell us about your engineering workflow.