A small program that runs on your own PC and lets an AI assistant talk to your instruments through whatever VISA you already have. It is an experiment rather than a product, and it may or may not suit the way you work.
MCP, the Model Context Protocol, is a way for an AI client to call tools that run somewhere else. VisaMCP is one of those tools. It is a command line program you start on your own machine, and it offers the ordinary VISA operations as MCP tools: find resources, open a session, write, read, query, set termination and timeouts, read the status byte, wait for a service request, and so on.
The AI client decides what to ask for. VisaMCP does the actual talking to the instrument. Everything runs locally, and the instrument never sees anything other than the commands that were sent to it.
I was sceptical about AI for a long time, and in some places I still am. What changed my mind was not a grand demonstration. It was a few small moments where it saved me an afternoon of reading.
The case where it earns its keep is an instrument you do not know yet. You have a box on the bench, a manual of several hundred pages written in 1987, and a question that should take two commands to answer. Being able to describe what you want and converge on a working sequence in a few minutes is worth something, particularly when the alternative is paging through a scanned PDF looking for the one mnemonic that sets the trigger source.
The case where it does not help is the one where you already know the instrument. A script you wrote yourself is faster, cheaper and entirely predictable, and it will behave the same way next year. Plenty of people work that way and have no reason to change. This is not meant to replace that.
The first plan was to put an MCP server into the GPIBEE firmware itself. That is perfectly feasible: the device already has its own REST module, and an MCP layer on top of it would not have been a large step.
The reason I did not do it is a limitation that would have been built in from the start. An MCP server inside the adapter can only ever reach instruments on the GPIB bus. Most benches are not purely GPIB any more. There is usually a USB-TMC instrument, something on the LAN, perhaps a serial supply, and an assistant that can see half the bench and not the other half is awkward to work with.
Putting it on the PC on top of a VISA solves that. VisaMCP reaches everything the VISA reaches, GPIB included, and the adapter stays a bus adapter.
Any VISA instrument works, but this is the adapter I build, so it is the one I could support properly rather than generically. When a GPIBEE is on the network it is found and recognised on its own, and everything the adapter can do is offered to the assistant as its own tool rather than hidden behind a raw command string:
The older UsbGPIB V2 is supported too.
There are no external runtime libraries to install: unpack it and run it.
Anywhere will do, but the path goes into a configuration file, so pick a
folder you are not going to tidy away later. Something like
C:\Tools\VisaMcp\ on Windows or ~/bin/VisaMcp/ on
Linux.
Start the program by hand before wiring anything up. It prints which VISA it loaded and what it can see. If it cannot find a VISA, that is the problem to fix first, and it has nothing to do with the AI side.
This is a one-off check, not how the program is meant to run. Close the window when you are satisfied. VisaMCP does not need to be running, and you never start it yourself again. Once step 3 is done, the AI client launches it when it needs it and shuts it down afterwards.
Open the configuration file:
%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonAdd an entry under mcpServers, keeping any entries that are
already there:
{
"mcpServers": {
"visamcp": {
"command": "C:\\Tools\\VisaMcp\\VisaMcp.exe",
"args": []
}
}
}
On Linux the command is just the path to the binary,
/home/you/bin/VisaMcp/VisaMcp. Note the doubled backslashes in the
Windows path: that is JSON, not a typo.
Claude Desktop reads the file at startup, so it needs a full restart rather than a new conversation. The VisaMCP tools should then appear in the tools list. If they do not, the file is usually either in the wrong place or not valid JSON.
"List the VISA resources you can see" is a good opener, followed by asking it to identify one of them. If those two work, the plumbing is right and the rest is between you and the instrument.
One line instead of editing a file:
claude mcp add visamcp -- C:\Tools\VisaMcp\VisaMcp.exe
Nothing here is specific to one assistant. VisaMCP speaks MCP over standard input and output, which is the usual transport, so any client that can launch a local MCP server should be able to use it. The details of where the configuration lives differ from client to client, but the two things it needs are always the same: the path to the binary, and permission to start it.
Trademarks and attribution. NI, National Instruments and NI-VISA are trademarks of National Instruments Corporation, an Emerson company. R&S and Rohde & Schwarz are trademarks of Rohde & Schwarz GmbH & Co. KG. Claude is a trademark of Anthropic, PBC. VISA and IVI are used in the sense defined by the IVI Foundation. The Model Context Protocol is an open specification published by Anthropic. All other product and company names mentioned on this page are the property of their respective owners.
XyphroLabs and Gossner Electronics & Embedded Systems GmbH are not affiliated with, endorsed by or sponsored by National Instruments Corporation, Emerson Electric Co., Rohde & Schwarz GmbH & Co. KG or Anthropic, PBC. Neither GPIBEE nor VisaMCP is endorsed by any of them. This page describes interoperability with third-party software and is provided for information only. Names are used solely to identify the products described.
No warranty, no liability. VisaMCP is an experiment, supplied free
of charge, as-is and as-available, with no warranty of any kind, whether express or
implied, including any implied warranty of merchantability, fitness for a particular
purpose or non-infringement. It drives real laboratory equipment, and the risk that
comes with that is yours: you remain responsible for everything that is sent to your
instruments and for whatever those instruments then do. To the fullest extent permitted
by law, XyphroLabs and Gossner Electronics & Embedded Systems GmbH accept no
liability for any loss or damage arising from its use, including damage to instruments,
to devices under test or to other property, lost data and lost working time. Nothing in
this paragraph limits any liability that cannot be limited by law. The full licence and
safety notice ships as LICENSE.txt inside both downloads, and those terms
apply when you use the software.