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: origin-mcp-kimi
설치
pip install originlab-mcp
originlab-mcp --build-app .이 명령은 Origin이 필요한 세 단계를 출력하는데, 여기서 명시할 가치가 있습니다. 왜냐하면 가장 쉽게 보이는 방법은 아무 효과도 없기 때문입니다: 폴더를 Apps 갤러리에 끌어다 놓으면 조용히 수락될 뿐 버튼이 추가되지 않습니다. 생성된 OriginLab MCP Bridge 폴더를 %LOCALAPPDATA%\OriginLab\Apps에 복사하고, Origin의 Command Window에서 다음 명령으로 패키징합니다.
mkOPX app:="OriginLab MCP Bridge" opx:="C:\path\to\OriginLab MCP Bridge.opx";— 백슬래시를 사용해야 합니다. 왜냐하면 슬래시는 mkOPX를 멈추게 하기 때문입니다. — 그리고 결과 .opx 파일을 Origin으로 끌어다 놓습니다. 버튼이 나타납니다. 버튼을 클릭하면 Script Window가 앞으로 나오며, 브리지가 starting, loaded, serving을 보고합니다.
MCP 클라이언트를 originlab-mcp에 연결합니다.
originlab-mcp --status는 브리지가 듣고 있는지 알려주고, 대기가 없으면 0이 아닌 상태로 종료합니다. originlab-mcp --stop은 종료합니다.
중지는 두 번째 버튼이 아니라 명령으로 하는 이유는 버튼이 스스로 작업을 수행해서는 안 되기 때문입니다: 브리지가 서비스하는 동안 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패널 그림이었습니다. 하나의 범례가 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을 전달하는 호출은 시트의 모든 행을 가져왔고 인자가 무시되었는지 알지 못했습니다.
도구 표면은 의도적으로 작습니다. 차트 유형별 하나가 아닌 plot_type 매개변수가 있는 하나의 plot 도구, 속성별 래퍼가 아닌 하나의 plot_option_get/set 쌍이 있습니다.
도구
| 브리지가 살아 있는가 — originpro가 고장나도 답변 | |||
| 브리지가 어디 있고 답변하는지 여부 | |||
| 크기, 열 이름, 형식 | |||
| 잘라내지 않고 거부하는 목록 | |||
| 열을 목록으로 입력, 형식을 추측 없이 명시 | |||
| 새 페이지 또는 기존 페이지의 새 레이어에 열 플로팅 | |||
| 레이어, 플롯, 주소, 그룹 구성원 | |||
| PNG 출력 — 스타일이 적용된 유일한 증거 | |||
| 패널 추가, 해당 인덱스 보고 | |||
| 패널 정렬 및 실제 위치 보고 | |||
| 범례 재구성, 배치, 패널 내부 확인 | |||
| 스케일, 범위, 제목 및 제목의 위치 보고 | |||
| 축 다시 읽기 | |||
| LabTalk | |||
| 하나를 쓰고 무엇을 설정했는지 보고 | |||
| Origin의 213개 문서화된 | |||
| Origin 출력을 캡처하는 탈출구 |
examples/five_panel_figure.py는 5 패널 그림을 처음부터 끝까지 만들고 모든 단계에서 그 숫자를 인쇄합니다.
설정
Windows, 모두 로컬 — 일반적인 경우입니다. 서버와 Origin은 같은 컴퓨터에 있으며 TCP에서 통신합니다.
Windows VM에서 Origin, macOS 또는 Linux에서 작업 — 지원합니다. 서버는 VM 내부에서 SSH로 실행되고, 호스트에는 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의 메시지 큐를 펌패습니다.
모달 대화상자는 브리지를 중지합니다. 대화상자가 브리지가 서비스하는 스레드를 보유하기 때문입니다 — 핸드셰이크 파일은 계속 유지되는 것처럼 보여줍니다. 존재하지 않는 디렉터리로 내보내면 대화상자가 열리므로, 내보내기를 보내기 전에 확인합니다.
범례는 다른 공간에서 두 쌍좌표를 가집니다.
legend.x/legend.y는 레이어의 데이터 좌표입니다 —legend.left/.top은 페이지 좌표이며page.width와 같은 단위입이다.plotxy ogl:=<new>는 새 페이지가 아니라 새로운 레이어를 만듭니다. 활성화되지 않습니다.[<new>]가 새 페이지입니다.Origin은 막대 그래프에 대해 축을 교환합니다. 그럼에도 레이어 속성을 통해 보고하지 않습니다. 제목 객체를 일치시켜 회전을 유지하므로 값 축 제목이 프레임 아래에 bottomtotop으로 나타납니다.
-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의 프로젝트가 아닙니다.
라이선스
MIT.# 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)
설치
pip install originlab-mcp
originlab-mcp --build-app .위 명령은 Origin에 필요한 세 단계를 출력하는데, 여기서 명시해서 언급할 가치가 있습니다. 가장 분명한 방법이 아무 효과가 없기 때문입니다: 폴더를 Apps 갤러리에 끌어다 놓으면 조용히 수락될 뿐 버튼이 추가되지 않습니다. 생성된 OriginLab MCP Bridge 폴더를 %LOCALAPPDATA%\OriginLab\Apps에 복사하고, Origin의 Command Window에서 다음 명령으로 패키징합니다.
mkOPX app:="OriginLab MCP Bridge" opx:="C:\path\to\OriginLab MCP Bridge.opx";— 백슬래시를 사용해야 합니다. 정슬래시는 mkOPX를 중단시키기 때문입니다. — 생성된 .opx 파일을 Origin으로 끌어다 놓습니다. 버튼이 나타납니다. 클릭하면 Script Window가 앞으로 나오며, 브리지가 starting, loaded, serving을 보고합니다.
MCP 클라이언트를 originlab-mcp에 연결하십시오.
originlab-mcp --status는 브리지가 수신 대기 중인지 알려주며, 수신 대기 중이 아닐 때 0이 아닌 상태로 종료합니다. originlab-mcp --stop은 종료합니다.
중지는 두 번째 버튼이 아니라 명령으로 하는 이유는, 버튼이 작업 자체를 수행하면 안 되기 때문입니다. 브리지가 서비스하는 동안 Origin의 UI 스레드를 잡고 있으므로, 버튼이 실행하는 것은 모두 메시지 펌프 내부에서 실행됩니다. 외부 프로세스만 실행하는 버튼도 만들 수 있습니다 — 업스트림 프로젝트가 그렇게 합니다 — 그러나 명령은 여전히 소켓을 통해 브리지에 전달되어야 하며, --stop은 그 간접 없이 전달하는 명령입니다.
무엇이 다른가
Origin은 말없이 무시하는 많은 것을 수락합니다.
set <plot> -zzzz 9— Origin이 들어본 적 없는 옵션 — true를 반환하고 9.0으로 다시 읽히며 그래프를 픽셀 단위로 동일하게 유지합니다.plot:=2003은 플롯 유형이 아닙니다. Origin은 플롯 없이 창을 만들고, 축을 그리며, 범례를 작성합니다.그룹 내 플롯에 작성한 스타일은 요청한 대로 정확히 다시 읽히지만, Origin은 그룹의 스타일을 계속 그려나갑니다.
이 중 어느 것도 응답에서 잡을 수 없으므로, 확인은 쓰기 전과 그림 후에 수행됩니다.
쓰기 전. 옵션은 Origin 자체의 문서화된 목록과 확인되며, 지어낸 옵션은 거부되고 실제로 원래 유용했던 옵션을 제안합니다. 이것이 중요한 이유는 실제 이름을 추측할 수 없기 때문입니다 — 선 굵기는 -w, 막대 채우기 패턴은 -pfp — 그렇기 때문에 그럴듯한 추측은 오타가 아니라 유능한 실패입니다. 그룹화된 플롯 멤버에 쓰기는 바로 거부됩니다. 플롯 유형은 설명서가 아니라 Origin 설치의 oPlotIDs.h에서 가져오며 표의 모든 이름은 그리고 관찰되었습니다.
쓴 후. 호출 단위 확인은 중요한 질문, 즉 그림이 올바른지 맞는지는 닿을 수 없습니다. 그래서 그림을 만드는 작업은 그 자신에 모순될 수 있는 것을 보고합니다:
작업 | 보고 내용 |
| 사용한 레이어와 Origin이 그 안에 몇 개의 플롯이 있는지 말한 수 |
| 각 레이어의 실제 기하 구조와 그 모두가 차지하는 상자 |
| 범례가 있는 위치와 그 범례가 해당 레이어 내부에 있는지 |
| 제목이 프레임의 어느 측면에 떨어졌는지 |
이 목록은 측정된 실패 때문에 존재합니다. 23단계 모두 성공을 반환했는데 결과를 전혀 쓸 수 없었던 5패널 그림 말입니다. 한 범례가 폭 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을 전달한 호출은 시트의 모든 행을 반환했으며 인자가 무시된 것에 대한 아무런 표시도 없었습니다.
도구의 표면은 의도적으로 작게 유지합니다. 차트 유형별로 하나가 아닌 plot_type 파라미터를 가진 하나의 plot 도구; 속성별 래퍼가 아닌 하나의 plot_option_get/set 쌍.
Tools
| 브리지가 살아 있는지 — originpro가 고장인 상태에서도 응답 |
| 브리지가 어디 있는지, 응답할 수 있는지 |
| 크기, 열 이름, 형식 정보 |
| 잘라내지 않고 거부하는 방식으로 열을 목록으로 읽음 |
| 열을 기록하며 형식을 추측이 아닌 명시로 처리 |
| 열을 새 페이지 또는 기존 페이지의 새 레이어에 플로팅 |
| 레이어, 플롯, 주소, 그룹 멤버십을 전달 |
| PNG 출력 — 스타일이 적용되었는지를 보여주는 유일한 증거 |
| 패널을 추가하고 인덱스 값을 보고 |
| 패널을 모눈으로 정렬하고 실제 배치된 위치를 보고 |
| 범례 재구성, 배치, 패널 내부에 있는지 확인 |
| 스케일, 범위, 제목과 제목의 측면을 보고 |
| 축을 다시 읽기 |
| LabTalk |
| 옵션 하나를 쓰기, 설정된 것을 보고 |
| Origin의 문서화된 213개 |
| 탈출구이며, Origin의 출력을 보존됩니다 |
examples/five_panel_figure.py는 5패널 그림을 처음부터 끝까지 만들고 모든 단계에서 그 그림과 모순될 수 있는 값을 출력합니다.
설정
Windows에서 모든 것이 로컬 — 일반적인 경우입니다. 서버와 Origin이 동일한 머신에 있고, 루프백 TCP로 통신합니다.
Windows VM에서 Origin 실행, macOS 또는 Linux에서 작업 — 지원됩니다. 서버는 ssh를 통해 VM 내부에서 실행되고, MCP 클라이언트만 호스트에 있습니다. 서버가 COM이 아닌 루프백 소켓을 통해 Origin에 접근하기 때문에 동작합니다.
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의 메시지 큐를 펌핑합니다.
모달 대화 상자는 브리지를 중지합니다. 대화 상자가 브리지가 서비스하는 스레드를 잡고 있기 때문입니다. 핸드셰이크 파일은 계속 켜져 있다고 말하지만. 존재하지 않는 디렉터리에 내보내면 대화 상자가 열리므로, 내보내기를 보내기 전에 확인합니다.
범례에는 다른 공간에 있는 두 쌍의 좌표가 있습니다.
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과 관련이 없습니다.
라이선스
MIT.
Available Tools
17 toolsorigin_axis_getA
Read an axis's scale and range as Origin currently holds them.
Worth doing before setting a range: Origin's own rescaling may already have moved it, and the number a caller remembers setting is not necessarily the one in the graph.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | x | |
| graph | Yes | ||
| layer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It communicates that the tool is a read operation and discloses the important nuance that returned values reflect Origin's current state, not whatever the caller previously set. This is genuinely useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the first sentence states the action and object, and the second provides a concrete motivating use case. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and when to use it, and an output schema exists to document return values. However, with three parameters and zero schema-level parameter descriptions, the missing guidance on axis and layer semantics leaves the definition incomplete for an agent that needs to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only vaguely references 'an axis' without explaining the axis, graph, or layer parameters. It does not clarify valid axis values, what layer means in Origin, or how to identify the target graph. The description fails to compensate for the schema's complete lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read an axis's scale and range as Origin currently holds them.' This clearly identifies it as a getter and distinguishes it from sibling tools like origin_axis_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool before setting a range, noting that Origin's rescaling may have changed the actual value. This gives clear contextual guidance, though it does not explicitly name the alternative tool or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_axis_setA
Set an axis's scale, range or title, and read back what Origin holds.
scale is a name (linear, log10, ln, log2, probability,
reciprocal) or an Origin scale number. Omitted arguments are left alone.
Unlike plot styles, these read back from the same properties Origin draws
from, so matches_request is a real check. Origin clamps and rounds axis
ranges for its own reasons, and a mismatch usually means it did.
Origin swaps the axes of bar charts internally: the value axis of a
horizontal bar chart is the one LabTalk calls y. Setting what looks like
the value axis on one will retitle the categories instead.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| axis | No | x | |
| graph | Yes | ||
| layer | No | ||
| scale | No | ||
| start | No | ||
| title | No | ||
| increment | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility and excels: it discloses clamping/rounding of axis ranges, the internal axis swap for horizontal bar charts, and the fact that `matches_request` is a genuine verification. These are non-obvious and valuable behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized: purpose first, then parameter behavior, then important caveats. Every sentence contributes useful information without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 8 parameters and no annotations, this description covers the essential guide: scope, real validation behavior, saturation effects, and a subtle internal axis-swapping hazard. It is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds concrete meaning for `scale` by listing valid names, explains that omitted arguments are untouched, and warns about axis semantics in bar charts. It could go further on `graph`, `layer`, `start`, `end`, and `increment`, but the core parameters are well clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Set an axis's scale, range or title, and read back what Origin holds.' This clearly distinguishes it from read-only siblings like origin_axis_get and from plot-style setters like origin_plot_option_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context, such as 'Omitted arguments are left alone' and 'Unlike plot styles, these read back from the same properties Origin draws from.' It does not explicitly list alternative tools or when to prefer them, but the usage context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_bridge_statusA
Report where the bridge is, and whether it is actually answering.
These are different questions, and the difference is not academic. The
bridge publishes a handshake file when it starts and withdraws it when it
stops -- but a modal dialog inside Origin takes over the UI thread the
bridge serves on, so it can stop answering for hours while the handshake
goes on saying it is up. Measured: set <dataset> -dc opens such a dialog,
and nothing was served until someone clicked it.
So announced is what the file says and answering is what a request
found. Only the second means the bridge can do anything. Pass
check_liveness=False to skip the request when the answer does not matter.
| Name | Required | Description | Default |
|---|---|---|---|
| check_liveness | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It discloses the handshake-file mechanism, the modal-dialog UI-thread stall, the measured consequence, and the semantic difference between announced and answering. This is far beyond what the schema alone could convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than minimal but front-loads the core purpose and every sentence earns its place. The measured example is arguably extra, but it reinforces why the announced/answering distinction matters for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple status check with one optional parameter, and the description covers its key behavioral nuance and parameter semantics. An output schema exists, so the description need not explain the return structure. Nothing critical is missing for an agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema gives no description for check_liveness (0% coverage), but the description fully explains it: 'Pass check_liveness=False to skip the request when the answer does not matter.' This adds real meaning beyond the bare boolean type and default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Report where the bridge is, and whether it is actually answering.' The description immediately distinguishes two separate questions ('announced' vs 'answering'), which also helps separate this tool from sibling tools like origin_ping. The core purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context about when the status matters and explicitly instructs when to skip the liveness check: 'Pass check_liveness=False to skip the request when the answer does not matter.' It does not name an alternative tool directly, but the announced-vs-answering distinction gives the agent enough context to select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_graph_exportA
Export a graph to a PNG.
Also the only way to find out whether a style change did anything: Origin
stores values it never acts on, so the picture is the only witness. The
result reports where Origin was told to write, not that it succeeded --
expGraph says almost nothing about failure.
| Name | Required | Description | Default |
|---|---|---|---|
| graph | Yes | ||
| width | No | ||
| filename | Yes | ||
| directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It reveals that Origin may store values without acting on them, that the result only reports the intended write location rather than success, and that expGraph says almost nothing about failure. This is substantial, honest behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The second paragraph adds valuable caveats without unnecessary padding; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and failure behavior well, and an output schema exists to explain return values. However, with no annotations and zero parameter descriptions, the agent still lacks enough detail about how to correctly specify graph, filename, directory, and width.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain the parameters, but it does not clarify graph, width, filename, or directory semantics. It only hints that filename/directory are the write destination, leaving the agent to infer how to populate the required fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence, 'Export a graph to a PNG,' states a specific verb and resource and clearly distinguishes this tool from siblings like origin_plot or origin_graph_info. The added context about verifying style changes reinforces its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly identifies when to use this tool: it is 'the only way to find out whether a style change did anything.' It does not explicitly list when-not-to-use scenarios or alternative tools, but the 'only way' framing provides strong usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_graph_infoA
List a graph's layers and plots, with the addresses styling needs.
Also reports each plot's group_mode. A plot in a group is drawn with the
group's style, so writing to a member is refused -- check here before
trying to style one.
| Name | Required | Description | Default |
|---|---|---|---|
| graph | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden, and it discloses a key behavioral trait: writes to group-member plots are refusedassed. It adds meaningful context beyond the schema by explaining the group_mode consequence. It falls short of a 5 because it doesn't mention return shape or explicit side-effect/purity, though the output schema partially covers return expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded. The second sentence adds a genuinely useful behavioral detail, but the phrase 'with the addresses styling needs' is slightly awkward and could be clearer. Still, no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and only one parameter, the description covers the why-to-use and key behavioral consequence. It is reasonably complete, though the styling-refusal behavior could be elaborated slightly. The primary gap is the undocumented 'graph' parameter format, which affects completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not clarify what the 'graph' parameter should be — name, ID, path, or handle. The tool name implies a graph identifier, but the description adds no format or resolution details beyond the schema, leaving the field ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (list) and resource (a graph's layers and plots), and notes it also carries styling addresses. This distinguishes it from sibling tools like origin_plot_option_get (targeted option retrieval) and origin_axis_get (axis outcomes), so an agent can clearly differentiate it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to 'check here before trying to style one', providing a concrete when-to-use directive tied to the refusal behavior. This is actionable guidance that tells the agent to call this tool before attempting write operations, clearly distinguishing it from write-oriented siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_labtalkA
Run a LabTalk script inside Origin and return what it printed.
The escape hatch: anything Origin can do from its command window. Prefer a dedicated tool where one exists, because this one cannot check its own work.
returned says the script parsed and dispatched, not that it did anything.
A LabTalk script stops at its first bad expression, so when returned is
false the last captured line is the last line that ran. Origin's own error
text goes to its console and cannot be captured from here.
Scripts that start Python (run -pyf, py.exec) are refused: Origin will
not run Python while a command is in flight, and every request here is one.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | ||
| capture_output | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers: it explains that `returned` only means parsed/dispatched, not that anything happened; it discloses that scripts stop at the first bad expression and the last captured line indicates progress; and it warns that Origin's own error text cannot be captured. It also explains the Python refusal with the in-flight-command reason.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact relative to the complexity of an escape-hatch tool, and every sentence contributes: purpose, use preference, return-value meaning, failure behavior, and a critical limitation. The first line is a clear summary, and the details are front-loaded in order of importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers use guidance, result interpretation, error behavior, and refused script types, which is strong for a general-purpose tool. The one notable gap is explicit handling of the `capture_output` parameter, especially since the schema provides no explanation for it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It adds meaningful semantics for `script` by explaining execution behavior, failure mode, and Python restriction. However, it never explicitly describes `capture_output` or how it affects the returned result, so the compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Run a LabTalk script inside Origin and return what it printed.' It also positions itself as 'the escape hatch' and tells the agent to prefer dedicated tools, which distinguishes it from the many sibling tools without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to 'prefer a dedicated tool where one exists' because this tool 'cannot check its own work,' giving clear when-to-use versus when-not-to-use guidance. It also states that Python-starting scripts are refused and why, which further constrains appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_layer_addC
Add a layer (a panel) to a graph, and report which index it got.
Returns the new layer's index because every other operation takes one, and assuming the new layer is 1 is wrong the moment the graph already had two.
| Name | Required | Description | Default |
|---|---|---|---|
| graph | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It clearly indicates the operation is a mutation (adds a layer) and explains the return index's importance due to the graph possibly already having layers. However, it does not mention potential failure modes, permissions, or side effects beyond the addition. The key behavioral insight about the index is valuable, but the description could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the action and return value; the second provides rationale and context. It is well-structured and front-loads the essential information, though it could be slightly improved by adding parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description omits critical context such as what the 'graph' parameter represents, any preconditions (e.g., graph must exist), and error behavior. While the return-index explanation is useful, the description lacks sufficient guidance for an agent to use the tool correctly without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the 'graph' parameter. It only says 'to a graph,' which is vague and doesn't explain what format or identifier the string should take. Given the single parameter, the description should clarify how to specify the graph, but it fails to do so, leaving the agent to infer from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a layer (a panel) to a graph' and explicitly mentions the return value 'report which index it got.' The verb and resource are specific, and the description differentiates from siblings by focusing on layer addition, even if not naming alternatives. It is slightly less explicit than a 5 because it doesn't explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description explains why the index return matters but does not mention any conditions, preconditions, or alternative tools. An agent receives no context about when to invoke this tool over other layer-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_layers_arrangeC
Lay a graph's layers out as a grid of panels.
A grid too small for the layers is refused: Origin would leave one off the page, and nothing about the result would say so.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| graph | Yes | ||
| columns | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It does disclose an important behavior: a grid too small is refused because it would omit a layer. However, it does not state whether the operation is destructive, whether it returns a success/error object, or what the resulting grid layout implies for existing layers. Partial but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, with the primary action front-loaded and a relevant constraint in the second sentence. Every sentence contributes; there is no fluff. Slightly reduces score because it does not hint at parameter meaning, but the structure itself is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters with zero schema documentation, and no output schema details provided to the agent, the description is insufficient. It does not explain how rows/columns map to the grid, what the 'graph' identifier refers to, or the tool's effect on existing layers. The single constraint is helpful but overall the agent lacks enough context to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions are absent (0% coverage), and the tool description provides no meaning for 'rows', 'columns', or 'graph'. An agent cannot infer likely data types (graph is presumably a reference, rows/columns positive integers), units, or acceptable ranges. This is a significant gap that prevents correct invocation without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (lay out) and the resource (a graph's layers) as a grid of panels. It distinguishes the tool from siblings that export, create, or set graph properties, though it does not explicitly name alternatives. The exclusion of the 'too small' case adds specificity, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus other graph manipulation tools like origin_plot, origin_layer_add, or origin_axis_set. The description does not mention common scenarios, prerequisites (e.g., graph exists), or exclusions. A single sentence about the refusal condition hints at a constraint but does not help an agent choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_legend_setA
Rebuild a layer's legend, and optionally place or hide it.
Origin generates its legend from the plots present at the moment it is refreshed rather than storing it, so a legend showing the wrong series is almost always one that has not been refreshed since the plots changed. Call this after adding plots.
position is one of top_left, top_right, bottom_left, bottom_right.
| Name | Required | Description | Default |
|---|---|---|---|
| show | No | ||
| graph | Yes | ||
| layer | No | ||
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains that the legend is generated from plots and that calling after plot changes refreshes it, which is useful behavioral context. However, it does not explicitly state that the rebuilt legend overwrites any existing legend, though this is implied by 'rebuild'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, comprising two sentences with no unnecessary fluff. It efficiently conveys the core action, the rationale, and the key parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the absence of an output schema, the description adequately covers what an agent needs to know: what it does, when to call it, and the meaning of the main parameter. There are no related legend tools among siblings, so no confusion arises.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for parameters, and the description only explains the 'position' parameter's allowed values. The meanings of 'graph', 'layer', and 'show' are not explicitly described, though they may be inferred from typical Origin usage. This leaves some ambiguity for an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool's purpose: to rebuild a layer's legend, with optional placement or hiding. The description distinguishes it from siblings by focusing on legend management, which no other tool handles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises calling this after adding plots, which is the primary use case. It also implies the legend is derived from current plots, giving a clear when-to-use signal, even though there is no alternative legend tool to contrast with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_pingA
Check the bridge is reachable and report what is on the far end.
Answers even when originpro is broken, which is when it matters most.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. Where the description explains that the tool 'answers even when originpro is broken', a behavioral trait that is non-obvious from the name and critical for failure-recovery reasoning. The ping semantics also imply a non-destructive read, though the description does not state explicitly that it has a side effects (minor for a 0-param heartbeat tool).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core operation is front-loaded in the first sentence, and the second sentence adds a high-value behavioral criterion (works when originpro is broken) that justifies the entire purpose. Nothing earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter tool with an output schema, the description is largely sufficient: it says what the tool does, what it reports, and when it works. The remaining gap is selection clarity — an agent could hesitate between origin_ping and origin_bridge_status because the description never distinguishes them or routes to one over the other.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description needs no parameter-level detail; the far-end report is the only input/output relevant information, and the tool is invocable with no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Check the bridge is reachable') and states what the tool reports ('report what is on the far end'), making the plumbing immediate. It does not explicitly distinguish itself from the origin_bridge_status sibling, though 'Answers even when originpro is broken' hints at the differentiation without naming it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied: the line 'which is when it matters most' signals that this tool is valuable during failure scenarios, so an agent can infer it is the right choice when Origin is broken. There is no explicit when-to-use or when-not-to-use guidance relative to origin_bridge_status or the other origin_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_plotA
Plot worksheet columns into a graph layer, and return the graph and layer.
Without graph this makes a new graph page. Give graph to add another
panel to one that already exists -- that is how a multi-panel figure is
built, one call per panel, then origin_layers_arrange.
plot_type is a name (line, scatter, column, bar, area, box,
histogram, stack_column, ...) or any Origin plot-type id as a number,
so an unusual chart is never blocked by the name list.
Columns are given as zero-based indexes or Origin short names. Several y
columns go into the same layer, grouped unless group is false.
Use the returned graph and layer for everything afterwards. Origin
chooses the name, and the new layer is not the active one, so neither can
be assumed. plots_in_layer is read back from Origin rather than counted
from the request.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| book | Yes | ||
| graph | No | ||
| group | No | ||
| sheet | No | Sheet1 | |
| plot_type | No | line |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations exist, the description must carry full weight. It discloses important behavioral details: the new layer is not the active one (so graph and layer must be used), plots_in_layer is read back from Origin, plot_type accepts names or numeric IDs, and columns can be indexes or short names. This is thorough, though error conditions and side effects are not addressed, which is acceptable for a plotting tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into clear paragraphs, each addressing a distinct aspect: core purpose, the graph parameter workflow, plot_type flexibility, column input format, and return-value usage. It is efficient for the amount of information conveyed, neither overly verbose nor cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, 0% schema coverage), the description is quite complete. It explains the return values (graph and layer), when to use them, multi-panel construction, and parameter nuances. The only omissions are explicit details on 'book' and 'sheet' semantics, but these are inferable and the output schema likely covers return fields. Overall, the description equips an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It covers x, y, graph, group, and plot_type in detail (e.g., columns as indexes or short names, grouping behavior, plot_type flexibility). However, 'book' and 'sheet' are not explicitly described; their meaning is only implied by context. This is a minor gap but overall the description adds significant semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the core operation clearly: 'Plot worksheet columns into a graph layer, and return the graph and layer.' It uses a specific verb ('plot'), a resource ('worksheet columns'), and a target ('graph layer'). This is easily distinguished from siblings like origin_plot_option_set or origin_layer_add, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool for both new graphs and adding panels to existing ones, mentioning the multi-panel workflow with origin_layers_arrange. It clarifies the graph parameter behavior but does not explicitly contrast this tool with alternatives (e.g., when to use origin_plot vs. origin_layer_add). The usage context is strong, though explicit exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_plot_option_getA
Read one LabTalk set option off a data plot.
option is a LabTalk option token such as -w (line width, in points x
500) or -pfp (bar fill pattern). Use origin_set_options to find one --
the names are not guessable, and an invented one would be accepted by
Origin and do nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| plot | No | ||
| graph | Yes | ||
| layer | No | ||
| option | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It clearly states the operation is a read ('Read') and gives concrete examples of options and their semantics. It also warns about the risk of using invalid options. However, it doesn't describe potential side effects (none expected), error cases, or return format, but the output schema covers the return. Overall adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, then a crucial usage hint about option names and the companion tool. No fluff, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, the description carries the full behavioral burden. It discloses that 'option' is a LabTalk token, gives examples, warns about invalid names, and directs to origin_set_options. It doesn't explain return format, but an output schema exists. The parameter semantics for graph/plot/layer are left implicit, though likely inferable from the context of Origin data plots. Overall quite complete but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions (coverage 0%), so the description must compensate. It explains the 'option' parameter well, giving examples and warning about guessabilityemanding reference to origin_set_options. However, it does not explain the semantics of 'graph', 'plot', and 'layer' parameters, leaving the agent to infer they refer to plot identification. Some compensation, but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a LabTalk set option from a data plot, with a specific verb ('Read') and resource ('data plot'). It differentiates from sibling origin_plot_option_set by focusing on read versus set, and names the companion tool origin_set_options for discovering valid options. This makes the purpose unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use origin_set_options to find option namesaine a non-obvious set, and warns that invented options are accepted but ineffective. This provides clear when-to-use and when-not-to-use guidance, effectively distinguishing this read tool from its set counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_plot_option_setA
Set one LabTalk set option on a data plot, and read it back.
The result's readback says whether Origin stored the value. Read
readback_means before treating that as success: Origin stores options it
does not recognise, so a matching read-back is necessary evidence, not
sufficient. Render the graph if you need to know it changed.
Writing to a plot inside a group is refused, because Origin would draw the group's style regardless while the write read back as if it had worked.
| Name | Required | Description | Default |
|---|---|---|---|
| plot | No | ||
| graph | Yes | ||
| layer | No | ||
| value | Yes | ||
| option | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does this exceptionally well: it explains that readback reports whether Origin stored the value, warns that Origin stores unrecognized options so a matching readback is necessary but not sufficient evidence, tells the caller to render the graph to confirm visible changes, and discloses that group writes are refused because of misleading readbacks. This is far beyond generic 'sets a value' language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then adds three dense, high-value caveats: readback semantics, readback_means caution, and group refusal. Every sentence earns its place; no filler or repetition. Despite three paragraphs, the total length is appropriate for the behavioral nuance it needs to convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists and rich behavioral caveats are provided, the input side remains under-specified. With no parameter descriptions, no enums, and no examples, the description does not give an agent enough grounding to confidently construct valid calls. The behavioral warnings are excellent, but they do not compensate for the missing parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain the meaning or accepted formats of graph, layer, plot, option, or value. It references a 'LabTalk set option' and a 'plot inside a group,' but gives no examples or enumeration of valid option names, value ranges, or how to address plots in groups. The agent is left to guess the exact parameter values it should supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Set one LabTalk `set` option on a data plot, and read it back.' This clearly identifies the tool as a setter for plot options and distinguishes it from the sibling getter origin_plot_option_get. It also communicates the unusual read-back behavior, so there is no confusion about what the tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear raison d'être: set one plot option and read back the result. It also gives an explicit when-not condition: writing to a plot inside a group is refused. It does not name sibling alternatives directly, but the setter/getter pairing with origin_plot_option_get is strongly implied by the tool names and the action described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_set_optionsA
Look up LabTalk set options by what they control.
Origin's option names are short and unguessable -- line width is -w, bar
fill pattern is -pfp -- so guessing produces plausible names that Origin
accepts and ignores. Search here instead.
Each entry's verified says whether this option has been exercised against
a real Origin: null means documented but untested, which is most of them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that this is a lookup operation (not a mutation), warns about the risk of guessing, and explains the `verified` field as indicating whether an option has been tested against a real Origin. This goes beyond a simple 'searches options' statement and sets accurate expectations about reliability. It doesn't contradict any annotations (since none exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with the purpose stated first, followed by contextual warnings and a useful note about the `verified` field. Every sentence contributes value; there is no filler. It could potentially add a line about parameter usage, but the current length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are presumably documented there. With only two optional parameters and no required ones, the missing parameter semantics are the main gap. The description covers purpose, usage context, and reliability, but leaves parameter details unexplained. For a lookup tool with this complexity, the description is moderately complete but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, so the description must compensate for the parameters. It does not explain `limit` or `search` at all. While the names are somewhat self-explanatory, the description doesn't specify how `search` matches (e.g., by control name, option value, or what the option controls). The description says 'look up ... by what they control,' implying search matches by the thing it controls, but this is not explicit. This is a significant gap given 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Look up LabTalk `set` options by what they control.' It names the resource (LabTalk set options) and the action (look up), and the added context about unguessable names clearly distinguishes this from sibling tools like origin_plot_option_get/set, which deal with plot options rather than general set options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool instead of guessing option names, which is practical usage guidance. It also explains the consequence of guessing (Origin accepts and ignores plausible names). It doesn't explicitly name alternative tools, but the sibling set includes plot option tools which are clearly different in scope. The guidance is clear and context-rich, though it could have been more explicit about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_worksheet_infoA
Describe a worksheet -- size, column names, formats -- without reading it.
Omit both arguments for the active worksheet.
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | ||
| sheet | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It usefully discloses that the tool does not read worksheet contents and returns descriptive metadata only. It stops short of stating behavior on missing worksheets or confirming the absence of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core purpose is front-loaded and the active-worksheet note is placed second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return structure, so the description need not explain it. With only two optional parameters, the active-worksheet behavior is stated, and the metadata scope is explicit, making the definition complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no parameter descriptions, but the description adds key semantics: omitting both arguments targets the active worksheet. The titles 'Book' and 'Sheet' plus the tool's context make the remaining mapping reasonably clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Describe a worksheet' with concrete metadata delivered (size, column names, formats). The qualifier 'without reading it' distinguishes it from the sibling origin_worksheet_read, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a practical invocation rule: omit both arguments to target the active worksheet. It doesn't explicitly name alternatives or when-not-to-use conditions, but the 'without reading it' contrast implies the read sibling would be used when cell data is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_worksheet_readA
Read worksheet columns as lists, with the format Origin holds them in.
A read that could not fit is refused rather than shortened, because a
silently truncated answer looks exactly like a short worksheet. Use
start_row and max_rows to take a window deliberately, and read
rows_in_sheet and rows_after_window -- named separately because a
single "rows available" count reads exactly like a short worksheet.
Date and time columns come back as Julian day numbers, not text. Converting them involves choices -- timezone, calendar, precision -- that belong to whoever knows what the data means.
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | ||
| sheet | No | ||
| columns | No | ||
| max_rows | No | ||
| start_row | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so exceptionally. It discloses that an unreadable portion causes refusal rather than silent truncation (because a truncated answer looks like a short worksheet), that row counts are returned separately to avoid ambiguity, and that dates come back as Julian day numbers. These are subtle, high-risk behaviors an agent must know to use the tool safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then layers behavioral caveats in order of importance. Every sentence earns its place—the refusal rule, the window guidance, the row-count separation, and the Julian-date warning are all substantive. It is slightly longer than strictly necessary but has no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and 0% schema description coverage, the description covers the non-obvious semantics thoroughly. An output schema exists, so return values do not need explanation. The only minor gap is explicit guidance on what 'book' and 'sheet' refer to, but those are reasonably inferable from the tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds real meaning for start_row and max_rows by explaining the windowing idiom and the semantic consequences of the no-truncation rule. book, sheet, and columns are left to the schema, but they are self-explanatory enough that the marginal value of explaining them is low. Coverage of the riskiest parameters is good.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Read worksheet columns as lists') and the native format Origin holds them in. This clearly distinguishes it from siblings like origin_worksheet_info (metadata) and origin_worksheet_write, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use start_row/max_rows to take a deliberate window, and advises reading rows_in_sheet and rows_after_window. It also warns about date/time columns coming back as Julian numbers and defers conversion choices. What it lacks is explicit exclusion of alternatives among siblings, but the usage direction is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
origin_worksheet_writeA
Write columns into a worksheet.
Each column is {"name": ..., "format": ..., "values": [...]}. The format
is stated rather than inferred: double, int, text, mixed, date,
time, complex. Guessing from the values is how columns get quietly
corrupted -- whole numbers are not necessarily an integer column, and one
empty cell can turn a numeric column into text.
Dates go in as Julian day numbers with format: "date".
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | ||
| sheet | No | ||
| columns | Yes | ||
| start_col | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and adds meaningful behavioral context: format is deliberately not inferred, guessing can quietly corrupt columns, and dates must be Julian day numbers. It does not state overwrite/append behavior, but the key data-integrity warning is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with every sentence earning its place: the core write action, the column schema, the rationale for explicit formats, and the date encoding requirement. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the complex column format semantics and date behavior sufficiently, but it omits target-worksheet semantics (book/sheet) and start_col placement, and does not clarify whether writing replaces or appends columns. For a 4-parameter tool with no annotations, this is a minimum-viable description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It thoroughly explains the 'columns' element shape and valid format values, but says nothing about 'book', 'sheet', or 'start_col', leaving those parameters reliant on their names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Write columns into a worksheet.' It also provides concrete column structure and format strings, making the tool's role unmistakable and clearly distinct from worksheet read/info siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, and no sibling alternatives are named. The description implies writing use but does not distinguish it from origin_set_options or origin_worksheet_read for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v0.1.0- First observed
origin_axis_get - First observed
origin_axis_set - First observed
origin_bridge_status - First observed
origin_graph_export - First observed
origin_graph_info - First observed
origin_labtalk - First observed
origin_layer_add - First observed
origin_layers_arrange - First observed
origin_legend_set - First observed
origin_ping - First observed
origin_plot - First observed
origin_plot_option_get - First observed
origin_plot_option_set - First observed
origin_set_options - First observed
origin_worksheet_info - First observed
origin_worksheet_read - First observed
origin_worksheet_write
TDQS
Scored across 17 tools
Most tools target a distinct resource (worksheet, axis, plot option, layer, legend) with clear boundaries, and the descriptions actively warn where confusion could arise (e.g., plot_option vs axis vs set_options). The only mild overlap is origin_ping vs origin_bridge_status, and origin_worksheet_info vs origin_worksheet_read, both of which are carefully delineated but require reading the details.
The dominant pattern is origin_<noun>_<verb> (axis_get, layer_add, worksheet_read), but there are deviations: origin_set_options puts the verb first, origin_graph_info and origin_worksheet_info use 'info' where 'get' would match axis_get, and several tools (ping, labtalk, plot, bridge_status) are bare nouns. The get/set pairs are consistent where they exist, but the mixed conventions prevent a higher score.
Seventeen tools is at the boundary where the set starts to feel heavy, but for a bridge to a full desktop application with worksheet, plotting, and styling concerns, each tool has a discernible role and the count is justified. The escape-hatch design (origin_labtalk) keeps the surface from being even larger.
The surface covers the full lifecycle from data reading/writing to plotting, styling, arranging, and exporting, with a clear read/modify/verify pattern throughout. The only notable gap is the lack of any delete/clear operation (no way to remove a plot, layer, or worksheet), though origin_labtalk serves as a viable fallback for these rarer operations.
Maintenance
Related MCP Connectors
O*NET MCP — wraps the O*NET Web Services (US DOL) occupation taxonomy
NHTSA MCP — wraps the NHTSA vPIC (Vehicle Product Information Catalog) API (free, no auth)
Market Data App MCP — wraps the Market Data App API (marketdata.app)
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to control Origin/OriginPro on Windows, including data import, worksheet editing, graphing, analysis, and figure export.25154 PyPI128MIT
- AlicenseBqualityDmaintenanceA local MCP server that enables AI assistants to control Origin/OriginPro on Windows via Python automation, with adaptive path detection to resolve import errors.632MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to control OriginLab Origin Pro via COM automation for data analysis, graphing, and styling, with real-time GUI updates.56112 PyPI45MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI clients to drive a running OriginLab Origin instance, allowing LabTalk scripting, worksheet read/write, and project management.-