Otii MCP Server
OfficialThis server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Otii MCP server
An MCP server that lets AI assistants measure the energy consumption of your device with a Qoitech Otii Arc or Otii Ace. You can ask your assistant things like:
Power my board at 3.3 V for 20 seconds and tell me how much energy one cycle uses.
I changed the firmware to sleep between transmissions, measure again and compare with the previous recording.
The server powers your device under test from the Otii, records current and (optionally) the device's UART log, and computes energy, charge and current statistics. These can cover a whole recording, a time range, or the interval between two log messages.
Early preview. Tool names and parameters may change. Feedback is welcome through GitHub issues.
Requirements
An Otii Arc or Otii Ace connected to your computer.
The Otii 3 desktop application running, with its TCP server enabled.
An Otii account with an Automation license available. The server reserves one license for each tool call and returns it afterwards.
uv, used to run the server without a manual install.
Related MCP server: arduino-mcp-server
Configuration
The server is configured through environment variables, set in your MCP client's configuration:
Variable | Default | Description |
| Path to a JSON file with your Otii login (see | |
| Otii login, used when | |
|
| Host running the Otii application. |
|
| Otii TCP server port. |
| Name of the Otii device to use. Only needed when more than one is connected. |
If the Otii application is already logged in, no credentials are needed.
A credentials file keeps your password out of the MCP client's configuration:
{
"username": "your-otii-account@example.com",
"password": "your-otii-password"
}Adding the server to your MCP client
Claude Code
claude mcp add otii --env OTII_CREDENTIALS=$HOME/.config/otii/credentials.json \
-- uvx --from git+https://github.com/qoitech/otii-mcp otii-mcpAdd --scope project to write it to the repository's .mcp.json, so that everyone working on the firmware gets it.
Claude Desktop, Cursor, VS Code and other clients
Most clients use the same JSON format: claude_desktop_config.json for Claude Desktop, .cursor/mcp.json for Cursor, and .vscode/mcp.json (under "servers") for VS Code.
{
"mcpServers": {
"otii": {
"command": "uvx",
"args": ["--from", "git+https://github.com/qoitech/otii-mcp", "otii-mcp"],
"env": {
"OTII_CREDENTIALS": "/path/to/credentials.json"
}
}
}
}From a local clone
git clone https://github.com/qoitech/otii-mcpThen use "command": "uv" with "args": ["run", "--directory", "/path/to/otii-mcp", "otii-mcp"].
Tools
Tool | Description |
| List connected Otii devices. |
| Power the device under test at a given voltage for a set time and record it. Returns a recording id and whole-recording statistics. Optionally records UART output and extra channels. |
| List recordings in the active Otii project. |
| Read the recorded UART log, with timestamps, optionally filtered. |
| Energy, charge and min/max/average current between two timestamps. |
| Energy between two UART log lines, e.g. one firmware cycle. |
| Switch Otii digital output GPO 1 or 2. |
| Set the voltage of the Ace 0–15 V pin. |
Recordings are stored in the project that is open in the Otii application, so you can open them there for a closer look.
Measuring per-cycle energy with UART log markers
The most useful measurements come from combining the current with your firmware's log output:
Connect the device's UART TX to the Otii RX, and set
exp_voltageto the device's IO voltage.Make your firmware print a fixed line once per cycle, e.g.
Connecting....Ask the assistant to measure with
uart_baudrateset. It then callsenergy_between_messageswith that line to get the energy of one cycle.occurrence: 1skips the first cycle, which includes boot.
Tip: if your device is also connected over USB for flashing or debugging, it may be partly powered from USB, which makes the measurements wrong. Use set_gpo to switch a USB power switch off while measuring.
Safety
measure turns on the Otii main output at the voltage you, or the assistant, choose. Tell the assistant your device's supply voltage, and set max_current_A to a sensible limit. Consider allowing measure, set_gpo and set_ace_0_15_voltage only after confirmation in your MCP client.
License
MIT
Related MCP Connectors
Home energy for AI assistants: live Power flow, Energy history, solar forecast, and device control.
Connects AI assistants to TrackingTime for querying time entries, projects, tasks, customers, and team data using natural language.
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with physical serial port devices across platforms (Windows COM/Linux tty) with support for asynchronous communication, URC pattern recognition, and structured logging.1-
- AlicenseAqualityCmaintenanceEnables AI assistants to compile, upload, and monitor Arduino boards via natural language, with electrical safety checks and dependency management.21185 npm24MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with serial port devices by sending commands, capturing output, and managing connections, with real-time browser-based terminal monitoring.1MIT
- FlicenseAqualityCmaintenanceEnables LLMs to control a Nordic Power Profiler Kit II over USB serial for current capture (500 nA–2000 mA at 100 kSa/s plus 8 logic channels) and DUT power sourcing (0.8–5 V), with samples written to npz files. Also supports offline analysis such as statistics, activity/duty-cycle segmentation, and battery-life estimation.19-