Skip to main content
Glama

origin-mcp

origin-mcp cover

PyPI version Downloads Python 3.10+ origin-mcp MCP server License: MIT

简体中文

origin-mcp is a local Model Context Protocol (MCP) server that lets AI assistants control Origin/OriginPro on Windows. An authenticated local bridge runs inside Origin so automation stays on its UI thread. The project is still in testing; real-workflow feedback and contributions are welcome.

Highlights

  • Import, edit, transform, and export worksheet, matrix, image, and connector data.

  • Create and refine 2D, 3D, contour, statistical, and specialized plots.

  • Run fitting, signal processing, statistics, Peak Analyzer, and batch workflows.

  • Manage projects, folders, Notes, templates, analysis operations, and graph layouts.

  • Build publication figures with reusable templates, palettes, and an optional Nature-style preset.

Related MCP server: origin-MCP

Quick Start

You need Windows, a licensed Origin/OriginPro installation, and Python 3.10+ for the MCP server. Origin 2026/2026b is the current target family; the bridge uses the Python bundled with Origin.

  1. Install the MCP server:

pip install origin-mcp
  1. Add the MCP server to your client (use the absolute python.exe path if python points to another environment):

{
  "mcpServers": {
    "origin": {
      "command": "python",
      "args": ["-m", "origin_mcp"]
    }
  }
}
  1. Install the Origin Start/Stop Apps, follow the short registration guide, then click Origin MCP Bridge Start once per Origin session:

origin-mcp install-origin-app --force
  1. Verify the bridge and live Origin connection:

origin-mcp status
origin-mcp doctor --ping-origin

Both diagnostic commands support --json. For manual bridge startup or troubleshooting, see the bridge guide.

To let an AI agent install and configure origin-mcp, send it this instruction: Fetch and follow https://raw.githubusercontent.com/Ge-Shun/origin-mcp/main/docs/agentic/origin-mcp-bootstrap.md end to end.

Documentation

Development

From a checkout, install with pip install -e . and run the full local gate:

python scripts/dev_check.py --tests

Security

The bridge listens only on 127.0.0.1 and authenticates local requests by default with a per-session token. Treat the token as a credential, keep its handshake file in a user-private directory, and avoid ORIGIN_MCP_BRIDGE_NO_AUTH unless every local process is trusted. Set ORIGIN_MCP_ALLOWED_ROOTS to restrict which files tools may access.

License

MIT. See LICENSE.

Available Tools

25 tools
origin_bridge_cancel_taskA

Cancel a queued Origin bridge task or mark a running task for cancellation.

Inputs: task_id (required), host, port, token, +1 more. Returns: object

origin_bridge_list_tasksA

List recent Origin bridge background tasks.

Inputs: host, port, limit, token, +1 more. Returns: object

origin_bridge_shutdownA

Ask the Origin GUI bridge to stop serving requests.

By default this releases the Origin automation connection without closing Origin itself. Set close_origin=True to force-close Origin as part of shutdown.

Inputs: host, port, token, timeout, +2 more. Returns: object

origin_bridge_submit_taskC

Submit a supported Origin bridge method as a queued background task.

Inputs: method (required), host, port, token, +2 more. Returns: object

origin_bridge_task_statusB

Read status, result, or optional recent logs for an Origin bridge background task.

Inputs: task_id (required), host, port, token, +4 more. Returns: object

origin_browse_knowledgeA

List knowledge collections or browse one collection by slash-delimited path.

Inputs: topic, version, collection. Returns: object

origin_capabilitiesB

Report runtime capabilities; set show only to change Origin visibility.

Inputs: show, refresh. Returns: object

origin_diagnose_worksheetA

Check worksheet data quality before plotting or analysis.

Reports per-column dtype, missing count/fraction, and unique count, plus structured issues: empty_worksheet and all_null_column (error), high_missing and duplicate_columns (warning), non_numeric_column and constant_column (info). high_missing_threshold is the missing fraction (0-1) that triggers a high_missing warning. "passed" is false when any error-severity issue is found.

Inputs: columns, book_name, sheet_name, high_missing_threshold. Returns: object

origin_doctorA

Diagnose Origin bridge configuration, status file, and connectivity.

Inputs: host, port, token, timeout, +2 more. Returns: object

origin_execute_figure_specB

Execute a declarative FigureSpec.

The current executor supports worksheet-backed single-panel and grid multi-panel figures with common plot types. Unsupported features are reported in the plan instead of being guessed.

Inputs: spec (required), dry_run. Returns: object

origin_export_graphB

Export the active or named Origin graph to an image/PDF file.

Inputs: path (required), width, overwrite, graph_name. Returns: object

origin_format_graphB

Set graph long name, axis labels, legend visibility, and optional rescale.

Inputs: title, rescale, x_label, y_label, +2 more. Returns: object

origin_get_graph_infoB

Inspect a graph page, its layers, axes, and plots.

Inputs: graph_name. Returns: object

origin_import_tableB

Import a CSV, TSV, TXT, DAT, XLS, or XLSX file into a new Origin worksheet.

Inputs: path (required), nrows, header, encoding, +6 more. Returns: object

origin_pingA

Connect to Origin/OriginPro and report basic status.

Inputs: show. Returns: object

origin_plan_figure_specC

Validate a declarative FigureSpec and return the planned Origin operations.

Inputs: spec (required). Returns: object

origin_plotA

Create a table-based plot selected by kind.

A single parameterized entry point for common table plots and the Plot Type ID routes that each also have a dedicated origin_plot_* tool. For the common line/scatter/line_symbol/column routes, selected_cols uses the first column as X and the remaining columns as Y. A one-column selection is treated as Y-only. Matrix-range plots still use origin_plot_matrix_id.

Inputs: kind (required), path (required), title, graph_name, +3 more. Returns: object

origin_plot_autoA

Inspect table columns, select a suitable chart route, and create the plot.

Provide intent when the desired comparison or relationship is known. Otherwise the router uses column types, cardinality, and selected X/Y/Z or error columns. Use origin_recommend_chart first when no graph should be created yet.

Inputs: path (required), nrows, title, x_col, +19 more. Returns: object

origin_query_knowledgeC

Search the local Origin knowledge base by keyword.

Inputs: query (required), limit, version, collection. Returns: object

origin_read_worksheetB

Read a window of Origin worksheet data as structured rows.

Inputs: columns, max_rows, book_name, start_row, +1 more. Returns: object

origin_recommend_chartB

Recommend chart types from table shape, column semantics, and optional intent.

Inputs: path (required), nrows, x_col, z_col, +11 more. Returns: object

origin_run_analysisA

Run a supported Origin analysis and return structured metrics or output rows.

Use include_output=True with output_sheet for analyses that create a worksheet. The analysis schema lists canonical names; aliases remain accepted for backward compatibility.

Inputs: analysis (required), x_col, y_col, options, +4 more. Returns: object

origin_run_labtalkB

Execute LabTalk script text inside Origin and optionally return captured output.

Inputs: script (required), capture_log. Returns: object

origin_view_graphA

Render an Origin graph and return it as an image the model can see.

Unlike origin_export_graph this leaves no file behind: the graph is rendered to a temporary PNG, returned as an image content block alongside a small text summary, and the temp file is deleted. Use it to visually verify a plot and iterate on it. max_width bounds the rendered pixel width to keep the returned image (and its token cost) small. Requires a vision-capable client to be useful.

Inputs: max_width, graph_name.

origin_write_worksheetB

Write structured rows into a new or existing Origin worksheet.

Inputs: rows (required), create, columns, book_name, +2 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 25 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose, with names and descriptions that prevent ambiguity. Even closely related tools like origin_plot and origin_plot_auto have well-delineated roles.

    Naming Consistency5/5

    All tools follow the consistent pattern 'origin_verb_noun' in snake_case, making the naming predictable and easy to understand.

    Tool Count4/5

    25 tools is on the higher side, but the scope of the Origin server (graphing, analysis, bridge tasks, knowledge) justifies the count. Some consolidation of plotting tools could be considered, but each serves a distinct function.

    Completeness4/5

    The tool surface covers major domains (import, worksheet read/write, plotting, analysis, knowledge, bridge tasks) but lacks some lifecycle operations (e.g., update/delete for worksheets) and analysis is only via a single generic tool.

    Maintenance

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to control Origin 2025b for scientific plotting via natural language, with support for data import, 52+ chart types, curve fitting, statistics, and export.
      9
      MIT