OriginLab-MCP
OriginLab-MCP
OriginLab Origin用のMCPサーバーです。ワークシートの読み書き、マルチパネルグラフの作成とスタイル設定、図のエクスポートを行います。また、Originが受け入れたこととOriginが実行したことの違いに注意を払っています。
1.0.0. ここにあるすべてのツールは実際のOrigin 2024に対してテスト済みで、Origin Appがブリッジをインストールして起動し、
examples/five_panel_figure.pyが5パネル図をエンドツーエンドで作成します。既知のギャップ(驚かないように): コーナーに配置された凡例は、データの上に重なっているかどうかではなく、パネル内にあるかどうかがチェックされます。対数軸は、指定しない限り補助目盛りが付きません。また、213項目のオプションテーブルは、各オプションが何をするように測定されたかではなく、Originが文書化していることを記録しています。そのうちの16項目は、画像が変化するのを確認したものです。
要件
OriginまたはOriginPro 2021b以降(組み込みPython 3.9+)
サーバー用のPython 3.10+
Windows(ネイティブまたはVM内)
Related MCP server: Aspose.Cells Cloud MCP Server
インストール
pip install originlab-mcp
originlab-mcp --build-app .これにより、Originが必要とする3つの手順が表示されます。ここで述べる価値があるのは、明白な方法が何も実行しないためです。フォルダをAppsギャラリーにドラッグしても、何も表示されず、ボタンも追加されません。生成されたOriginLab MCP Bridgeフォルダを%LOCALAPPDATA%\OriginLab\Appsにコピーし、Originのコマンドウィンドウからパックします。
mkOPX app:="OriginLab MCP Bridge" opx:="C:\path\to\OriginLab MCP Bridge.opx";— バックスラッシュを使用します。フォワードスラッシュはmkOPXをハングさせるためです — そして、結果の.opxをOriginにドラッグします。ボタンが表示され、クリックするとスクリプトウィンドウが前面に表示され、ブリッジがstarting、loaded、servingを報告します。
MCPクライアントをoriginlab-mcpに向けます。
originlab-mcp --statusは、ブリッジがリッスンしているかどうかを示し、リッスンしていない場合はゼロ以外の終了コードを返します。originlab-mcp --stopで終了します。
停止はコマンドであり、2番目のボタンではありません。ボタン自体が処理を行ってはならないためです。ブリッジがサービスを提供している間、OriginのUIスレッドを保持するため、ボタンが実行するものはすべてメッセージポンプ内から実行されます。外部プロセスを起動するだけのボタンも可能です(これが上流プロジェクトのやり方です)が、それでも命令はソケットを介してブリッジに到達する必要があり、--stopはその間接参照なしの命令です。
何が違うのか
Originは、多くのことを受け入れますが、その後それを無視します。しかも、そのことを一切明かしません。
set <plot> -zzzz 9— Originが聞いたこともないオプション — はtrueを返し、9.0として読み戻され、グラフはピクセル単位で同一のままです。plot:=2003はプロットタイプではありません。Originはウィンドウを作成し、軸を描画し、凡例を書き込み、何もプロットしません。グループ内のプロットに書き込まれたスタイルは、要求されたとおりに読み戻されますが、Originはグループのスタイルを描画し続けます。
これらはいずれも応答からはキャッチできないため、チェックは書き込みの前と図の後で行われます。
前。 オプションはOrigin自身の文書化されたリストと照合され、でっち上げられたオプションは、おそらく意図されたであろうオプションとともに拒否されます。実際の名前は推測できないため、これは重要です(線幅は-w、バーの塗りつぶしパターンは-pfp)。そのため、もっともらしい推測はタイプミスではなく、失敗の可能性が高いのです。グループ化されたプロットメンバーへの書き込みは完全に拒否されます。プロットタイプは、ドキュメントではなくOriginインストールのoPlotIDs.hから取得され、テーブル内のすべての名前が描画されて確認されました。
後。 呼び出しごとのチェックでは、図が正しいかどうかという重要な問題に到達できません。そのため、図を作成する操作は、それに矛盾する可能性のあるものを報告します。
操作 | 報告される内容 |
| 使用されたレイヤーと、Originがその中にあると報告するプロットの数 |
| すべてのレイヤーの実際のジオメトリと、それらがすべて占めるボックス |
| 凡例の場所と、それがレイヤー内にあるかどうか |
| タイトルがフレームのどの辺に配置されたか |
このリストが存在するのは、測定された失敗があるためです。23のステップすべてがOKを返したのに、結果が使用不能だった5パネル図です。1つの凡例が、幅6432のページのleft = 24953に配置されていました(legend.xはデータ座標であり、指定されていたパーセンテージではありません)。Originのエクスポートはそれを含むようにキャンバスを拡大し、図を隅に押し込んでしまいました。応答に何かが間違っていることを示すものは何もありませんでした。
読み戻しは、証明としてではなく、読み戻しとして報告されます。
{
"requested": 60,
"readback": {"readable": true, "value": 60.0, "matches_request": true},
"readback_means": "Origin stored this value where 'get' can find it. It is not
proof that the graph changed: Origin also stores options it
does not recognise."
}グラフのエクスポートだけがそれを確定させる唯一の方法であり、そのためorigin_graph_exportは画像を保存する方法ではなく、第一級のツールです。
このサーバーが読み取らない引数は拒否され、最も近い名前が提案されます。Originで防いでいるのと同じ失敗が、ここで最初に発生しました。worksheet_readはmax_rowsを受け取り、rows=3を渡すと呼び出しはシート内のすべての行を取得し、引数がドロップされたことを示すものはありませんでした。
ツールの表面は意図的に小さくなっています。チャートタイプごとに1つではなくplot_typeパラメータを持つ1つのplotツール、プロパティごとのラッパーではなく1つのplot_option_get/setペアです。
ツール
| ブリッジは生きているか — originproが壊れていても応答します |
| ブリッジがどこにあるか、応答しているかどうか |
| サイズ、列名、形式 |
| 列をリストとして返し、切り詰めずに拒否します |
| 列を入力し、形式を推測せずに指定します |
| 列を新しいページまたは既存のページの新しいレイヤーにプロットします |
| レイヤー、プロット、アドレス、グループメンバーシップ |
| PNG出力 — スタイルが適用されたことを示す唯一の証拠 |
| パネルを追加し、そのインデックスを報告します |
| パネルをグリッド状に並べ、実際に配置された場所を報告します |
| 凡例を再構築し、配置し、パネル内にあるかどうかを確認します |
| スケール、範囲、タイトルを設定し、タイトルの側面を報告します |
| 軸を読み戻します |
| LabTalkの |
| 1つ書き込み、確立されたものを報告します |
| Originの213の文書化された |
| 逃げ道。Originの出力をキャプチャします |
examples/five_panel_figure.pyは、5パネル図をエンドツーエンドで作成し、各ステップで、それに矛盾する可能性のある数値を出力します。
セットアップ
Windows、すべてローカル — 通常のケースです。サーバーとOriginが同じマシン上にあり、ループバックTCPで通信します。
macOSまたはLinuxから作業するWindows VM内のOrigin — これもサポートされています。サーバーはsshを介してVM内で実行されます。MCPクライアントのみがホスト上にあります。これは、サーバーがCOMではなくループバックソケットを介してOriginに到達するためです。COMはWindowsセッションの境界を越えることができません。
MCP client ──ssh──▶ server (Windows) ──TCP 127.0.0.1──▶ Origindocs/remote-origin.mdでは、sshサーバー、キー(Windowsは管理者のキーを別のファイルに配置し、通常のキーを黙って無視します)、およびMCPクライアントをそのキーに向ける方法について説明しています。
Originの動作に関する注意点
ここで測定されたもので、ドキュメントに記載されていないもの:
originproは完全にシングルスレッドです。 OriginのUIスレッド以外のスレッドから呼び出されると、GILを保持したままブロックし、埋め込みインタプリタ全体をデッドロックさせます。Originのウィンドウは応答を続けますが、Pythonは応答しません。したがって、ブリッジはそのスレッドでサービスを提供し、要求の合間にOriginのメッセージキューをポンプします。
モーダルダイアログはブリッジを停止します。 ダイアログがブリッジがサービスを提供するスレッドを保持するためです。一方、ハンドシェイクファイルは起動していると表示されたままです。存在しないディレクトリにエクスポートするとダイアログが開くため、エクスポートが送信される前にチェックされます。
凡例には、異なる空間に2組の座標があります。
legend.x/legend.yはレイヤーのデータ座標です。legend.left/.topはページ単位で、page.widthが報告するものと同じです。plotxy ogl:=<new>は新しいページではなく、新しいレイヤーを作成します、そしてそれをアクティブにしません。[<new>]が新しいページです。Originは棒グラフの軸を交換し、それをレイヤープロパティでは報告しません。タイトルオブジェクトもそれに合わせて移動し、回転を維持するため、値軸のタイトルはフレームの下に下から上に読むように配置されます。
-wはポイント×500です。-wpはポイントを受け取ります。-wにポイント値を渡すと、エラーではなくヘアラインになります。-pfpだけで設定された塗りつぶしパターンは表示されません。 Originは塗りつぶし色で描画するため、-pfcも必要です。どちらも単独では何も変更しません。LabTalkは拒否した最初のステートメントで停止します。 そのため、失敗を報告するスクリプトは、不明なプレフィックスを実行したことになります。
Originは、コマンドの実行中にPythonを起動することを拒否します。すべてのブリッジ要求はコマンドです。
run -pyfまたはpy.execを含むスクリプトは、説明なしに失敗するのではなく、事前に拒否されます。
参照
Ge-Shun/origin-mcp — このプロジェクトのアーキテクチャが従う埋め込みブリッジ転送アプローチ。
garethbeaumo/originlab-mcp — COM接続サーバー。Originが同じデスクトップセッションにある場合は、実行が簡単です。
OriginおよびOriginProは、OriginLab Corporationの製品です。このプロジェクトはOriginLabとは提携していません。
ライセンス
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityCmaintenanceMCP server for Microsoft Office file operations. Read, write, and create Excel, Word, and PowerPoint files directly from your local filesystem.12
- AlicenseCqualityCmaintenanceAutomates Microsoft Excel spreadsheet creation and editing via MCP tools for any MCP-compatible client.37MIT
- AlicenseNot gradedqualityDmaintenanceEnables remote control of Adobe Photoshop on macOS and Windows via MCP, supporting multiple backends including AppleScript, PowerShell, and UXP plugin.12MIT
- AlicenseBqualityBmaintenanceA local MCP server that enables AI assistants to control Origin/OriginPro on Windows via Python automation, with adaptive path detection to resolve import errors.631MIT
Related MCP Connectors
ClinicalTrials MCP — wraps ClinicalTrials.gov API v2 (free, no auth)
PyPI MCP — wraps the Python Package Index (PyPI) JSON API (free, no auth).
Monday.com MCP — wraps the Monday.com GraphQL API (BYO API key)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/Yike-Ye/OriginLab-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server