Connecting an AI client to TestO's MCP server
TestO exposes its diagnostic tools (read fault codes, run ECU jobs, query logged sessions, etc.) over the Model Context Protocol (MCP). With MCP, your existing AI client uses your subscription / model — TestO doesn't need an API key, and you don't pay per token.
This page tells you how to connect each common AI client to TestO.
For background — what MCP is, the tool list, security notes — see MCP_README.md.
Before you start: enable MCP in TestO
Open testo.ini (in the directory where you launch TestO from) and add:
[mcp]
enabled=true
bindHost=127.0.0.1
httpPort=13721
endpointPath=/mcp
bearerToken=
Restart TestO. On startup the log should show:
[McpHttpTransport] listening at http://127.0.0.1:13721/mcp
Verify with a one-line health check (any terminal):
curl http://127.0.0.1:13721/health
Expected output: ok. If you get Connection refused, MCP isn't enabled
or TestO is binding a different port.
Claude Desktop
Note: recent Claude Desktop versions require
https://for HTTP MCP servers — even on localhost. If yours rejects the plainhttp://URL below, see "HTTPS workaround for Claude Desktop" at the bottom of this page.
Edit Claude Desktop's config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
Add a
testoentry undermcpServers:{ "mcpServers": { "testo": { "transport": { "type": "http", "url": "http://127.0.0.1:13721/mcp" } } } }Restart Claude Desktop.
Click the hammer icon (bottom-left of the input box). You should see
testolisted with ~11 tools.
Try it: "Use TestO to list the jobs available on MSD80."
Claude Code (CLI)
Claude Code supports MCP out of the box.
claude mcp add testo http://127.0.0.1:13721/mcp
claude # starts an interactive session with the testo_* tools available
If you want a TestO-specific system prompt active automatically, drop a
CLAUDE.md file in the directory you run from (e.g. c:\tools\testo\CLAUDE.md).
Claude Code auto-loads it as context for every session started in that
directory. You can simply copy your existing config/ai_system_prompt.txt
to CLAUDE.md.
Cursor
Edit ~/.cursor/mcp.json (create it if missing):
{
"mcpServers": {
"testo": {
"url": "http://127.0.0.1:13721/mcp"
}
}
}
Restart Cursor. TestO tools appear in the AI sidebar's tool menu.
Continue.dev (VS Code / JetBrains)
In your Continue config (~/.continue/config.json or config.yaml):
{
"mcpServers": [
{
"name": "testo",
"transport": {
"type": "http",
"url": "http://127.0.0.1:13721/mcp"
}
}
]
}
ChatGPT
OpenAI's consumer ChatGPT (web / mobile / desktop) does not currently support MCP. There's no "add custom MCP server" option in the chat UI.
OpenAI does offer MCP integration for developers through:
- The AgentKit / Agents SDK (Python and Node) — build your own ChatGPT-style app that connects to MCP servers including TestO.
- The Responses API with
tools: [{type: "mcp", ...}]— programmatic access.
If you're a developer wanting to script ChatGPT-driven workflows that hit TestO, those are the routes. Casual chat users on chatgpt.com can't connect TestO today — use Claude Desktop or Claude Code instead.
Generic / scripted clients
Any HTTP-capable script can talk to TestO directly. The endpoint speaks JSON-RPC 2.0:
# List available tools
curl -X POST http://127.0.0.1:13721/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
# Call a tool
curl -X POST http://127.0.0.1:13721/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"testo_get_loaded_dll","arguments":{}}}'
This is the easiest way to verify the server is healthy without an AI in the loop.
HTTPS workaround for Claude Desktop
If Claude Desktop refuses the plain HTTP URL, run a small TLS-terminating proxy in front of TestO. The painless route is Caddy:
Download Caddy from https://caddyserver.com/download (single .exe).
Save this as
Caddyfile:localhost:13722 { reverse_proxy http://127.0.0.1:13721 tls internal }From an admin terminal (once, to install Caddy's local CA):
caddy run --config CaddyfileUpdate Claude Desktop's config to point at the HTTPS endpoint:
{ "mcpServers": { "testo": { "transport": { "type": "http", "url": "https://localhost:13722/mcp" } } } }
You can install Caddy as a Windows service with caddy service install so
it starts at boot.
Common troubleshooting
| Symptom | Likely cause |
|---|---|
Connection refused from curl |
MCP not enabled in testo.ini, or TestO not running, or port mismatch |
| Client connects but no tools listed | Test0's log reports how many tools were registered at startup. Zero means the MCP server failed to initialise — usually a scripting setup problem. |
Tool call returns isError: true |
Tool ran but its handler returned ok: false — inspect the error field in structuredContent |
| Claude Desktop says "HTTP not allowed" | Use the HTTPS workaround (Caddy) above |
Unauthorized |
A bearerToken is set in testo.ini but the client isn't sending it (only relevant for non-localhost binds) |
What the tools actually expose
See the table in MCP_README.md for the current list, what each tool does, and its safety category.