Skip to main content
Glama
Yike-Ye
by Yike-Ye

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

origin_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.

origin_worksheet_infoA

Describe a worksheet -- size, column names, formats -- without reading it.

Omit both arguments for the active worksheet.

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.

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".

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.

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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