Skip to main content

Local MCP server that lets AI assistants automate Origin/OriginPro for data import, worksheet editing, plotting, analysis, and export on Windows.

Project description

origin-mcp

origin-mcp cover

PyPI version Downloads Python versions License: MIT

简体中文

origin-mcp is a local Model Context Protocol (MCP) server that lets AI assistants control Origin/OriginPro on Windows. It connects through OriginLab's Python automation interface and exposes tools for importing data, editing worksheets, creating and refining graphs, running Origin analyses, exporting figures, and managing the Origin application lifecycle.

This project is still in a testing stage. Trying it on real Origin workflows, reporting issues, suggesting improvements, and opening pull requests are all welcome.

Highlights

  • Import CSV, TSV, TXT, DAT, XLS, and Excel data into Origin worksheets.
  • Read, write, sort, clear, and export worksheet data.
  • Create and refine common 2D, 3D, contour, statistical, and specialized plots.
  • Run Origin analyses such as fitting, smoothing, integration, peak finding, descriptive statistics, interpolation, normalization, t-tests, FFT/IFFT, and correlation.
  • Export figures and projects through a local Origin GUI bridge.
  • Save a finished graph as a reusable user template, then search/match and reapply it to same-type figures (see docs/tools.md).

Nature-Style Figures

By default, origin-mcp keeps the styling defined by the Origin graph template you are using. If you want a cleaner publication-style scientific figure, ask your AI assistant to use the Nature-style format when creating or refining the graph. The preset applies colorblind-aware palettes, stronger scientific plot strokes, Arial typography, and simpler legends.

For more control, you can ask the assistant to list available palettes. See docs/tools.md for the detailed palette and style controls.

Requirements

  • Windows
  • Origin or OriginPro installed and licensed
  • Origin/OriginPro 2026 is the primary tested target; other Origin versions are not currently guaranteed
  • Origin's embedded Python with the preinstalled originpro package

Python version support

origin-mcp runs as two cooperating processes, and the supported Python versions differ by role:

  • MCP server core (the python -m origin_mcp process, which only talks to the bridge over localhost): Python 3.10+. CI tests this core on Windows with Python 3.10, 3.11, 3.12, 3.13, and 3.14.
  • Origin bridge (addon.py): runs inside Origin's own embedded Python, so its version is whatever your Origin install ships — there is nothing to pick.

Direct external originpro automation is not a supported MCP backend for this project. Start the bridge inside Origin's embedded Python and let the MCP server connect to it over localhost.

Installation

Install the MCP server core from PyPI:

pip install origin-mcp

That is all the MCP server needs: it runs as python -m origin_mcp and reaches Origin only through the bridge over localhost. The bridge runs inside Origin's own embedded Python and installs its own dependencies (see Start the Origin Bridge).

An optional origin-mcp[origin] extra pulls originpro and pywin32 into the same environment; the standard bridge setup does not require it. To work from a checkout instead, run pip install -e . in the repository root.

Development Checks

For a fast local check that avoids stale or locked .ruff_cache / .mypy_cache directories, run:

python scripts/dev_check.py

Add tests when you want the fuller local gate:

python scripts/dev_check.py --tests

Agentic Setup

Copy this to your AI agent and let it self-configure:

Fetch and follow this bootstrap guide end to end:
https://raw.githubusercontent.com/Ge-Shun/origin-mcp/main/docs/agentic/origin-mcp-bootstrap.md

MCP Configuration

Example MCP client configuration:

{
  "mcpServers": {
    "origin": {
      "command": "python",
      "args": ["-m", "origin_mcp"]
    }
  }
}

If python is not the Python 3.10+ interpreter you installed origin-mcp into, use that interpreter's absolute python.exe path instead. More examples are in docs/mcp-config.md.

Start the Origin Bridge

The bridge runs inside Origin's own Python so originpro stays on Origin's UI thread. There is nothing to configure — start it once per Origin session:

Origin Apps (recommended for daily use). After installing the Python package, stage the two self-contained App sources with origin-mcp install-origin-app --force, then complete the short Origin registration steps in docs/origin-ui-buttons.md. After that, click Origin MCP Bridge Start in the Apps gallery to start the bridge and Origin MCP Bridge Stop to stop it.

Python Console (one-off or troubleshooting). Open Origin's Python Console and paste this line (replace the path with your checkout):

import runpy; runpy.run_path(r"C:\path\to\origin-mcp\addon.py", run_name="__main__")

A Bridge is running inside Origin. box confirms startup; keep that console running while you use the tools. To stop, ask your MCP assistant to shut the bridge down (it calls origin_bridge_shutdown), or double-click scripts\stop-bridge.cmd (or run python scripts\stop_bridge.py). Origin stays open either way.

If a package is missing or the bridge will not start, see docs/origin-bridge.md. That guide also covers common Windows path and LabTalk launch pitfalls when starting addon.py manually.

Security

The bridge listens only on 127.0.0.1 and authenticates local requests by default with a per-session token, so normal use needs no security setup.

Treat that token as a credential. Any local process that presents it can drive Origin with the full tool surface, including arbitrary LabTalk execution through origin_run_labtalk. The token is generated per session and written to an owner-scoped file in your per-user temporary directory (%TEMP%/origin-mcp/bridge.json on Windows), which a standard single-user machine already protects through the directory's OS permissions. If you redirect TEMP or ORIGIN_MCP_BRIDGE_HANDSHAKE to a directory other local users can read, the token — and therefore control of Origin — is exposed to them. Setting ORIGIN_MCP_BRIDGE_NO_AUTH removes the token boundary entirely and should be used only when you fully trust every local process.

If you need to restrict which files tools may read or write, set ORIGIN_MCP_ALLOWED_ROOTS to the allowed directories. Avoid disabling bridge authentication unless you fully trust every local process on the machine.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

origin_mcp-0.1.2.tar.gz (651.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

origin_mcp-0.1.2-py3-none-any.whl (268.5 kB view details)

Uploaded Python 3

File details

Details for the file origin_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: origin_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 651.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for origin_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c3b6cebc9256d00312a32964c4f59c92da9aa7800fc882bf999b19fe29a677d9
MD5 af1a53fb487ed9fa51c947be019640b9
BLAKE2b-256 f7469bd6f231358bf85b9896a217623a1de26f04bb9d082f7edbded1da0cc181

See more details on using hashes here.

File details

Details for the file origin_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: origin_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 268.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for origin_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 40cf925903ea32cd4301387cdd8f7051657ae411d971ad64a076efca18d8700b
MD5 b1e1fd758d8db1e4164e27fe6e28e7e1
BLAKE2b-256 3ef45b221e55088a8242734420430cbeea7733162477c7307527074f4807ccdf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page