Origin Pro MCP Server
The Origin Pro MCP Server enables AI assistants to control OriginLab Origin Pro via COM automation, allowing real-time creation and manipulation of worksheets, graphs, and analyses directly in Origin's GUI (Windows only).
Worksheet & Data Management
Create workbooks/worksheets; read/write column data
Import CSV/Excel files; export worksheets to CSV
Set column formulas, properties (name, units, comment, designation)
Sort rows, add/delete columns, transpose worksheets
List all open workbooks, graphs, and matrices
Matrix & 3D Data
Create matrix books; read/write 2D grids
Grid scattered XYZ worksheet data into a matrix
Create surface (3D), contour, heatmap, and image plots from matrices
Graph Creation
Create scatter, line, line+symbol, column, bar, area, pie, histogram, box, contour, and 3D scatter plots
Add multiple datasets/series to existing graphs
Add panel/axis layers (right-Y, top-X, inset, independent)
Graph Axes & Annotations
Set axis labels, titles, min/max ranges, and scales (linear, log10, ln, log2)
Add horizontal/vertical reference lines, text annotations, lines, and arrows
Plot Styling
One-call
apply_publication_stylefor publication-ready formatting (bold Arial, muted palette, inward ticks, closed frame, legend)Set per-plot color, symbol shape/size, line width, font family/size
Configure legend visibility, position, and custom entries
Apply colormaps (Viridis, Plasma, Inferno, etc.) and set Z color-scale range
Graph Export & Templates
Export graphs to PNG/JPG/TIF/BMP with pixel-size control
Export all graphs in the project at once
Save graphs as reusable Origin templates (.otpu/.otp)
Analysis
Curve fitting with 15+ functions (linear, polynomial, exponential, Gaussian, Lorentzian, Voigt, sigmoidal, etc.) returning parameters ± std errors, R², SSR, reduced χ²
Numerical integration, differentiation, smoothing (Savitzky-Golay, adjacent average, binomial)
Interpolation/resampling (linear, spline, Akima), FFT with dominant frequency identification, peak finding
Statistics
Descriptive statistics (mean, SD, SE, median, min, max, sum, n)
Two-sample t-test (t, df, p-value, means)
Frequency/histogram counts with configurable bins
Project Management
Create, save, and load Origin projects (.opj/.opju)
LabTalk Scripting
Execute LabTalk scripts directly (with safety blocks on destructive commands)
Read LabTalk variable values
Provides tools for controlling OriginLab Origin Pro via COM automation, enabling AI assistants to manage worksheets, create graphs, perform analysis, and export results directly in the Origin GUI.
Click on "Install 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., "@Origin Pro MCP ServerCreate a scatter plot from x=[1,2,3,4,5] and y=[2.1,4.0,5.9,8.1,10.0]"
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.
Origin Pro MCP Server
An MCP (Model Context Protocol) server that enables AI assistants like Claude to control OriginLab Origin Pro via COM automation. All operations are reflected in Origin's GUI in real-time — you watch as the AI creates worksheets, plots graphs, and styles figures.
What Can It Do?
Worksheet Management — Create workbooks, read/write data, import CSV/Excel, export CSV, column formulas, sort, transpose
Matrices & 3D — Matrix books, XYZ gridding, 3D surface/scatter, contour, heatmap, image plots
Graph Creation — Scatter, line, line+symbol, column, bar, area, pie, histogram, contour plots
Graph Layers & Axes — Log scales, dual Y axis, panels, reference lines, text annotations
Plot Styling — Colors, symbols, line width, publication-ready formatting in one call
Analysis — Curve fitting, FFT, smoothing, integration, differentiation, interpolation, peak finding
Statistics — Descriptive stats, two-sample t-test, frequency counts
Project Management — New/save/load projects, export all graphs (with pixel-size control)
LabTalk Scripting — Direct LabTalk execution with destructive/file-overwrite commands blocked
This MCP server is intentionally Windows-runtime-only. The AI agent or MCP client can run from Windows or WSL, but the MCP server process that talks to Origin must be launched with Windows Python and pywin32. WSL/Linux can edit the project and run non-COM unit tests, but cannot directly control Origin COM.
Related MCP server: MCP Outlook
Quick Start
Agentic Setup (read this if you are an AI agent configuring this server)
Copy-paste rules to self-configure the origin-pro MCP with zero human steps:
Environment requirement. This server only works on Windows with a licensed Origin/OriginPro install and Windows Python with
pywin32. COM automation cannot run from WSL or Linux Python. If the agent runs in WSL, it must launch the Windows executable (uvx.exe/ Windowsorigin-pro-mcp), never WSL Python.Preferred install path. Use
uvx(zero setup) orpip install origin-pro-mcp. Both install to a Windows-local location and "just work":{ "mcpServers": { "origin-pro": { "command": "uvx", "args": ["--quiet", "origin-pro-mcp"] } } }From WSL, call
uvx.exeinstead ofuvx(see Option A below).Critical UNC rule. If you point at a local checkout from WSL, the repo MUST live under a Windows drive (e.g.
C:\Users\YOU\Origin-Pro-MCP). Never reference it through a\\wsl.localhost\...UNC path: the background daemon (python -m origin_pro_mcp.daemon) cannot resolve a-mmodule or a working directory over UNC, so it fails silently (Origin never opens).uvx/pip installavoid this entirely.Discover skills first. After connecting, call the
list_skillstool to see bundled skills (e.g.publication-figure) and when to use each, thenget_skill(name)to load the full step-by-step instructions before producing figures/plots/analysis. No file copying is needed — skills ship inside the package and are exposed by the server.
1. Prerequisites
Windows with a licensed Origin/OriginPro installation that exposes the Automation Server
Python 3.10+ (Windows Python, not WSL)
Tested environment: Origin Pro 2020. Other Origin/OriginPro versions may work if they expose compatible COM Automation Server and LabTalk behavior, but they are not verified by this project yet.
2. Install & Configure
Option A: uvx (recommended — zero setup)
No manual install needed. The MCP client launches the server for you. Just add this to your Claude Code MCP settings when Claude Code is running on Windows:
{
"mcpServers": {
"origin-pro": {
"command": "uvx",
"args": ["--quiet", "origin-pro-mcp"]
}
}
}uvx automatically downloads and runs the server in an isolated environment. Nothing else to install. The --quiet flag keeps first-run dependency messages out of your MCP client logs.
If Claude Code or another MCP client is running inside WSL, launch the same Windows server by calling Windows uvx.exe directly:
{
"mcpServers": {
"origin-pro": {
"command": "uvx.exe",
"args": ["--quiet", "origin-pro-mcp"]
}
}
}For a local checkout before publishing/installing, point Windows uvx at the Windows path of the repo:
{
"mcpServers": {
"origin-pro": {
"command": "uvx.exe",
"args": ["--quiet", "--refresh", "--from", "D:\\04.Agent OS\\Origin-Pro-MCP", "origin-pro-mcp"]
}
}
}Keep the command and args as separate JSON array entries. That avoids quoting problems when a Windows path contains spaces. If WSL cannot find uvx.exe, set command to the full WSL path for the Windows executable, for example /mnt/c/Users/YOU/.local/bin/uvx.exe.
WSL users — the package must live on a Windows-local path, not a
\\wsl.localhost\...(UNC) path. The server runs a background daemon (python -m origin_pro_mcp.daemon); Windows cannot resolve a-mmodule or use a working directory over a UNC path, so launching it from a WSL-filesystem checkout fails silently (Origin never opens and a console window flashes).uvx/pip installalready install to a Windows-local location, so they are unaffected. If you point at a local checkout, clone it under a Windows drive (e.g.C:\Users\YOU\Origin-Pro-MCP) and reference that path — do not point the MCP config at a repo inside the WSL filesystem.
Option B: pip install from PyPI
pip install origin-pro-mcpThen configure Claude Code:
{
"mcpServers": {
"origin-pro": {
"command": "origin-pro-mcp"
}
}
}Option C: Clone and run directly
git clone https://github.com/youngminsw/Origin-Pro-MCP.git
cd Origin-Pro-MCP
pip install -e .{
"mcpServers": {
"origin-pro": {
"command": "origin-pro-mcp"
}
}
}Note: If Claude Code runs in WSL, make sure the
uvxorpythoncommand points to your Windows Python, not WSL Python. Origin COM only works from Windows.
3. Origin Startup
You do not need to start Python or Origin manually. The MCP client starts origin-pro-mcp, which launches an isolated Origin instance for the session. By default the Origin window is visible, so you watch the agent create worksheets and plot graphs in real time.
Display mode — set the ORIGIN_PRO_MCP_VISIBLE environment variable in your MCP config:
Value | Mode | Use for |
| Visible — Origin window shown | Watching the agent work interactively |
| Invisible — Origin runs hidden | Headless/batch runs, many concurrent agents, no window pop-ups |
{ "mcpServers": { "origin-pro": {
"command": "origin-pro-mcp",
"env": { "ORIGIN_PRO_MCP_VISIBLE": "0" }
} } }Reliability & recovery (advanced env vars)
The background daemon runs one isolated Origin instance per session. These
environment variables harden it against a wedged Origin COM call (a synchronous
operation that never returns) and against destructive mistakes.
Some default off; the wedge/data-safety ones now default on because they
are safe (see each row). Set any to off to opt out.
Variable | Default | Effect |
|
| Soft budget (seconds) for each tool dispatch. If Origin doesn't respond within it, the client is told Origin looks wedged — most likely a modal dialog (e.g. "Get MiKTeX Path") — go dismiss it; NOTHING is killed. Dismiss the dialog and the operation finishes on its own and the session keeps working. Set |
|
| Grace (seconds) AFTER the soft warning before Origin is force-killed as a last resort (so a wedged session can never permanently hold a pool slot). Total time to a hard reset = timeout + grace (default 180s). Set |
|
| Save the project in place (its own file, same name — like pressing Save) before a destructive op (delete graph/plot, column deletion, project load/new, overwriting a populated sheet, or a |
|
| Also save the project in place every N seconds (proactive autosave), not just before destructive ops. Applies to agent-isolated sessions with a saved project; the Origin you |
|
| When autosave is on and a required preflight in-place save fails, the destructive op is not run and an error is returned. Set |
|
| Session lifecycle: by default a session ending gracefully (idle / client disconnect) is detached — the session's worker thread stops but your Origin window is left exactly as it was (original save path and unsaved edits intact) so you keep the project. Set |
|
| By default a restarting daemon does not kill leftover Origin windows (so a restart never destroys a project you kept open). Set |
|
| Set |
|
| Set |
Per-call override: run_labtalk(script, confirm=True, timeout=120) bounds that
one call even when a longer/shorter budget than ORIGIN_PRO_MCP_DISPATCH_TIMEOUT
is needed (and works even when the timeout is off).
Rollback: unset any of these (or set the timeout to off) to return to the
prior behavior — no code change or redeploy required.
4. Use It
Just ask Claude to work with Origin:
"Create a scatter plot from this data: x=[1,2,3,4,5], y=[2.1,4.0,5.9,8.1,10.0]"
"Apply publication styling to Fig1 with axis labels Temperature (K) and Absorbance (a.u.)"
"Fit a Gaussian to the data in Book1"
"Export all graphs to C:\Users\me\figures\"File paths can be Windows style (C:\Users\me\fig.png) or WSL style (/mnt/c/Users/me/fig.png) — the server converts WSL paths automatically, so agents running in WSL can pass their native paths.
Agent Location vs Server Runtime
The agent does not have to run on Windows. These setups are valid:
Windows agent -> Windows
origin-pro-mcpserver -> Origin ProWSL agent -> Windows
origin-pro-mcpserver -> Origin Pro
The unsupported setup is WSL/Linux origin-pro-mcp server -> Origin Pro, because COM is a Windows API.
Version Support
This project is currently verified only with Origin Pro 2020. The implementation uses Origin's COM Automation Server and LabTalk, which exist across multiple Origin releases, so other versions may work. Treat them as unverified until someone runs the test suite and a real graph/export smoke test on that version.
Direct LabTalk Safety
The run_labtalk tool is available by default for styling, analysis, graph tweaks, and other advanced Origin operations. It blocks common destructive or file-writing LabTalk commands such as project reset, delete, save/open, file dialogs, external script execution, and graph export. Use the typed tools for saving, loading, importing, and exporting.
This is an accident-prevention guard, not a security sandbox for untrusted code.
Architecture
Claude Code (WSL or Windows)
| stdio (MCP protocol)
v
MCP Server (Windows Python + win32com)
| COM automation
v
Origin Pro (GUI visible in real-time)Direct CLI (no MCP client)
Every MCP tool is also a plain command, so the repo alone can drive Origin — no MCP client, no per-task scripts. Same Windows-runtime rule applies (Windows Python + pywin32 + Origin).
# List all tools with their arguments
python -m origin_pro_mcp.cli list
# Call any tool: simple flags...
python -m origin_pro_mcp.cli list_worksheets
python -m origin_pro_mcp.cli apply_publication_style --graph_name Fig1
# ...or --json for values with spaces/paths (recommended for scripting)
python -m origin_pro_mcp.cli apply_publication_style --json '{"graph_name": "Fig1", "x_label": "Temperature (K)"}'
python -m origin_pro_mcp.cli export_graph --json '{"graph_name": "Fig1", "file_path": "/mnt/c/Users/me/fig1.png"}'After pip install (or via uvx) the same is available as the
origin-pro-cli command, e.g. origin-pro-cli list_worksheets.
Running a WSL agent? Invoke Windows Python with the package on the path,
for example from the repo's src/ directory:
cd src && /mnt/c/.../python.exe -m origin_pro_mcp.cli list_worksheetsThe CLI reflects over the same tool registry as the MCP server, so it always exposes exactly the tools listed below.
Available Tools (56 total)
Project Management
Tool | Description |
| Create new empty Origin project |
| Save a graph as a reusable .otpu/.otp template |
| Save project to .opju file |
| Open existing .opj/.opju file |
Worksheet Data
Tool | Description |
| Create new workbook |
| Write column data (JSON arrays) |
| Read worksheet data as JSON |
| Import CSV/text file |
| Import an .xls/.xlsx file |
| Export a worksheet to CSV/text |
| List open workbooks, graphs, and matrices |
| Fill a column from a formula of other columns |
| Set long name, units, comment, designation |
| Set a column's plot role (x/y/z/yerr/xerr/label) by name |
| Sort rows by a column (asc/desc) |
| Add or remove columns |
| Transpose rows and columns |
Matrix
Tool | Description |
| Create a matrix book |
| Write / read a 2D grid |
| Grid scattered XYZ into a matrix (xyz2mat) |
| Surface (3D), contour, heatmap, or image from a matrix (with a data-linked color scale) |
Graphing
Tool | Description |
| Create graph (scatter, line, line+symbol, column, bar, area, pie, histogram, box, contour, 3d_scatter) |
| Add another dataset to an existing graph |
| Delete a graph window |
| Remove one data plot from a graph (uses |
| Attach Y/X error bars to an existing plot from an error column (no duplicate) |
| Set a layer's panel position/size (left/top/width/height) |
| Add a right-Y layer and plot on it |
| Add a panel/axis layer (right-y, top-x, inset) |
| Set X/Y axis labels and title |
| Set axis min/max values |
| Linear / log10 / ln / log2 scale (auto-rescales range to data) |
| Horizontal/vertical line at a value |
| Straight line between two data points |
| Single/double-headed arrow between two points |
| Apply a colormap; bundles viridis/cividis/plasma/inferno/magma (colorblind-safe) plus Origin built-ins |
| Set the Z color-scale range |
| Place a text label at data coordinates |
| Export via clipboard (page size) |
| Export at a chosen pixel width/height |
| Export every graph in the project |
export_graphuses Origin's clipboard copy (size follows the page setup).export_graph_sizedusesexpGraphfor direct pixel control.
Styling
Tool | Description |
| One-call publication formatting (recommended) |
| Set color, line width, symbol shape/size, and open/solid marker |
| Set font family, size, and optional bold |
| Configure legend text and position |
| Set tick direction and length |
| Tick-label numeric format (decimal/scientific/engineering), bold, decimal places |
Analysis
Tool | Description |
| Curve fitting: parameters ± std errors, R², SSR, reduced χ²; optional |
| Show available fit functions |
| Area under the curve |
| Derivative dY/dX into a new column |
| Savitzky-Golay / adjacent / binomial smoothing |
| Resample onto evenly spaced X (linear/spline/bspline/akima) |
| Forward FFT + dominant frequency |
| Peak positions and heights |
Statistics
Tool | Description |
| mean, sd, se, variance, median, min, max, sum, n |
| Two-sample t-test (t, df, p, means) |
| Binned histogram counts |
Advanced
Tool | Description |
| Execute LabTalk with destructive/file-writing commands blocked; optional |
| Read a LabTalk variable value |
Example: Publication-Quality Figure
# 1. Start fresh
new_project()
# 2. Create data
create_worksheet(book_name="Data")
set_worksheet_data(
book_name="Data", sheet_name="Sheet1",
columns="[[300,350,400,450,500,550,600],[0.12,0.35,0.89,1.62,1.95,1.92,1.25],[0.08,0.22,0.62,1.35,1.88,1.90,1.12]]",
column_names="Temperature,Pristine,Annealed"
)
# 3. Create line+symbol graph
create_graph(graph_name="Fig1", data_book="Data", data_sheet="Sheet1",
x_col=1, y_col=2, plot_type="line+symbol")
add_plot_to_graph(graph_name="Fig1", data_book="Data", data_sheet="Sheet1",
x_col=1, y_col=3, plot_type="line+symbol")
# 4. One call does everything: colors, fonts, ticks, frame, legend
apply_publication_style(
graph_name="Fig1",
x_label="Temperature (K)",
y_label="Absorbance (a.u.)",
x_min=280, x_max=620, y_min=0, y_max=2.2,
legend_entries="Pristine,Annealed",
legend_position="top-right"
)
# 5. Export
export_graph(graph_name="Fig1", file_path="C:\\Users\\me\\fig1.png")Result: A publication-ready figure with bold Arial labels, colorblind-safe colors (blue circles + red triangles), filled symbols, solid lines, inward ticks, closed frame, and positioned legend.
Claude Code Skill: Publication Figure
This server ships a bundled skill (src/origin_pro_mcp/skills/publication-figure.md) that teaches Claude how to create journal-quality figures step by step. No manual copying is needed — the skill is packaged inside the wheel and exposed over MCP, so any connecting agent discovers it automatically:
Call the
list_skillstool — it returns each skill's name, title, and when to use it (e.g.publication-figure).Call
get_skill("publication-figure")to load the full markdown instructions.Each skill is also available as an MCP resource at
skill://<name>(e.g.skill://publication-figure) for clients that browse resources.
When you ask Claude to "make a publication figure", it can autonomously pull this skill and follow its workflow:
Ask about data source, figure type, target journal
Use colorblind-safe color palette (blue → red → green → orange → purple → cyan)
Apply proper typography (Arial, bold, correct sizes)
Follow a pre-export checklist
The skill also documents COM quirks observed while testing on Origin Pro 2020 — what works, what doesn't, and tested workarounds. This is invaluable if you need to customize beyond apply_publication_style.
Customizing the Skill for Your Style
The included skill is a generic starting template for paper-grade Origin figures. You should copy and customize it to match your lab's habits, target journals, and visual taste:
Font: Change from Arial to your journal's preferred font (e.g., Helvetica, Times New Roman)
Font sizes: Adjust axis title/tick label/legend sizes to match your journal's figure guidelines
Color palette: Replace the default colorblind-safe palette with your group's standard colors
Default export path: Set to your working directory
Figure recipes: Add templates for your common figure types (XRD patterns, IV curves, etc.)
Journal presets: Add specific formatting rules for your target journals (Nature, ACS, RSC, etc.)
Pull the skill with get_skill("publication-figure") (or copy src/origin_pro_mcp/skills/publication-figure.md) into your project and edit freely — it's meant to be a starting point, not a rigid template.
Key Origin Pro 2020 COM Quirks (documented in skill)
Issue | Workaround |
Bold axis titles ( | Use |
| Set column Long Names, then |
| Calculate from |
| Use actual plot names from |
| Use |
| Read statistics BEFORE |
Plot styling commands can conflict | Add 0.2s delay between |
| Activate the sheet, then use |
| Run |
Typed LabTalk locals ( | Use untyped assignment to read values back via COM |
Supported Plot Types
Type | Description | Data |
| Scatter plot (symbols only) | X, Y |
| Line plot (no symbols) | X, Y |
| Line with symbols (recommended for publications) | X, Y |
| Vertical bar chart | X, Y |
| Horizontal bar chart | X, Y |
| Area plot | X, Y |
| Pie chart | X, Y |
| Histogram | single Y column |
| Box chart | single Y column |
| Filled contour map | X, Y, Z (pass |
| 3D scatter (OpenGL) | X, Y, Z (pass |
Matrix plots (surface, contour, heatmap, image) come from a matrix via
create_matrix_plot.
Supported Fitting Functions
Category | Functions |
Linear |
|
Polynomial |
|
Exponential |
|
Peak |
|
Growth/Sigmoidal |
|
Other |
|
curve_fit returns the fitted parameter values with standard errors plus
R², SSR, reduced χ², and DoF. Exception: power fits and draws the curve,
but Origin 2020 does not expose its parameter values over COM, so only the
statistics are returned. Use list_fitting_functions to see the parameter
names for each function.
Color Palette
apply_publication_style uses a muted pastel palette (no pure primaries —
easier on the eyes, survives grayscale printing, colorblind-distinguishable):
Order | Color | RGB |
1st | Soft steel blue | (93, 143, 179) |
2nd | Muted rose | (204, 102, 119) |
3rd | Muted teal | (68, 170, 153) |
4th | Soft amber | (221, 170, 102) |
5th | Soft purple | (153, 136, 187) |
6th | Gray cyan | (119, 170, 187) |
Error bars automatically match their data series color. The fit curve drawn
by curve_fit(plot_on_graph=...) uses a muted brick red (170, 68, 80).
Tip: Never use red + green as the only two colors — colorblind users cannot distinguish them.
Troubleshooting
Problem | Solution |
"Could not connect to Origin via COM" | Check that Origin/OriginPro is installed and licensed; if it is, run Origin once as administrator to re-register the Automation Server |
Tools timeout | Origin may be showing a dialog — check the Origin window |
Export fails with a clipboard error | The server already polls the clipboard for up to 5 s; check that the Origin window is not minimized and no other app holds the clipboard |
"Window 'X' not found" errors | The error lists every open workbook/graph — use one of those names (Origin may have renamed the window if the name was taken) |
Legend missing after styling | Legend uses data coordinates — verify axis range is set before positioning |
Symbols appear hollow | Do NOT use |
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/youngminsw/Origin-Pro-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server