AI assistant (MCP)
This require SWTools v4.0.0-rc3 and newer.
What it is
emGUI has a built-in MCP server. MCP (Model Context Protocol) is the standard way for AI assistants such as Claude, ChatGPT, Cursor or GitHub Copilot to use outside tools. Once you connect your assistant, it can see the devices emGUI is connected to, read their values, search this documentation and follow siliXcon's diagnostic playbooks. All of it goes through one address on your own PC.
emGUI itself sends nothing to the internet except documentation lookups on docs.silixcon.com. Your assistant is a separate program: a cloud assistant sends your conversation, including the values it read from the device, to its provider.
Requirements
- SWTools 4.0 with emGUI, running and connected to your device. Download SWTools.
- An AI assistant app installed on your PC: a desktop app, a code editor or a command-line tool. The AI behind it may run in the cloud; the app has to run on your PC to reach emGUI. The tabs below list the ones we have checked.
- The server URL. In emGUI, click MCP → Copy server URL. It is usually
http://127.0.0.1:28955/mcp. A second emGUI running at the same time uses a different port, so always copy it. - Internet access for the playbooks and the documentation tools. Reading the device works without it.
The playbooks and the documentation tools (list_playbooks, get_playbook, search_docs, read_doc, doc_link) are not in
4.0.0-rc2 or its rc2.x fixes; they come with the next SWTools build. To check yours, ask the assistant which emGUI tools it has, or to
call emgui_status. An older build still has all the device tools, without these five.
Connect your assistant
- Start emGUI and connect to your device. Start emGUI before the assistant.
- Copy the server URL from emGUI and paste it into the field below. Or, in emGUI, click MCP → Getting started with AI assistants...: it opens this page with the URL already filled in.
- Pick your assistant and follow its steps.
These run in the vendor's cloud, not on your PC, so they cannot reach emGUI. The same goes for the Claude mobile app and for Customize → Connectors → Add custom connector in Claude Desktop.
Use one of these instead: Claude Desktop (with the config file), Claude Code, Cursor, VS Code or the ChatGPT desktop app.
In emGUI, click MCP → Copy server URL and paste it here. The steps below use this URL.
- Claude Desktop
- Claude Code
- Cursor
- VS Code
- ChatGPT desktop
- Codex
- Gemini CLI
- Windsurf
- JetBrains
- Zed
- Cline
- Roo Code
Claude Desktop reaches emGUI through a small bridge, mcp-remote. It needs Node.js on your PC: install it first.
- In Claude Desktop, open Settings → Developer → Edit Config. This opens
claude_desktop_config.json(Windows:%APPDATA%\Claude\, macOS:~/Library/Application Support/Claude/). - Add the
emguientry:claude_desktop_config.json{"mcpServers": {"emgui": {"command": "npx","args": ["-y","mcp-remote","http://127.0.0.1:28955/mcp"]}}}If the file is empty, paste this as it is. Otherwise add
mcpServersinside the file's outer{ }, not as a second{ }after it. If the file already hasmcpServers, put theemguientry inside it, next to the others. - Save the file. Then quit Claude Desktop completely and start it again.
A "url" entry in this file. Claude Desktop does not support it, and it can delete all your MCP servers from the file when it starts.
Customize → Connectors → Add custom connector. It connects from Anthropic's cloud, which cannot reach your PC.
emGUI does not show up? Claude Desktop writes its MCP logs to Only if emGUI was started with Typed here only to fill in the snippet. This page sends nothing anywhere. Use this entry instead. Keep the header argument exactly as written, without spaces. If the file is empty, paste this as it is. Otherwise add %APPDATA%\Claude\logs\mcp*.log (macOS: ~/Library/Logs/Claude).emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.
Run this once in a terminal:
claude mcp add --transport http --scope user emgui http://127.0.0.1:28955/mcp
Only if emGUI was started with Typed here only to fill in the snippet. This page sends nothing anywhere.--scope user makes emGUI available in every folder you start Claude Code in.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.
Click the button and let your browser open Cursor:
Nothing happens? Add it by hand. Open ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json) and add:
{
"mcpServers": {
"emgui": {
"url": "http://127.0.0.1:28955/mcp"
}
}
}
If the file is empty, paste this as it is. Otherwise add Only if emGUI was started with Typed here only to fill in the snippet. This page sends nothing anywhere. Add emGUI by hand, with this entry. The button carries no token, because links end up in your browser history. If the file is empty, paste this as it is. Otherwise add mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.
For GitHub Copilot Chat in Agent mode. Click the button for your VS Code and let your browser open it:
VS Code asks you to trust the server the first time it starts it.
Nothing happens? Add it by hand. In VS Code, run MCP: Open User Configuration from the Command Palette and add:
{
"servers": {
"emgui": {
"type": "http",
"url": "http://127.0.0.1:28955/mcp"
}
}
}
If the file is empty, paste this as it is. Otherwise add servers inside the file's outer { }, not as a second { } after it. If the file already has servers, put the emgui entry inside it, next to the others.
The key is Only if emGUI was started with Use this configuration instead. VS Code asks for the token when it starts the server, so the file does not hold it. If the file is empty, paste this as it is. Otherwise add servers, not mcpServers, and "type": "http" is required. For a company Copilot account (Business, Enterprise), your organisation's Copilot policy can switch MCP off.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.inputs and servers inside the file's outer { }, not as a second { } after it. If the file already has one of these keys, put the new entries inside it, next to the others.
The ChatGPT desktop app only. ChatGPT in the browser cannot reach your PC.
- Open Settings → MCP servers → Add server.
- Name:
emgui. Type: Streamable HTTP. URL:http://127.0.0.1:28955/mcp - Click Save, then Restart.
The ChatGPT desktop app shares its MCP servers with Codex ( Only if emGUI was started with Add emGUI to ~/.codex/config.toml). A server added in one shows up in the other.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.~/.codex/config.toml like this, and set the environment variable EMGUI_MCP_TOKEN to the token before you start the app:
For the Codex CLI and the Codex IDE extension. Run this once in a terminal:
codex mcp add emgui --url http://127.0.0.1:28955/mcp
Check it with Only if emGUI was started with Set the environment variable Codex reads the token from that variable each time, so the configuration does not hold it.codex mcp list, or type /mcp in Codex. The ChatGPT desktop app sees the same server.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.EMGUI_MCP_TOKEN to the token before you start Codex, and add emGUI with:
Run this once in a terminal:
gemini mcp add --transport http --scope user emgui http://127.0.0.1:28955/mcp
--scope user makes emGUI available in every folder; without it, only in the current project. Do not add --trust: Gemini would then stop asking you before it uses emGUI.
Editing ~/.gemini/settings.json by hand instead? The key is httpUrl, not url:
{
"mcpServers": {
"emgui": {
"httpUrl": "http://127.0.0.1:28955/mcp"
}
}
}
If the file is empty, paste this as it is. Otherwise add Only if emGUI was started with Typed here only to fill in the snippet. This page sends nothing anywhere.mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.
Windsurf is now called Devin Desktop. Open mcp_config.json (Windows: %APPDATA%\devin\mcp_config.json, macOS and Linux: ~/.config/devin/mcp_config.json) and add:
{
"mcpServers": {
"emgui": {
"url": "http://127.0.0.1:28955/mcp"
}
}
}
If the file is empty, paste this as it is. Otherwise add mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.
Save the file. If emGUI does not appear, restart Devin Desktop. Only if emGUI was started with Typed here only to fill in the snippet. This page sends nothing anywhere. If the file is empty, paste this as it is. Otherwise add emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.
For JetBrains AI Assistant. Open Settings | Tools | AI Assistant | Model Context Protocol (MCP), click Add, choose JSON configuration and paste:
{
"mcpServers": {
"emgui": {
"url": "http://127.0.0.1:28955/mcp"
}
}
}
If the configuration is empty, paste this as it is. Otherwise add Only if emGUI was started with We have not verified a token setup for AI Assistant. Use it with an emGUI started without mcpServers inside the configuration's outer { }, not as a second { } after it. If the configuration already has mcpServers, put the emgui entry inside it, next to the others.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.--mcp-token.
Open Zed's settings.json and add:
{
"context_servers": {
"emgui": {
"url": "http://127.0.0.1:28955/mcp"
}
}
}
If the file is empty, paste this as it is. Otherwise add context_servers inside the file's outer { }, not as a second { } after it. If the file already has context_servers, put the emgui entry inside it, next to the others.
The same can be done in Settings → AI → MCP Servers → Add Server → Add Remote Server. Only if emGUI was started with Typed here only to fill in the snippet. This page sends nothing anywhere. If the file is empty, paste this as it is. Otherwise add emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.context_servers inside the file's outer { }, not as a second { } after it. If the file already has context_servers, put the emgui entry inside it, next to the others.
Click the MCP Servers icon, open the Remote Servers tab, enter the name emgui and the URL, choose the Streamable HTTP transport and click Add Server. Or add this to cline_mcp_settings.json:
{
"mcpServers": {
"emgui": {
"type": "streamableHttp",
"url": "http://127.0.0.1:28955/mcp",
"disabled": false
}
}
}
If the file is empty, paste this as it is. Otherwise add mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.
Keep Only if emGUI was started with We have not verified a token setup for Cline. Use it with an emGUI started without "type": without it, Cline may use the wrong transport.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.--mcp-token.
Add this to .roo/mcp.json in your project, or to the global mcp_settings.json:
{
"mcpServers": {
"emgui": {
"type": "streamable-http",
"url": "http://127.0.0.1:28955/mcp"
}
}
}
If the file is empty, paste this as it is. Otherwise add mcpServers inside the file's outer { }, not as a second { } after it. If the file already has mcpServers, put the emgui entry inside it, next to the others.
Only if emGUI was started with We have not verified a token setup for Roo Code. Use it with an emGUI started without "type" is required. Without it, Roo Code reports an error.emGUI started with
--mcp-token--mcp-token. Then every request has to carry the token, or emGUI refuses it.--mcp-token.
What the assistant can do
emGUI gives the assistant these tools:
- Device tools: list the connected devices, read and write their values, and run commands. What they may change depends on the level below.
list_playbooksandget_playbook: siliXcon's diagnostic playbooks. The ones that match the connected device are marked.search_docs: searches this documentation.read_doc: reads a page of this documentation for the assistant, for example a table of values that a search hit or a playbook points to.doc_link: finds the documentation page of one variable of the connected device.
The playbook and documentation tools need a recent emGUI build, see Requirements.
By default the assistant can only read. It can list devices, read values and run commands that change nothing. You decide whether it may do more:
| Level in the emGUI MCP menu | The assistant may also |
|---|---|
| Read only (the default) | Nothing more. |
| Allow writes | Change parameters and run commands that change the device state. |
| Allow dangerous commands | Run commands that can move a motor or change the device address or its interface. For development only, with the hardware in sight. |
- To change the level, open the MCP menu, click Stop server, pick the level, then click Start server. Or start emGUI with
--mcp-write=writeor--mcp-write=danger. - emGUI never remembers the level. Every start is read-only, unless you start it with
--mcp-write. - While writes are allowed, the emGUI window title says so:
MCP: writes enabledorMCP: dangerous commands enabled. - The assistant cannot raise the level itself. A motor can move only at the highest level, and only if you chose it.
First things to ask
- "What is the reason the connected device is not running?"
- "Which devices are connected, and which firmware do they run?"
- "Read the error states of my controller and explain them, with links to the documentation."
Playbooks
A playbook is a step-by-step diagnosis written by siliXcon engineers: which values to read first, what they mean and what to check next. emGUI downloads the current playbooks from this site when your assistant asks for them, so the assistant follows the same order of checks as our support does. The playbooks are ordinary pages, so you can read them too: AI playbooks.
Troubleshooting the connection
The assistant does not see emGUI.
- emGUI must be running, and it must be started before the assistant. If the assistant was already running, restart it (quit Claude Desktop completely), or reconnect the server from the assistant's list of MCP servers.
- The server must be running. When it is, the MCP menu offers Stop server. If it offers Start server (and Copy server URL is greyed out), click Start server.
- The port must match. When the server starts, the emGUI Log panel shows a line such as
MCP server: http://127.0.0.1:28955/mcp (read-only). A second emGUI uses the next free port. Copy the URL again and update your assistant. - After you change the assistant's configuration, restart the assistant. Claude Desktop has to be quit completely.
emGUI was started with --mcp-token. Every request then has to carry the token, or emGUI refuses it. Each tab above has the token
variant under emGUI started with --mcp-token. An assistant that cannot send the token cannot be used with it.
Browsers cannot connect. emGUI refuses requests from websites (anything not served from your own PC) on purpose, so that no website can control your device. That is also why this page cannot test the connection for you.
See what the assistant asks. In the MCP menu, click Stop server, tick Log requests and click Start server. Or start
emGUI with --mcp-log. Every request and its result then appear in the Log panel. If nothing appears when you ask your assistant
something, the assistant does not reach emGUI: check the URL.
Playbooks or documentation are "unavailable". They come from docs.silixcon.com. Without internet access the assistant tells you so and continues with what the device reports. emGUI keeps the playbooks it downloaded last and uses them while it is offline.
Documentation search without emGUI
Not running emGUI, or only want answers from the documentation? Connect the public documentation search directly. It needs no account and no key. If your emGUI already has the documentation search (see Requirements), you do not need it.
https://docs.silixcon.com/mcp
This server is on the internet, so cloud assistants can use it too:
- claude.ai and Claude Desktop: Customize → Connectors → Add custom connector, then paste the URL.
- ChatGPT in the browser (paid plans): turn on developer mode (Settings → Security and login → Developer mode) and add the URL as a developer-mode app. See OpenAI's guide.
- Claude Code:
claude mcp add --transport http --scope user silixcon-docs https://docs.silixcon.com/mcp - Any other assistant from the tabs above: copy the snippet from its tab and change it by hand:
silixcon-docsas the name andhttps://docs.silixcon.com/mcpas the URL. The field above accepts emGUI addresses only, and the one-click buttons install emGUI. Do not use the Claude Desktop config file for it; use Connectors as described above.
Not every client takes the same configuration. A generic {"mcpServers": {"name": {"url": ...}}} block works only in Cursor, Windsurf
and JetBrains. It does not work in Claude Desktop, Claude Code, VS Code, Gemini CLI, Cline or Roo Code, and Zed uses context_servers
instead: take the form from the client's tab.
The assistant receives matching sections, not the whole documentation. It can miss context on a neighbouring page, and it can still summarize incorrectly. For anything safety related, such as powering, precharge, protections or current limits, read the linked page before you act on the answer.