Igor Pro MCP
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., "@Igor Pro MCPmake a wave of 100 random values and plot it"
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.
Igor Pro MCP
A Windows MCP server for WaveMetrics Igor Pro. It runs as a local stdio process and controls Igor through COM. The server works independently of an agent skill, wiki, or Git history.
Quick start
You need Windows, Python 3.10 or newer, an installed Igor Pro (version 10 is recommended; the server currently accepts 6.0+), and an MCP host that supports local stdio servers.
git clone https://github.com/gabzsi/igormcp.git
Set-Location igormcp
.\setup.ps1The setup script creates .venv, installs this package and its dependencies, downloads and validates the official Markdown pages listed by WaveMetrics' documentation index, and writes two path-resolved configuration examples under .local/. The download requires internet access. The downloaded pages stay in the Git-ignored .local/knowledge/; they are not included in this repository or its package. If an existing .local/knowledge/ bundle is present, updates retain compatible manual documents that are no longer in the current online index. Use -IncludeExistingKnowledge 'D:\path\to\knowledge' to merge another validated local bundle during setup. If setup cannot find Python, pass -Python with the path to a Python 3.10+ executable.
Setup does not edit your MCP host configuration or start Igor. Copy the matching entry from .local/mcp-config.codex.toml or .local/mcp-config.example.json into your host's configuration, then restart or reconnect the host. A successful download activates the validated local bundle. If refresh fails but a previously validated local or explicitly supplied bundle exists, setup warns that it is using that older bundle. If no complete bundle is available, setup stops without writing MCP config files; retry with the command shown by setup. To skip the network download, use .\setup.ps1 -SkipKnowledgeDownload only when a valid local bundle already exists or pass one with -IncludeExistingKnowledge.
When the MCP server is connected, call ensure_igor to attach to or start Igor. This is the only startup step; do not launch Igor from a shell. To verify the code without Igor, run the offline suite:
.\.venv\Scripts\python.exe -B -m unittest discover -s testsRelated MCP server: Origin MCP
What it does
The server exposes 19 tools over MCP stdio:
Control:
ensure_igor,igor_status,execute_igor,open_igor_experiment,import_delimited_textInspect:
list_waves,get_wave_data,read_variable,list_proceduresDialogs and diagnostics:
get_igor_dialogs,dismiss_igor_dialogs,get_igor_compilation_errors,dismiss_igor_compilation_errorsKnowledge:
query_igor_help,search_igor_knowledge,read_igor_documentSession memory:
search_session_memory,read_session_memory,capture_session
Use direct execute_igor commands for ordinary calculations, plotting, fitting, inspection, and short command sequences. Use an IPF procedure for ODE simulations, instrument control, repeated loops, substantial batch work, or reusable routines. igor_status only checks connectivity; it does not start Igor. open_igor_experiment requires Igor to be running and follows normal Igor Open behavior. Unsaved-work prompts remain under the user's control.
The server serializes Igor commands and bounds response waits. A timeout means the outcome may be unknown: inspect Igor state and diagnostics before retrying. Review dialogs or compiler errors before using an explicit dismissal tool.
When starting a new Igor process, the server requests that its main window be shown without activation. It does not intentionally restore or foreground an existing window. Igor or Windows may still affect focus independently.
Knowledge and the optional skill
The server's initialize instructions supply a compact everyday Igor core on each MCP connection, including routine wave creation and assignments, scaling, folders, calculations, plotting, axis labels, and colors. Use that core for familiar basics without looking up a manual page; use the reference tools when syntax is uncertain or a task is advanced or version-specific. These instructions are sent during initialization and are not a promise of permanent model or host caching.
The local manual index labels selected basic pages core-reference and broader references on-demand. The label is visible in search and read results, but neither tier is loaded into the initialize instructions: documents are read only through a knowledge tool call. The repository and Python package include eight curated project guides, but no WaveMetrics manuals or extracted manual images. By default, setup downloads the Markdown pages listed by WaveMetrics' llms.txt documentation index into a local, ignored cache. A fresh install gets the pages in that index at download time; its coverage can change and may omit older or otherwise unlisted Igor Pro material. Subsequent updates preserve compatible non-indexed manuals already in the local bundle. This is not a claim that every Igor Pro manual, installed extension, or help topic is included. query_igor_help searches a validated local bundle when the generated MCP entry sets IGOR_KNOWLEDGE_DIR. -SkipKnowledgeDownload uses an existing valid bundle and stops with an error if none is available. The curated guides remain available through search_igor_knowledge in either case.
To refresh the local cache after setup, run:
.\.venv\Scripts\python.exe -B scripts\update_knowledge.py --output .local\knowledgeIf no valid bundle was available when setup generated the MCP configuration, rerun .\setup.ps1 after a successful refresh. The downloader reads the official Markdown index at docs.wavemetrics.com/llms.txt; this project does not import native Igor help files. For product documentation and terms, see WaveMetrics' manual page and Igor Pro documentation.
The optional igor-pro skill adds task routing and data-safety guidance for compatible agents. It is not required by the server and does not configure an MCP host.
Session memory and privacy
MCP tool calls are recorded automatically as bounded JSONL observations. Use search_session_memory and read_session_memory to find task-specific prior work; capture_session writes a separate concise summary when a result or workaround should persist. Session data defaults to %LOCALAPPDATA%\igor-mcp\sessions; set IGOR_SESSION_DIR to use another location. The setup script leaves this setting out so the server uses its private per-user default.
Logs omit bulk wave arrays and redact values under fields named like secrets, but command text and results can still contain sensitive information. Keep session files private. They are not committed automatically, are append-only, and are not deleted when the configured storage cap is reached.
License and third-party material
The server and project-authored guides are released under the MIT License. The license does not grant rights to Igor Pro, WaveMetrics documentation, or other third-party material. The local documentation bundle is excluded from this public repository; do not add local manual exports or their image assets without redistribution permission.
This server cannot be deployed
Maintenance
Related MCP Connectors
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
Connect any MCP client to MetaTrader 4/5 to read prices, manage positions, and place trades.
Your IMAP mailbox as an MCP server: read, search and (if you allow it) organize mail. Open source.
Hosted MCP server for MT4 and MT5: read accounts, prices and candles, and place or close orders.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables querying PCB and schematic data and driving DelphiScript automation in Altium Designer via MCP.139MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI clients to drive a running OriginLab Origin instance, allowing LabTalk scripting, worksheet read/write, and project management.-
- FlicenseNot gradedqualityBmaintenanceExposes a running Igor Pro instance to MCP clients, enabling command execution, wave data reading, compilation management, and launching/relaunching Igor Pro.3-
- AlicenseAqualityAmaintenanceEnables controlling OriginLab Origin through MCP to read and write worksheets, build and style multi-panel graphs, and export figures, reporting what Origin actually did rather than what it was asked to do. Works from macOS or Linux against Origin running in a Windows VM.1729 PyPI3MIT