Sandbox
@leima-max/origin-pro-mcp-skill

MCP server and skill package for Origin Pro

This package connects an agent to OriginLab Origin Pro on Windows through COM automation. It exposes tools for project, worksheet, graph, styling, fitting, export, and LabTalk workflows, plus a publication-figure skill for repeatable figure cleanup.

224 stars3 forksPythonUpdated 3mo ago
Who it's for

Builders who want Origin Pro controlled from Claude Code, Codex, or another MCP-capable agent.

What it delivers

You can turn worksheet data into publication-style Origin Pro figures without hand-driving the app.

What it does

Origin Pro COM automation

Uses `Origin.ApplicationSI` to control Origin Pro from Python on Windows.

Worksheet and project tools

Creates, saves, loads, imports, and reads worksheet data across Origin projects.

Graph and export workflows

Builds graphs, adds plots, sets axes, and exports images with file verification.

Publication figure skill

Includes `skills/publication-figure.md` for a repeatable figure-formatting workflow.

Curve fitting and LabTalk

Provides curve fitting tools and commands for running LabTalk scripts and reading variables.

Sanitized examples and tests

Ships with `examples/mcporter.example.json` and Origin-aware pytest coverage in `tests/`.

How to get it

  1. 1Run
    git clone https://github.com/leima-max/origin-pro-mcp-skill.git
    cd origin-pro-mcp-skill
    python -m pip install -e .

README

Origin Pro MCP Skill Package

English | 中文说明

Origin Pro MCP Skill Package is a Windows-first MCP server and Codex/Claude-style skill package for controlling OriginLab Origin Pro through COM automation. It lets an AI assistant create workbooks, write and read worksheet data, import CSV files, build graphs, apply publication-style formatting, run curve fitting, execute LabTalk, export figures, and save/load Origin projects.

This repository is a sanitized, reusable package. It does not contain personal API keys, Zotero configuration, local workspace state, generated experiment outputs, or machine-specific MCP configuration.

Features

  • Origin Pro COM automation through Origin.ApplicationSI
  • 23 MCP tools for project, worksheet, graph, style, fitting, export, and LabTalk workflows
  • File-verified graph export using Origin expGraph
  • CSV import that respects the requested Origin workbook name and avoids Origin impasc side effects
  • Publication figure workflow in skills/publication-figure.md
  • Pytest coverage with Origin-aware skip behavior for machines without Origin installed

Requirements

  • Windows
  • Origin Pro 2020 or newer, installed and able to start
  • Python 3.10 or newer, using Windows Python rather than WSL Python
  • Python packages: mcp, pywin32, Pillow

Install

git clone https://github.com/leima-max/origin-pro-mcp-skill.git
cd origin-pro-mcp-skill
python -m pip install -e .

Start Origin Pro before calling tools that need COM automation.

MCP Configuration

Use either the installed console command:

{
  "mcpServers": {
    "origin-pro": {
      "command": "origin-pro-mcp"
    }
  }
}

Or run the local server file directly:

{
  "mcpServers": {
    "origin-pro": {
      "command": "python",
      "args": ["-u", "PATH_TO_REPO/server.py"]
    }
  }
}

A sanitized example is available at examples/mcporter.example.json.

Quick Smoke Test

python -m pytest -q

On machines without Origin Pro, Origin-dependent tests are skipped. On a Windows machine with Origin Pro available, the integration tests exercise the real COM workflow.

You can also verify tool registration without starting Origin:

python -c "import origin_pro_mcp.server; from origin_pro_mcp.app import mcp; print(len(mcp._tool_manager._tools))"

Expected output: 23.

Typical AI Workflow

  1. Start Origin Pro.
  2. Ask the assistant to create or import worksheet data.
  3. Create a graph from worksheet columns.
  4. Apply publication style in one call.
  5. Fit a curve if needed.
  6. Export figures and verify that files were created.

Example tool flow:

new_project()
create_worksheet(book_name="Data", sheet_name="Sheet1")
set_worksheet_data(
    book_name="Data",
    sheet_name="Sheet1",
    columns="[[0,1,2,3],[0.02,0.08,0.18,0.36],[0.11,0.42,0.90,1.62]]",
    column_names="Bias,Dark,Light"
)
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")
apply_publication_style(
    graph_name="Fig1",
    x_label="Voltage (V)",
    y_label="Current density (mA cm^-2)",
    x_min=0,
    x_max=3,
    y_min=0,
    y_max=2,
    legend_entries="Dark,Light",
    legend_position="top-left"
)
export_graph(graph_name="Fig1", file_path="OUTPUT_DIR/Fig1.png")

MCP Tools

Project:

  • new_project
  • save_project
  • load_project

Worksheet and data:

  • create_worksheet
  • set_worksheet_data
  • get_worksheet_data
  • import_csv_to_worksheet
  • list_worksheets

Graphing:

  • create_graph
  • add_plot_to_graph
  • set_axis_labels
  • set_axis_range
  • export_graph
  • export_all_graphs

Styling:

  • apply_publication_style
  • set_plot_style
  • set_graph_font
  • set_legend
  • set_tick_style

Analysis:

  • curve_fit
  • list_fitting_functions

Advanced:

  • run_labtalk
  • get_labtalk_variable

Notes and Known Constraints

  • Origin COM only works from Windows Python.
  • The first COM connection can take several seconds if Origin is cold-starting.
  • If Origin shows a blocking dialog, MCP calls may wait or time out.
  • export_graph uses expGraph with a directory path and a separate filename; the tool verifies output file existence and size.
  • import_csv_to_worksheet parses CSV in Python and writes columns through COM to avoid impasc auto-generated sparkline graph pages.

Security and Sanitization

This package intentionally excludes:

  • local config/mcporter.json
  • API keys and token files
  • Zotero or other third-party connector settings
  • local workspace memory, logs, and generated experiment output
  • user-specific absolute paths

Before publishing derived versions, run a secret scan for keys, tokens, passwords, local connector names, and machine-specific paths. For example:

rg -n "key|token|secret|credential|password|local_user_path|connector_specific_env"

License

MIT. The original upstream package is credited in pyproject.toml project metadata and source history notes.

Files in the repo

Repository payload14 top-level entries
  • .github
  • docs
  • examples
  • skills
  • src
  • tests
  • .gitignore
  • LICENSE
  • pyproject.toml
  • README.md
  • README.zh-CN.md
  • requirements.txt
  • server.py
  • SKILL.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k