# Origin Pro MCP Skill Package English | [中文说明](README.zh-CN.md) 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 ```powershell 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: ```json { "mcpServers": { "origin-pro": { "command": "origin-pro-mcp" } } } ``` Or run the local server file directly: ```json { "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 ```powershell 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: ```powershell 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: ```python 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: ```powershell 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.