MCP-ADAPTER
MCP-ADAPTER gives AI agents a searchable catalog of 14 engineering/design applications, headless automation for locally installed apps, timezone/time tools, and optional live docs search.
Browse/search the tool catalog: list software, categories, tools; describe entries; search by keyword; get software overviews.
Get application recommendations and head-to-head comparisons for engineering tasks (antennas, circuits, PCB, CFD, etc.).
Check runtime status: detected apps, exposed/hidden tools, security/network policy, output folder rules.
Set output folder for generated scripts/results, with local-only safety checks.
Use time/timezone utilities: now, convert, add, difference, format, list timezones, world clock, unix epoch.
Run headless automation on installed apps: MATLAB, Simulink, Mathematica, COMSOL, Photoshop, OrCAD/PSpice, Altium, Proteus, Vivado, AutoCAD, HFSS, Feko, EAGLE, draw.io.
Use no-executable helpers: draw.io diagram create/read/codec, EAGLE read/BOM/netlist, PSpice/Feko output parsing, Altium script templates, Proteus project inspection.
Optionally search live vendor documentation via Tavily when internet tools are enabled.
Automates Altium Designer headlessly by running DelphiScript projects through X2.EXE (-RScriptFile/-RProcName), and exposes a searchable catalog of Altium commands, APIs and script functions (21 categories, 735 entries) with syntax, parameters and examples.
Provides headless automation of AMD Vivado Design Suite via Tcl batch mode (vivado -mode batch -source), Hardware Manager operations and vitis_hls, returning structured JSON results, plus a catalog of Vivado Tcl commands and APIs (19 categories, 699 entries).
Runs Ansys HFSS / Ansys Electronics Desktop headlessly with IronPython scripts (ansysedt -ng -RunScriptAndExit, -BatchSolve) and PyAEDT, capturing simulation output as structured JSON, plus a catalog of HFSS scripting objects and commands (15 categories, 502 entries).
Drives Autodesk AutoCAD in batch through accoreconsole.exe scripts, AutoLISP, DXFOUT, -PLOT and COM SendCommand automation, returning structured results, with a searchable catalog of AutoCAD commands and APIs (30 categories, 1232 entries).
Runs COMSOL Multiphysics batch jobs via comsolbatch (studies, parameter lists, model methods), comsol compile and MPh Python automation, plus a catalog of COMSOL APIs and Application Library features (128 categories, 3836 entries, verified against a local installation).
Creates draw.io / diagrams.net diagrams by generating mxGraph XML in pure Python and exporting them with the desktop CLI, and exposes a catalog of draw.io features (12 categories, 470 entries).
Automates Autodesk EAGLE through eaglecon CAM jobs, editor commands (-C) and direct reading of EAGLE XML design files (BOM, netlist), and provides a catalog of EAGLE commands and ULPs (19 categories, 853 entries, verified against EAGLE 9.6.0).
Integrates the Proteus Design Suite (ISIS schematic capture, VSM simulation, ARES PCB layout) by launching the GUI, passing custom CLI commands and inspecting .pdsprj project files, with a catalog of Proteus features (11 categories, 397 entries).
Evaluates Wolfram Mathematica code headlessly through wolframscript (-code / -file) and Export[], returning results as structured JSON, plus a searchable catalog of Mathematica functions and usage (77 categories, 2458 entries).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-ADAPTER search the catalog for MATLAB commands that export a figure as PNG"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-ADAPTER
A single Model Context Protocol server that gives AI agents two things for fourteen engineering and design applications:
A comprehensive tool catalog – what each application can do, how every tool/command/function is used, with syntax, parameters, a runnable example and a documentation link. Fully searchable through MCP tools.
Headless automation adapters – run the real application when it is installed (batch/script mode), capture its output and return structured JSON.
Plus a timezone-aware time tool and an optional live documentation search (Tavily).
Use MCP Adapter only locally, on your own computer. Do not run it on a public network or make it reachable from the internet: that can cause licensing problems.
MCP Adapter controls commercial software (MATLAB, Simulink, Mathematica, COMSOL, Photoshop, OrCAD/PSpice, Altium, Proteus, Vivado, AutoCAD, HFSS, Feko, EAGLE) with your own licenses. Once the adapter is accessible over a public network or the internet, other people can run that software through it. Most vendors' license terms do not allow this, because licenses are tied to a named user, a computer or a number of seats, and sharing the software or offering it as a service to others is not permitted. The possible results are license violations, vendor audits, extra fees or a revoked license.
This is a licensing risk, not a security one: it applies even when the connection is fully secured.
Recommended: keep the default local mode (reachable from this computer only) and use it yourself.
Details: Use it only locally (licensing).
Network exposure: read this before installing.
With the default stdio transport this server opens no network port. With --transport streamable-http
or sse it listens on a TCP port, and Windows Firewall will ask whether to allow inbound connections to
Python. If you use it locally, you MUST deny that prompt. Loopback traffic is never filtered by the firewall,
so everything keeps working and nothing becomes reachable from other machines.
The choice is also enforced in code, not only by the firewall: in the default local mode the server refuses
to bind anything but 127.0.0.1 and rejects requests whose Host header is not localhost, and tools that call
external web APIs are not even registered. Pick the mode once with mcp-adapter-setup and change it any time in
.env. Details: Security and network policy.
Application | Catalog id | Automation mechanism used by the adapter |
MATLAB |
|
|
Simulink |
| MATLAB API ( |
Wolfram Mathematica |
|
|
COMSOL Multiphysics |
|
|
Adobe Photoshop |
| ExtendScript/JSX via COM ( |
Cadence OrCAD (Capture, PSpice, PCB Editor) |
|
|
Altium Designer |
|
|
Proteus Design Suite |
| GUI launch, custom CLI pass-through, |
AMD Vivado |
|
|
Autodesk AutoCAD |
|
|
Ansys HFSS (Electronics Desktop) |
|
|
Autodesk EAGLE (retired June 2026) |
|
|
draw.io / diagrams.net |
| pure-Python mxGraph XML generation + desktop CLI export |
Catalog size
Software | Vendor | Reference version | Categories | Catalog entries |
MATLAB | MathWorks | R2025a | 62 | 2099 |
Wolfram Mathematica | Wolfram Research | 14.2 | 77 | 2458 |
COMSOL Multiphysics | COMSOL AB | 6.4 (verified against a local installation: help, completion data, plugins and Application Library) | 128 | 3836 |
Adobe Photoshop | Adobe | 2025 (v26) | 23 | 734 |
Cadence OrCAD / OrCAD X (Capture, PSpice, PCB Editor) | Cadence Design Systems | OrCAD X 23.1 / 24.1 | 17 | 614 |
Altium Designer | Altium | 24/25 | 21 | 735 |
Proteus Design Suite (ISIS schematic capture, VSM simulation, ARES PCB layout) | Labcenter Electronics | 8.17 / 9 | 11 | 397 |
AMD Vivado Design Suite | AMD (Xilinx) | 2024.2 / 2025.1 | 19 | 699 |
Autodesk AutoCAD | Autodesk | 2025 / 2026 | 30 | 1232 |
Ansys HFSS (Ansys Electronics Desktop) | Ansys | 2025 R1 | 15 | 502 |
Simulink | MathWorks | R2025a | 18 | 573 |
draw.io (diagrams.net) | JGraph Ltd | 26.x desktop | 12 | 470 |
Altair Feko | Altair Engineering | 2025.1 (verified against a 2026.1 installation and the online reference) | 13 | 465 |
Autodesk EAGLE | Autodesk (originally CadSoft Computer) | 9.6.0 (verified against a local 9.6.0 installation, its built-in help and manuals; the last release was 9.6.2) | 19 | 853 |
Total | 15667 |
Catalogs live in mcp_adapter/catalogs/<software>/ as plain JSON, one category per file,
following CATALOG_SCHEMA.md. They were compiled from the vendors' official documentation
(MathWorks, Wolfram, COMSOL, Adobe, Cadence, Altium, Labcenter, AMD, Autodesk, Ansys, Altair, JGraph) and every entry
records name, kind, description, usage, parameters, example, notes and docs.
Related MCP server: AutoCAD MCP Pro
Installation
git clone https://github.com/Babak-Solhjoo/MCP-ADAPTER-PV.git
cd MCP-ADAPTER-PV
python -m pip install -e ".[dev]"
mcp-adapter-setup # answer two questions: local-only or network? internet tools on or off?mcp-adapter-setup writes the answers to .env (creating it from .env.example if needed) and prints what
they mean for the firewall. Skipping it is safe: the defaults are local-only and internet tools off.
Requirements: Python 3.10+, the mcp SDK (1.x and 2.x are both supported). Nothing else is needed for the
catalog and time tools. For automation, the corresponding application must be installed on the same machine.
Quick start
Install as above.
mcp-adapter-setupis optional; the defaults are local-only and offline.Start the workspace UI and keep its console window open while you use it:
python -m mcp_adapter.ui.server # Windows without `python` on PATH: py -m mcp_adapter.ui.serverYour browser opens the page by itself through a private link of the form
http://127.0.0.1:8765/#t=<session key>; the same link is printed in the console window. The Applications tab lists all fourteen applications and marks the ones found on this computer.Use it: chat with an agent in the Chat tab (store an Anthropic or OpenAI key in Settings first), or register the MCP server in Claude Desktop or Claude Code, which then start it themselves.
"This page needs its session key" or an empty application list? The page was opened without its private
link: the address was typed or bookmarked, or the tab is older than the last UI start (the key changes on every
start). Copy the http://127.0.0.1:8765/#t=... link from the UI's console window and open it or paste it into
the box, or close the tab and start the UI again. Closing the console window (or Ctrl+C) stops the UI.
Use it only locally (licensing)
Recommendation: run MCP Adapter only locally, on the computer that holds your software licenses, and do not expose it on a public network or the internet. This is about software licenses, not about security: a connection can be perfectly secure and still break a license agreement.
Why it matters:
MCP Adapter runs the applications installed on your computer (MATLAB and Simulink, Mathematica, COMSOL, Photoshop, OrCAD/PSpice, Altium, Proteus, Vivado, AutoCAD, HFSS, Feko, EAGLE) with your licenses.
If the adapter is reachable over a public network or the internet (
networkmode, port forwarding, a tunnel, a cloud or shared server), anyone who can reach it can use those applications through your installation.Commercial licenses usually allow use only by the licensed person, on a specific computer or within a number of seats. They typically forbid remote use by others, sharing, and offering the software as a service (hosting, time-sharing, service bureau). Academic, student, trial and home licenses are often stricter still.
Making the software available this way can therefore mean license violations, vendor audits, extra fees or a revoked license, for you or your organisation.
What to do:
Keep the default
localmode: the server and the workspace UI then answer only on this computer (127.0.0.1), never on the network or the internet.Use it yourself, as the licensed user. Do not share the endpoint, its token or the UI link with others.
Do not publish it with port forwarding, tunnels or cloud hosting.
If you really need remote or shared use, check each vendor's license agreement or ask your license administrator first.
This section is general information, not legal advice.
Security and network policy
The firewall is the last line of defence, not the only one. Two switches in .env decide what the server may
do on the network, and the server enforces them itself at start-up and on every request:
Setting | Values | Effect |
|
| Licensing: read Use it only locally before choosing |
| comma list |
|
| random string (24+ characters) | Bearer token for the HTTP transports. Required for every HTTP transport, local mode included (other programs and other accounts on the same computer share |
|
| When |
What each transport does:
stdio(default) – the MCP client startsmcp-adapteras a child process and talks over pipes. No socket is opened, no firewall prompt can appear for it.streamable-http/sse– a TCP listener. Inlocalmode it is bound to127.0.0.1only. Windows Firewall may still show its "allow access" dialog the first time Python listens; deny it for local use (loopback traffic is exempt from firewall rules, so the server keeps working).
Check and change the policy at any time:
mcp-adapter --print-policy # effective policy as JSON
mcp-adapter-setup --show # current .env answers
mcp-adapter-setup # interactive: re-answer the questions
mcp-adapter-setup --non-interactive --mode local --allow-internet noOr edit the keys in .env directly and restart the server. Agents can call the security_policy tool to see
which mode is active and why some tools are missing.
Note that the Claude desktop app and other MCP clients have their own local helper listeners and may trigger their own firewall prompts; those are unrelated to this server and can equally be denied for local use.
What an MCP client can do with this server
Treat every connected client (and the model behind it) as someone sitting at your keyboard:
The automation tools run the installed applications with your user rights, and several of them execute code by design (
matlab_run_code,mathematica_evaluate,comsol_run_python,vivado_run_tcl,autocad_run_lisp,hfss_run_script,altium_run_delphiscript,photoshop_run_jsx, ...). Connect only clients you trust, and switch off the applications you do not need (MCP_ADAPTER_ENABLE_<APP>=falseor the Applications page).workspace_run(only registered when you switch on full folder access for a task) runs shell commands with the task folder as working directory; it is not a sandbox.The output-folder checks (
set_output_folder) prevent mistakes such as writing into system folders or network shares; they do not confine the code-running tools above.API keys and the auth token live only in
.env, which is git-ignored and readable only by your account; the UI accepts them write-only. The MCP server keeps them out of its environment, so the applications and shells it starts never see them; tool paths are not expanded (%VAR%), so a path cannot echo a key back; and the agent runner removes any key value from transcripts, chat history and reports.Tool paths may not point to network locations (UNC paths, mapped network drives): opening one would make Windows connect to another machine and possibly send your credentials.
OPENAI_API_KEYis only sent toapi.openai.com. A custom OpenAI-compatible endpoint (OPENAI_BASE_URL) getsOPENAI_COMPAT_API_KEYinstead and must use HTTPS unless it runs on this computer.The agent is told to treat file contents, tool results and web pages as data, never as instructions, and a model can only call the tools it was given.
Programs are never started from the current folder, and Program Files is searched before drive roots, so a planted
matlab.batcannot hijack a tool; on shared computers set the<APP>_EXEpaths explicitly.The workspace UI binds
127.0.0.1only and needs a per-session token on every API call, so other machines and other web pages cannot use it.
See SECURITY.md for how to report a vulnerability.
Where results are written
When you give a task a folder, the adapter writes its files into that folder, not into its own outputs folder.
Claude Desktop and other long-running clients: the server starts once, before any task exists. The server instructions therefore tell the agent to call
set_output_folder("D:\\Projects\\PCB")first whenever the user gives or grants a folder. From then on every generated script, netlist, log and result goes there, and relative paths in tool arguments are resolved inside it. Each application uses its own subfolder, for exampleD:\Projects\PCB\orcad, unlessper_application_subfoldersis false. An empty folder goes back to the default.Tasks started from the workspace UI or
mcp-adapter-agent --work-dir: the server is started for that task with the folder as its output folder, so nothing needs to be called.No folder given: files go to
MCP_ADAPTER_OUTPUT_DIR(defaultoutputs/in the repository).
The folder is checked in code before it is used:
it must be an absolute path to an existing, writable folder on a local disk; the adapter never creates it;
drive roots, the home folder itself, hidden folders, Windows/program/ProgramData/AppData folders and the adapter's own source folder are refused;
network locations (UNC paths and mapped network drives) are refused, so results stay on this machine;
MCP_ADAPTER_OUTPUT_ROOTSin.env(folders separated by;) restricts the choice to those folders;a server started for one task working directory accepts only folders inside it.
These checks prevent mistakes; they are not a sandbox, because the scripting tools (MATLAB, Mathematica, COMSOL
Java, Tcl, DelphiScript) run code with your user rights anyway. The setting belongs to the server process, so in
Claude Desktop it applies to every chat until it is changed, reset or the app restarts. adapter_status and
security_policy show the current folder and its source.
Workspace UI (chats, settings, applications, about)
python -m mcp_adapter.ui.server # or: mcp-adapter-uiThis starts a tiny local web server and opens the page in your browser with a private link of the form
http://127.0.0.1:8765/#t=<session key> (--no-browser only prints that link, --port 9000 changes the port).
The key after #t= is new for every start and is needed to use the page, so another program or another user on
the same computer cannot drive the UI; the part after # never leaves the browser. It runs until Ctrl+C; all
settings live in .env and chats are stored as JSON under outputs/chats/, so nothing is lost when it stops.
.env and the chat folder are made readable only by your account. Opening http://127.0.0.1:8765 without
the key (typed address, bookmark, a tab from before a restart) shows a box asking for it: paste the link from the
console window, or start the UI again (see Quick start).
The page has four tabs:
Chat - a Claude-desktop-like workspace, no other client needed:
a sidebar with your chats; + New chat creates another one. Chats run in parallel, each with its own agent run and its own MCP server process, and each keeps its conversation history (later messages see the earlier turns).
the conversation in the middle: your messages, the agent's answers (with "view steps" to open the run's report), and, while it works, every tool call and result live. Approve / Deny buttons appear when the chat has "Approve calls" switched on.
the message box at the bottom with small option chips: Model (one dropdown with the models of every provider connected in Settings), Effort, the working folder (type a path or Browse... for the native folder dialog), Folder access, Approve calls, Reasoning and Max turns. Chip changes are saved to the chat immediately and become the defaults for new chats.
Folder access gives the agent the
workspace_*tools for that folder: list, read, write, move, delete and search, whose paths cannot leave the folder, plusworkspace_run, which runs shell commands with the folder as working directory.workspace_runis a full shell, not a sandbox, so it always asks for approval, even when "Approve calls" is off. Keep folder access off for untrusted tasks. A drive root or your home folder is never given full access. All files the tools generate, and the run reports (agent-reports/), land in that folder.
Settings:
Model providers - Anthropic and OpenAI keys (write-only), a light per provider: green = key stored and the provider answered, orange = key stored but not verified/unreachable, red = no key; Test re-checks and refreshes the live model list. Models of every provider with a key appear in the chat's model dropdown.
MCP server for other LLM apps - use these applications from Claude Desktop, Claude Code, Cursor, VS Code and similar: ready-to-copy config for stdio clients (they start the server themselves) and a Start endpoint button that runs the server as a local HTTP MCP endpoint (
http://127.0.0.1:8766/mcp, loopback only, optional autostart with the UI) for clients that connect to a URL. The endpoint requires the bearer tokenMCP_ADAPTER_AUTH_TOKEN, which the UI creates in.envon first start; clients sendAuthorization: Bearer <token>(the config snippets show where). An optional default working folder plus access switch applies to those external apps. ChatGPT's connectors need a server on the public internet, so a localhost endpoint is not visible to them without a tunnel, which is outside the local-only policy here.Security & network policy, adapter mode, timeout and output folder, as described above.
Applications - the grid with an on/off switch, real icon (read from the installed executable on Windows), detection status and executable path fields per application; Re-detect and Save live in the header.
About - what the application does, its version and license, the number of applications and catalog entries, and the author's GitHub, LinkedIn and e-mail.
The UI is hardened like the server: it binds 127.0.0.1 only; every API call carries the per-session key,
which reaches the browser only through the launch link and is never embedded in the page; Host must be
localhost and Origin must be the UI's own address; cross-origin preflights are refused; a strict content
security policy with a per-response nonce blocks injected scripts; and secrets are never echoed back. Approvals
are bound to the exact pending tool call. Restart the UI server after pulling Python changes; page changes show
up on reload.
Adapter behaviour: only installed software is exposed
Most users have a few of the fourteen applications, not all of them. The server therefore works as an adapter:
At start-up it looks for each application's executable (
PATH, the usual vendor folders, or the<SOFTWARE>_EXEvariable in.env).Automation tools are registered only for applications that were found. An agent that lists the tools sees
matlab_*only if MATLAB exists on that machine; it never sees tools it cannot use and never has to discover a missing program by trial and error.Tools that need no executable are always present:
drawio_create_diagram,drawio_flowchart,drawio_read,drawio_codec,orcad_parse_pspice_output,proteus_project_info,altium_script_template,feko_parse_out,feko_lua_template,eagle_read_design,eagle_bom,eagle_netlist.The catalog is always available for all fourteen applications, because knowing how a tool works is useful even when the software runs on another machine.
list_softwareshows, per application, whether it is installed and which automation tools are available or hidden;adapter_statusadds the reason for every hidden tool (which variable to set). The server instructions tell agents to consult these first.Installed something later? Set
<SOFTWARE>_EXEif needed and restart the server; detection happens at start-up.MCP_ADAPTER_EXPOSE_UNAVAILABLE=truein.envregisters every tool regardless (useful for demos and tests); calls for missing software then returnok: falsewith the same hint instead of failing.
Optional extras:
pip install pywin32– synchronous Photoshop/AutoCAD COM automation on Windowspip install mph– COMSOL Python scripting (comsol_run_python,comsol_model_summary)pip install pyaedt– HFSS through PyAEDT (hfss_run_pyaedt)pip install truststore– use the OS certificate store for Tavily calls behind corporate proxies
Which application for which task
Agents reach for the general tool (MATLAB) unless the server tells them what each application is built for. The MCP layer therefore carries this knowledge in five places:
every automation tool description starts with a domain tag, e.g.
[Ansys HFSS: 3D electromagnetic field simulation (antennas, RF/microwave, signal integrity)] ...;the server instructions contain the routing guide below, and the bundled agent's system prompt repeats it;
list_softwareandsoftware_overviewreturnbest_for,typical_tasks,not_ideal_forandprefer_overper application;software_overviewalso lists the application's capability areas (its catalog categories with entry counts), so an agent sees everything the program can do before choosing tools;recommend_application(task)ranks the applications for a task description, says which of them are installed on this machine and which tool prefix to use;compare_applications(task)compares the applications that can do the same kind of task, head to head (see Comparing applications for the same task).
Task | Use | Tools |
Antennas, RF/microwave parts, S-parameters, radiation patterns, signal integrity, unit cells and arrays, PCB/package extraction | HFSS |
|
Antenna placement on vehicles/aircraft/ships, electrically large RCS, EMC with cable harnesses, characteristic modes, FSS, windscreen antennas, radio coverage (WinProp) | Feko |
|
Coupled physics on a geometry: heat, structural, fluid/CFD, electrostatics/magnetics, acoustics, electrochemistry and batteries, plasma, MEMS, topology optimization | COMSOL |
|
Circuit simulation with real components (transient, AC/DC sweeps, noise, Monte Carlo, Smoke), Probe measurements | PSpice |
|
PCB layout, footprints, design rules and queries, Gerbers/ODB++, ActiveBOM, Draftsman, multi-board and harness | Altium |
|
Existing EAGLE designs: parts, nets, BOM, netlist, Gerber/Excellon/assembly output with CAM jobs (EAGLE is retired; no new layout work) | EAGLE |
|
Firmware running together with its circuit (Arduino/PIC/AVR/ARM/Pico), virtual instruments, IoT Builder | Proteus |
|
FPGA: Verilog/VHDL synthesis, XDC timing, bitstreams, IP block designs, HLS, DFX, boot images | Vivado |
|
Block-diagram dynamic systems, control loops, Stateflow, Simscape physical models, verification, code generation | Simulink |
|
Exact/symbolic mathematics, closed forms, special functions, graph theory, curated data, uncertainty | Mathematica |
|
Numerics, signal/image/audio processing, filter and control design, ML/DL/RL, comms waveforms and BER, sensor fusion, data analysis, plots | MATLAB |
|
DWG/DXF technical drawings, blocks and attributes, sheet sets, 3D solids, AutoLISP/.NET automation | AutoCAD |
|
Raster photos, retouching, Camera Raw, generative fill, batch export, UXP/ExtendScript automation | Photoshop |
|
Flowcharts, block, UML/ER/BPMN and cloud architecture diagrams, CSV-driven diagrams | draw.io |
|
Rule given to agents: prefer the specialised application whenever one fits and is installed; MATLAB is for
numerics and post-processing around it. These are suggestions, not requirements: when the first choice is not
installed, or the user asks for a different application, the agent uses an installed alternative and says what it
gives up, instead of substituting silently. The profiles and keyword weights live in mcp_adapter/domains.py.
Comparing applications for the same task
Many tasks can be done by more than one application, and some do them better. mcp_adapter/comparisons.py
holds a head-to-head comparison for 27 such task areas. Each area sums up in one line which
application is best for which part of the job, and for every candidate it states its strength, when
to choose it and its limits, ranked from the usual first choice.
The comparison is advisory:
the suggested pick is the first installed candidate, so a missing application never blocks the work;
when that is not the first choice, the advice names the first choice and the limits of the installed alternative, so the agent can tell the user what the substitution gives up;
an installed application that the task names itself ("in Simulink", "with PSpice") wins over the ranking;
candidates marked
*below cover a neighbouring job only; they are listed for context and never offered as a substitute (Photoshop is not suggested for filter design, for example);if no suitable candidate is installed, the advice says so and names the first choice.
recommend_application(task) attaches the matching areas as comparison and lists installed alternatives.
compare_applications() lists all areas, compare_applications(area="cfd") shows one area, and
compare_applications(task="...") matches a description.
Task area | Candidates, usual first choice first | Which is best for what |
Antenna design (single antennas and arrays) ( | HFSS → Feko → COMSOL → MATLAB | HFSS for sign-off accuracy on detailed antennas with dielectrics and feeds; Feko for wire and metallic antennas and large arrays; COMSOL when heat or deformation detune the antenna; MATLAB for early sizing, catalogue antennas and array/beam studies. |
Antenna placement, co-site coupling and radar cross section of large platforms ( | Feko → HFSS → MATLAB → COMSOL | Feko for whole-platform placement, co-site coupling and RCS of large targets; HFSS SBR+ when the antenna already lives in AEDT; MATLAB for moderate platforms and radar-level studies; COMSOL only for electrically small platforms. |
RF/microwave passive components and PCB/package signal integrity ( | HFSS → COMSOL → Feko → MATLAB → Altium* | HFSS for 3D interconnects, connectors, packages, filters and couplers; COMSOL when heating or deformation couple in; Feko for planar metallic structures; MATLAB for cascades, matching and Touchstone post-processing; Altium only screens SI while routing. |
Analog and mixed-signal circuit simulation ( | OrCAD/PSpice → Altium → Proteus → Simulink → EAGLE* → COMSOL | PSpice for component-level accuracy with vendor models, Monte Carlo, worst case and stress; Altium for quick checks inside an Altium design; Proteus when a microcontroller runs real firmware; Simulink for circuits inside a larger system; EAGLE's ngspice only for basic OP/DC/AC/transient checks of an EAGLE schematic. |
Power electronics converters and motor drives ( | OrCAD/PSpice → Simulink → Proteus → MATLAB → COMSOL* | PSpice for switching waveforms, losses and stress with real devices; Simulink for control loops, drives and code generation; Proteus for MCU control code on a simple power stage; MATLAB for analytical converter models; COMSOL for the magnetics and thermal design of the parts. |
Schematic capture, part numbers and BOM ( | Altium → OrCAD/PSpice → Proteus → EAGLE* → draw.io* | Altium for managed parts with live supply-chain data and one data model shared with the PCB; OrCAD Capture CIS for database-driven part numbers and PSpice/Allegro flows; Proteus for microcontroller projects; EAGLE was the lightweight option whose library parts carry manufacturer part numbers (retired: now for existing files and BOM extraction). |
PCB design, layout and manufacturing outputs ( | Altium → OrCAD/PSpice → Proteus → EAGLE* → AutoCAD* | Altium for professional multilayer, high-speed and rigid-flex boards with the strongest interactive routing and rule system; OrCAD/Allegro for Cadence flows; Proteus for simpler microcontroller boards; EAGLE was light and quick for 2-4-layer and open-hardware boards (retired: now for existing designs and CAM output). |
3D PCB models, realistic renders and ECAD-MCAD exchange ( | Altium → OrCAD/PSpice → AutoCAD* → EAGLE* → COMSOL* | Altium for realistic 3D, STEP models on footprints, collision checks and MCAD exchange; OrCAD/Allegro for Cadence boards; AutoCAD for the enclosure around an exported board STEP; COMSOL for thermal or structural physics on the assembly. |
Microcontroller firmware development and testing ( | Proteus → Simulink → MATLAB → Vivado* | Proteus to run and debug real firmware against the simulated circuit; Simulink with Embedded Coder for model-based production code; MATLAB Coder for C code from algorithms; Vivado only for processors inside AMD FPGAs and SoCs. |
FPGA and digital hardware design ( | Vivado → Simulink → MATLAB | Vivado is required to implement and program AMD FPGAs; Simulink or MATLAB HDL Coder generate the HDL from models or algorithms first. |
Control design and dynamic system simulation ( | Simulink → MATLAB → Mathematica → COMSOL* → OrCAD/PSpice* | Simulink for nonlinear closed-loop simulation, logic and deployment; MATLAB for linear analysis and controller synthesis; Mathematica for closed-form, parameter-dependent stability results. |
Differential equations and general numerical computing ( | MATLAB → Mathematica → COMSOL → Simulink | MATLAB for numerical ODE/DAE work, optimisation and data; Mathematica for exact or high-precision solutions; COMSOL for PDEs on real geometry; Simulink for ODE systems built as block diagrams. |
Symbolic and exact mathematics ( | Mathematica → MATLAB | Mathematica for any serious symbolic or exact work; MATLAB's Symbolic Math Toolbox for moderate steps inside MATLAB code. |
Data analysis, statistics and machine learning ( | MATLAB → Mathematica | MATLAB for engineering data, domain toolboxes and deployment; Mathematica for exploratory and symbolic statistics. |
Signal and scientific image processing ( | MATLAB → Mathematica → Photoshop* | MATLAB for quantitative, reproducible signal and image processing; Mathematica for exploratory or symbolic analysis; Photoshop only when visual appearance is the goal. |
Photo editing and graphic assets ( | Photoshop → MATLAB → Mathematica | Photoshop for anything visual; MATLAB or Mathematica only for algorithmic batch operations. |
Structural analysis (stress, vibration, buckling, fatigue) ( | COMSOL → MATLAB → Simulink* | COMSOL for structural FEM with nonlinear materials, contact and fatigue; MATLAB's PDE Toolbox for simple linear problems; Simulink Multibody for mechanism motion, not stress. |
Thermal analysis and electronics cooling ( | COMSOL → Simulink → MATLAB | COMSOL for temperature fields on geometry and electronics cooling; Simulink for lumped, system-level thermal behaviour; MATLAB for simple conduction problems and fits. |
Fluid flow and CFD ( | COMSOL → Simulink → MATLAB* | COMSOL for 2D/3D flow fields and flow coupled to heat or structures; Simulink (Simscape Fluids) for system-level hydraulics. |
Low-frequency electromagnetics: motors, transformers, inductors, electrostatics ( | COMSOL → Simulink → MATLAB → OrCAD/PSpice* | COMSOL for motors, transformers, inductors, busbars and electrostatics from their geometry; Simulink for drives with known machine parameters; MATLAB for simple 2D fields and parameter fits. |
Acoustics and vibro-acoustics ( | COMSOL → MATLAB → Simulink | COMSOL for sound fields, transducers and vibro-acoustics on geometry; MATLAB for analytical estimates and audio signal analysis; Simulink for lumped transducer models. |
Coupled multiphysics (Joule heating, thermal stress, FSI, piezoelectric, electrochemical-thermal) ( | COMSOL → MATLAB → HFSS | COMSOL for strongly coupled physics in one model; MATLAB to orchestrate weak or sequential couplings; HFSS only for RF losses handed to Ansys thermal tools. |
Chemical reactors, electrochemistry and batteries ( | COMSOL → Simulink → MATLAB → Mathematica | COMSOL for cell, corrosion, fuel-cell and reactor physics; Simulink for pack-level and BMS simulation; MATLAB for fitting models to test data; Mathematica for analytical kinetics. |
Optics and photonics ( | COMSOL → HFSS → MATLAB | COMSOL for wave and ray optics and thermal lensing; HFSS for small metasurfaces and nanostructures inside AEDT; MATLAB for simple propagation models. |
EMC/EMI analysis ( | Feko → HFSS → COMSOL → OrCAD/PSpice → Altium* | Feko for vehicle and aircraft EMC and cable harnesses; HFSS for board, package and enclosure EMI; COMSOL for component shielding; PSpice for conducted emissions of power supplies. |
Technical drawings and 2D/3D CAD geometry ( | AutoCAD → draw.io → COMSOL* → Altium* | AutoCAD for scaled, dimensioned drawings and DWG/DXF exchange; draw.io for quick plans and sketches. |
Diagrams for documentation (flowcharts, architecture, block diagrams) ( | draw.io → Simulink → Mathematica → AutoCAD | draw.io for documentation diagrams; Simulink when the diagram must simulate; Mathematica for graphs computed from data; AutoCAD when exact geometry matters. |
Example with OrCAD not installed but Simulink and MATLAB installed, for "simulate a buck converter":
First choice would be orcad (not installed). Suggested installed alternative: simulink. Control-loop design,
drive-level and grid-level behaviour, embedded code for the controller. Tell the user its limits: Device-level
waveforms are less detailed than PSpice with vendor models. Tools: simulink_*.Configuration
Copy .env.example to .env. Everything is optional:
Variable | Purpose |
| security policy, see Security and network policy; set by |
|
|
| key for |
| explicit executable paths; when unset the adapter looks on |
| default timeout in seconds for launching an application (600) |
| where generated scripts, logs and results are written ( |
| release-specific command-line overrides (see the adapter docstrings) |
Call the adapter_status tool to see what was detected.
Running the server
There are two things you can run. Neither is running by itself after installation.
1. The MCP server is normally started by your MCP client (Claude Desktop, Claude Code, your own agent) as a child process that talks over stdio, so you usually never start it by hand: you register the command in the client (next section) and the client launches it when it connects. To run it manually, e.g. for an HTTP client:
python -m mcp_adapter.server # stdio (default): opens no port
python -m mcp_adapter.server --transport streamable-http --port 8000 # listens on 127.0.0.1 only in local mode
python -m mcp_adapter.server --transport sse --port 8000
python -m mcp_adapter.server --transport streamable-http --host 0.0.0.0 # refused unless MCP_ADAPTER_NETWORK_MODE=network; mind the licensing note
python -m mcp_adapter.server --print-policy # show the effective security policyThe server prints its effective exposure to stderr at start-up, e.g. listening on 127.0.0.1:8000 - LOOPBACK ONLY.
The HTTP transports refuse to start without MCP_ADAPTER_AUTH_TOKEN in .env (created by mcp-adapter-setup or
the UI's Start endpoint); clients send it as Authorization: Bearer <token>. stdio needs no token.
2. The workspace UI (chats, settings, applications) is a small local web page; it runs while its console window is open and stops with Ctrl+C (see Workspace UI):
python -m mcp_adapter.ui.serverOn Windows use py instead of python if the plain command is not on your PATH. The short commands
mcp-adapter, mcp-adapter-setup and mcp-adapter-ui are installed too, but they only work when Python's
Scripts folder is on your PATH; the python -m ... forms always work.
Claude Desktop
Add to claude_desktop_config.json (see examples/claude_desktop_config.json):
{
"mcpServers": {
"mcp-adapter": {
"command": "python",
"args": ["-m", "mcp_adapter.server"],
"cwd": "C:/path/to/MCP-ADAPTER-PV"
}
}
}Claude Code
claude mcp add mcp-adapter -- python -m mcp_adapter.server(On Windows without python on PATH: claude mcp add mcp-adapter -- py -m mcp_adapter.server.)
Any MCP client (Python)
examples/client_demo.py launches the server over stdio, lists the tools and calls a few.
Tools
Catalog
Tool | What it does |
| supported applications, catalog sizes, whether the executable was found |
| catalog categories with counts |
| compact rows of catalog entries |
| full entry as Markdown: description, usage, parameters, example, notes, docs |
| ranked keyword search across one or all catalogs |
| product summary + automation entry points (CLI flags, APIs, file formats) |
| suggests the application for a task (what each is best for, installed here or not, tool prefix) with the matching comparison and installed alternatives |
| head-to-head comparison of applications that can do the same kind of task: which is best for what, strength, when to choose, limits; advisory, falls back to installed candidates |
| live documentation search restricted to vendor sites (Tavily); only registered when |
| detected executables, env overrides, the active security policy and the current output folder |
| writes all generated files and results into the task's folder (checked: existing, local, not a system/hidden/network folder); empty = back to the default |
| network mode, bind restriction, which internet tools are disabled and how to change it |
Resources: catalog://software, catalog://{software}/categories, catalog://{software}/{name}.
Time
time_now, time_convert, time_add, time_difference, time_format, time_list_timezones,
time_world_clock, time_unix. Inputs accept ISO 8601, unix seconds/milliseconds, now/today/tomorrow
and common formats; zones accept IANA names, local, abbreviations (EST, CET, IST) and offsets (+03:30).
Automation (per application)
Family | Tools |
MATLAB |
|
Simulink |
|
Mathematica |
|
COMSOL |
|
Photoshop |
|
OrCAD |
|
Altium |
|
Proteus |
|
Vivado |
|
AutoCAD |
|
HFSS |
|
Feko |
|
EAGLE |
|
draw.io |
|
mathematica_wolfram_alpha is the only automation tool that reaches the internet (through your Mathematica
installation); like search_docs_online it exists only when MCP_ADAPTER_ALLOW_INTERNET=true.
Every automation tool returns the same shape:
{"ok": true, "software": "matlab", "command": "...", "returncode": 0, "duration_s": 6.9,
"stdout": "...", "stderr": "", "artifacts": {"script": "outputs/matlab/mcp_run_....m"}, "data": {"x": [1, 2, 3]}}data carries structured results (JSON captured from MATLAB/Vivado/Photoshop/HFSS scripts, parsed PSpice
output, diagram statistics, ...). When the executable is missing, ok is false and error names the
environment variable to set.
Examples
search_tools(query="butterworth filter design", software="matlab")
describe_tool(software="mathematica", name="NDSolve")
matlab_eval(expression="roots([1 -3 2])") -> data.mcp_value__ == [2, 1]
simulink_simulate(model="vdp", stop_time="20") -> logged signals summary + .mat file
vivado_build_project(project_file="C:/fpga/top.xpr") -> WNS/TNS and bitstream path
drawio_flowchart(steps=["Load", "Valid?", "Save"], export_format="png")
hfss_export_touchstone(project="ant.aedt", design="patch", setup="Setup1", sweep="Sweep", output_file="ant.s1p")
time_convert(datetime="2026-09-19 14:30", from_timezone="Europe/Berlin", to_timezone="Asia/Tehran")Notes on vendor entry points
OrCAD Capture executes Tcl from its Command Window; a start-up switch differs between releases, so the adapter writes the script and returns the
sourcecommand unlessORCAD_CAPTURE_TCL_CMDis configured.Altium Designer is driven with
X2.EXE -RScriptFile:<PrjScr> -RProcName:<Unit>Proc>; override the switch template withALTIUM_SCRIPT_ARGSif your version expects different names.Proteus has no documented headless simulation switch;
proteus_run_clipasses arbitrary switches through.Feko (verified with 2026.1):
runfeko MODEL [-np N] [--use-gpu] [--priority x]solves;cadfeko_batch MODEL.cfx -# VAR=VALUE --force-meshchanges variables and re-meshes; Lua scripts run withcadfeko/postfeko [MODEL] --non-interactive --run-script FILE [--configure-script "..."].runfekohas no--versionswitch (the adapter parses its banner). The Lua templates follow the scripting reference; confirm method names with the CADFEKO recorder.EAGLE (verified with 9.6.0 in September 2026): Autodesk retired EAGLE on 7 June 2026 and shut down its licensing servers. The command-line CAM Processor still runs without signing in:
eaglecon -X -N -dCAMJOB -j<job.cam> -o<dir> board.brdwrites Gerber files, the Gerber job file, Excellon drill and assembly data (the adapter picks the shippedexample_N_layer.camjob from the board's layer setup when none is given), and a legacy device plus a layer list (-dEXCELLON ... 44 45) writes a single file. The editor route (eagle -C "RUN x.ulp; QUIT") now stops at the Autodesk 'Sign in' window; the adapter detects that, closes the process and says so, and never signs in..sch/.brd/.lbrfiles are XML (doc/eagle.dtd), soeagle_read_design,eagle_bomandeagle_netlistwork without EAGLE; binary files from before EAGLE 6.0 are only read by the CAM Processor.COMSOL (verified with 6.4):
comsolbatch -inputfile model.mph|Model.class -outputfile out.mph -batchlog logsolves a model or runs a compiled Java model program; a model built by a class is saved asout_<ModelTag>.mph, which the adapter reports.comsolcompileexits with code 0 even when compilation fails, so the adapter checks its message and the.classfile.comsol_inspect_modelandcomsol_evaluatecompile small Java programs, so reading results needs no Python bridge (MPh stays optional). The example tools index the local Application Library (applications/) and its documentation (doc/help/.../com.comsol.help.models.*), including the Java script that builds each example;scripts/build_comsol_examples.pyregenerates the example catalog from an installation.Photoshop must be running (or startable) on the same desktop session; COM (pywin32) gives synchronous execution, otherwise the adapter launches the JSX and polls for the result file.
Development
pytest -q # unit tests (live MATLAB test runs only when MATLAB is installed)
ruff check mcp_adapter tests scripts
python scripts/catalog_stats.py
python scripts/tavily_search.py "Vivado report_timing_summary options"Project layout:
mcp_adapter/
server.py MCP tool/resource registration and CLI entry point
catalog.py catalog loader, alias resolution, ranked search
time_tools.py timezone-aware time utilities
docs_search.py Tavily-backed live documentation search
config.py .env loading, executable discovery, timeouts
adapters/ one module per application (base.py holds the subprocess runner)
catalogs/<id>/ meta.json + NN_<category>.json data files
tests/ pytest suite (catalog schema validation, time tools, adapters, server)
examples/ client demo and Claude Desktop configuration
scripts/ Tavily helper and catalog statisticsTo add or extend a catalog, drop a new NN_<slug>.json file into the software folder (≤ 40 tools per file,
fields per CATALOG_SCHEMA.md) and run pytest tests/test_catalog.py.
License
MIT, for the adapter's own code only. The applications it automates remain under their vendors' licenses; see Use it only locally (licensing).
Available Tools
31 toolsadapter_statusB
Which applications were detected, which automation tools are exposed or hidden (and why), and the security policy.
Inputs: no named parameters. Returns: object
altium_script_templateA
[Altium Designer: schematic capture, PCB layout/routing, stackups, fabrication outputs] Return ready-made DelphiScript: template 'export_bom' (project_path, output_file .csv) or 'pcb_stats' (output_file .txt).
Inputs: template (required), output_file, project_path. Returns: object
compare_applicationsA
Head-to-head comparison of the applications that can do the same kind of task (antennas, antenna placement/RCS, RF passives/SI, circuits, power electronics, schematic capture/BOM, PCB, 3D PCB/MCAD, firmware, FPGA, control, ODEs/numerics, symbolic maths, data/ML, signal/image processing, photo editing, structural, thermal, CFD, low-frequency EM, acoustics, multiphysics, batteries/chemistry, optics, EMC, drawings, diagrams). Each area has a one-line summary of which application is best for what; each candidate has its strength, when to choose it and its limits, ranked from the usual first choice, with installation status on this machine.
Advisory only: the suggested pick is the application the task names (if installed), else the first installed candidate that can substitute. Any installed candidate may be used; tell the user which trade-offs apply. Call with no arguments to list the areas, with area= for one area, or with task= to match areas.
Inputs: area, task. Returns: object
describe_toolC
Full description of one catalog entry: what it does, usage/syntax, parameters, example, docs link.
Inputs: name (required), software (required), as_markdown. Returns: result
drawio_codecA
[draw.io: diagrams (flowcharts, block diagrams, architecture, UML, network) as editable files and PNG/SVG/PDF] Decode a compressed payload to XML (mode=decode) or compress XML to draw.io format (mode=encode).
Inputs: text (required), mode. Returns: object
drawio_create_diagramB
[draw.io: diagrams (flowcharts, block diagrams, architecture, UML, network) as editable files and PNG/SVG/PDF] Build a .drawio diagram from nodes [{id,label,shape?,style?,x?,y?,width?,height?}] and edges [{source,target,label?,style?}].
Shapes: rectangle, rounded, ellipse, circle, rhombus/decision, process, terminator, start, end, document, cylinder/database, cloud, note, hexagon, parallelogram/data, triangle, actor, text, card, step, container/swimlane, cube, component, umlclass. Layout is automatic (layered, direction TB or LR) unless x/y are given. Set export_format=png|svg|pdf to also render.
Inputs: nodes (required), edges, title, direction, +2 more. Returns: object
drawio_flowchartC
[draw.io: diagrams (flowcharts, block diagrams, architecture, UML, network) as editable files and PNG/SVG/PDF] Quick linear flowchart from a list of step labels (labels ending with '?' become decision diamonds).
Inputs: steps (required), title, direction, output_file, +1 more. Returns: object
drawio_readB
[draw.io: diagrams (flowcharts, block diagrams, architecture, UML, network) as editable files and PNG/SVG/PDF] Read a .drawio/.xml file: pages, vertex/edge counts, labels and the decoded mxGraphModel XML.
Inputs: path (required). Returns: object
eagle_bomA
[Autodesk EAGLE (retired June 2026): schematic capture and PCB layout; reads EAGLE designs, command-line CAM (Gerber/Excellon), BOM and netlist, User Language programs and scripts] Bill of materials from an EAGLE schematic or board (XML, no EAGLE needed), grouped by value, package, manufacturer and MPN attributes, with designators; parts without a package (frames, supply symbols) are left out. Optionally writes a CSV (relative paths go into the current output folder).
Inputs: design_file (required), output_csv. Returns: object
eagle_netlistA
[Autodesk EAGLE (retired June 2026): schematic capture and PCB layout; reads EAGLE designs, command-line CAM (Gerber/Excellon), BOM and netlist, User Language programs and scripts] Netlist from an EAGLE schematic (part.pin per net) or board (element.pad per signal), XML only; optionally written as a tab-separated text file.
Inputs: design_file (required), output_file. Returns: object
eagle_read_designB
[Autodesk EAGLE (retired June 2026): schematic capture and PCB layout; reads EAGLE designs, command-line CAM (Gerber/Excellon), BOM and netlist, User Language programs and scripts] Read an EAGLE XML design without EAGLE: schematic (sheets, parts with package and attributes, nets with pins, variants, modules), board (copper layers, size, elements with position/rotation, signals with pads/wires/vias, unrouted signals, key design rules) or library (packages, symbols, device sets).
Inputs: design_file (required), max_items. Returns: object
feko_lua_templateC
[Altair Feko: computational electromagnetics (MoM/MLFMM/FEM/PO/UTD hybrids) for antennas, antenna placement on platforms, RCS, EMC] Ready-made Lua scripts to adapt: 'dipole' (CADFEKO build + solve), 'export_source_data' (POSTFEKO impedance CSV), 'export_farfield' (POSTFEKO .ffe export), 'rcs_sweep' (CADFEKO plane-wave monostatic RCS).
Inputs: kind (required), model, output, frequency_hz. Returns: object
feko_parse_outA
[Altair Feko: computational electromagnetics (MoM/MLFMM/FEM/PO/UTD hybrids) for antennas, antenna placement on platforms, RCS, EMC] Parse a Feko .out report (no Feko needed): solution frequencies, per-source impedance/current/power, section headings, mesh/memory/time summary lines, warnings and errors.
Inputs: out_file (required). Returns: object
list_categoriesA
List the catalog categories (with tool counts) for one application, e.g. 'matlab' or 'vivado'.
Inputs: software (required). Returns: object
list_softwareA
List the supported applications with catalog size and whether the executable was found locally.
Inputs: no named parameters. Returns: object
list_toolsB
List catalog entries for an application, optionally filtered by category substring and kind.
Returns compact rows (name, kind, category, description). Use describe_tool for usage and examples.
Inputs: software (required), kind, limit, offset, +1 more. Returns: object
orcad_parse_pspice_outputB
[OrCAD PSpice/Capture/PCB Editor: analog & mixed-signal circuit simulation, schematics, PCB] Parse an existing PSpice .out file (errors, warnings, node voltages, total power).
Inputs: out_file (required). Returns: object
proteus_project_infoA
[Proteus: microcontroller/firmware co-simulation (VSM) with circuit, plus schematic and PCB] Inspect a .pdsprj container without opening Proteus: embedded files, firmware references, MCU hints.
Inputs: project_file (required). Returns: object
recommend_applicationA
Suggest which application (and tool family) fits an engineering task best, e.g. antennas -> HFSS, SPICE circuits -> PSpice, coupled physics -> COMSOL, PCB -> Altium, FPGA -> Vivado, symbolic math -> Mathematica, numerics/plots -> MATLAB.
Call this before choosing tools for a task. Returns ranked candidates with the matched terms, what each is best for, whether it is installed here and its tool prefix, plus a head-to-head comparison of the applications that can do this kind of task (strength, when to choose each, limits). The result is a suggestion, not a rule: if the suggested application is not installed or the user prefers another, use an installed alternative and tell the user its limits.
Inputs: task (required). Returns: object
search_toolsC
Search the catalogs by keyword(s) across all applications or one; ranked by name/category/description matches.
Inputs: query (required), kind, limit, category, +1 more. Returns: object
security_policyB
Effective network/internet policy (local-only vs network mode, which tools are disabled, how to change it) and the rules for the output folder.
Inputs: no named parameters. Returns: object
set_output_folderA
Write all generated scripts and results into folder, normally the folder the user gave or granted for the task, instead of the adapter's default outputs folder. Call it first in a task that has a folder. Relative paths in later tool arguments are resolved inside it. Each application writes into its own subfolder (e.g. D:\Projects\PCB\orcad) unless per_application_subfolders is false. An empty folder goes back to the default.
The folder must already exist on a local disk. Drive roots, the home folder itself, hidden, system, program, application-data and network folders are refused; MCP_ADAPTER_OUTPUT_ROOTS in .env can restrict it further. The setting applies to this server process (all chats of this client) until changed or the server restarts.
Inputs: folder, per_application_subfolders. Returns: object
software_overviewB
Everything an agent needs to decide how to use an application: what it is best for, typical tasks, what it is not suited to, its capability areas (catalog categories with entry counts, browse them with list_tools), the automation entry points (CLI flags, scripting APIs, file formats) and whether it is installed here.
Inputs: software (required). Returns: object
time_addB
Add (or subtract with negatives) a duration to a date/time.
Inputs: days, hours, weeks, format, +4 more. Returns: object
time_convertB
Convert a date/time between timezones. Accepts ISO 8601, unix timestamps, 'now', 'today'.
Inputs: datetime (required), format, to_timezone, from_timezone. Returns: object
time_differenceC
Elapsed time between two date/times in seconds, minutes, hours, days, weeks and a human string.
Inputs: start (required), end, timezone. Returns: object
time_formatC
Format a date/time with a strftime pattern (e.g. '%A %d %B %Y, %I:%M %p').
Inputs: format, datetime, timezone. Returns: object
time_list_timezonesA
List IANA timezone names, optionally filtered by substring (e.g. 'Asia', 'London').
Inputs: limit, filter. Returns: object
time_nowA
Current date/time in a timezone (IANA name like 'Europe/Berlin', 'local', 'EST', or '+03:30').
Returns ISO 8601, unix epoch, UTC offset, DST flag, weekday, ISO week and an optional strftime-formatted string.
Inputs: format, timezone. Returns: object
time_unixC
Convert a date/time to unix epoch seconds/milliseconds (or 'now').
Inputs: datetime, timezone. Returns: object
time_world_clockB
Show one instant across several timezones (defaults to ten major zones).
Inputs: zones, datetime, from_timezone. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 31 tools
Most tools have clearly distinct purposes: the time_* family, the app-specific tools (eagle_*, feko_*, drawio_*), and the catalog browsers are separable. However, the discovery/advisory cluster overlaps—list_software vs software_overview vs adapter_status, and recommend_application vs compare_applications—could cause misselection, and list_tools vs describe_tool vs search_tools blur somewhat.
Names follow a predictable snake_case verb_noun or prefix_noun pattern throughout, with clear per-domain prefixes (time_*, eagle_*, feko_*, drawio_*, altium_, orcad_, proteus_). Even the meta tools (list_*, describe_tool, search_tools, set_output_folder) stay consistent.
31 tools is heavy, sitting above the ideal 3-15 range. The breadth is partly justified by aggregating many engineering applications plus time and meta utilities, but the distribution is uneven (draw.io gets 4 tools while OrCAD/Altium/Proteus get one each), so the count feels padded rather than tightly scoped.
The meta/catalog and time surfaces are complete (list/describe/search, full time arithmetic). But application coverage is thin per app: many supported applications have only a single parse or template tool, and EAGLE lacks create/CAM-export while draw.io lacks update/edit, leaving notable gaps an agent must route around via catalog scripts.
Maintenance
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
150+ vertical AI expert bots as agent tools. $1 bots run on YOUR machine - your data stays yours.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to author, read, critique, and validate production CAD drawings through 247 typed tools spanning mechanical parts, architectural plans, P&IDs, takeoffs, and ISO GD&T / dimension-tolerance checks. It drives live AutoCAD over COM on Windows or runs headlessly anywhere via ezdxf, with pack and discovery modes to keep the advertised tool surface cheap.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to automate drafting through a typed tool contract that drives either live AutoCAD over COM on Windows or a headless ezdxf engine anywhere, covering layers, dimensions, GD&T and tolerance validation, P&ID symbol drafting and reading, mechanical parts and sheets, architectural floor plans, and takeoffs. It also supports token-efficient discovery and tool packs so clients only load the capabilities they need.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to author, edit, read back, and validate AutoCAD drawings — including ISO-compliant mechanical sheets, architectural floor plans, and P&ID diagrams with dimensions, GD&T, and takeoffs — either live through COM on Windows or headlessly through ezdxf on any platform. It also exposes tool packs, discovery search, and drawing-critique checks so agents can work without paying the full catalog's idle token cost.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to create, edit, read back, and validate engineering drawings — including P&ID sheets, mechanical parts, and architectural plans — against ISO standards such as GD&T, dimension tolerances, title blocks, and takeoffs. Runs either live through AutoCAD COM on Windows or headlessly through ezdxf anywhere, with selectable tool packs and a search-based discovery mode to keep the advertised tool surface small.-