UDS-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| --bitrate | No | CAN bus bitrate in bits per second (e.g. 500000) | |
| --channel | No | CAN channel for the selected interface (e.g. PCAN_USBBUS1) | |
| --interface | Yes | CAN interface backend to use (e.g. pcan, sim) |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_ecu_infoA | Describe the connected ECU: interface, CAN IDs, current session, known DIDs, routines and configured security levels. |
| diagnostic_session_controlC | 0x10 DiagnosticSessionControl. session: default, programming, extended, safety or a hex number. |
| ecu_resetA | 0x11 ECUReset. reset_type: hard, key_off_on, soft or a hex number. Returns the ECU to the default session. Confirm with the user before resetting. |
| read_data_by_identifierB | 0x22 ReadDataByIdentifier. dids: list of hex DIDs, e.g. ["F190", "F18C"]. DIDs not known to the ECU config must be read one at a time. |
| write_data_by_identifierA | 0x2E WriteDataByIdentifier. Give the value as value_hex ("00 64") or value_ascii (text). Usually needs the extended session and security access. Confirm with the user before writing. |
| security_accessB | 0x27 SecurityAccess: request a seed for odd level and send the key computed by the key algorithm configured for that level. Needs a non-default session. |
| routine_controlC | 0x31 RoutineControl on a hex routine_id, e.g. "0203". Routines act on the ECU: confirm with the user before starting one. |
| read_dtc_informationC | 0x19 02 ReadDTCInformation: DTCs whose status matches status_mask (hex byte). |
| clear_diagnostic_informationA | 0x14 ClearDiagnosticInformation for a DTC group (FFFFFF = all). Confirm with the user before clearing. |
| tester_presentA | 0x3E TesterPresent. Rarely needed: a keep-alive already runs in the background. |
| send_rawA | Send any UDS request as hex bytes, e.g. "22 F1 90", and get the raw response. Use it for services without a dedicated tool. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool maps to a distinct UDS diagnostic service or utility, so an agent can readily choose between session control, reset, DID read/write, security access, routines, DTCs, and tester present. send_raw overlaps by design as an explicit fallback for services without a dedicated tool, but its purpose is clearly stated and does not make the specialized tools ambiguous.
All tool names use consistent snake_case and largely mirror standard UDS service terminology, making the set readable and predictable. However, several names are noun phrases rather than strict verb_noun forms (e.g. security_access, routine_control, tester_present), so the pattern is slightly mixed.
Eleven tools is well-scoped for a UDS diagnostic server: the set covers the core services agents commonly need without becoming unwieldy. Each dedicated tool has a clear role, and send_raw prevents the need to add many rarely used service-specific tools.
The server covers the main diagnostic lifecycle: session control, reset, DID read/write, security access, routines, DTC read/clear, tester present, and raw requests. Some UDS service areas such as IO control, memory transfer/download, or extended DTC snapshot reads lack dedicated tools, but send_raw provides a practical fallback.