Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions arduino-mcp-extension/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,8 +319,13 @@ requires the bearer token (unless `arduino.mcp.requireAuth` is disabled).
| `get_info` | `fqbn` | Get board specs and pin reference |
| `select` | `fqbn`, `port` | Set the default board/port for this MCP session (does not change the IDE UI) |
| `search` | `query` | Search board registry |
| `suggest_fqbn` | `name`, `port` | Propose FQBNs for an unidentified board from its USB vid/pid and/or name; names the core to install when missing |
| `install_core` | `core` | Install board support package |

`list_connected` includes each port's USB `vid`/`pid`/`serial_number`. A
bridge-chip vid (CH34x/CP210x/FTDI) identifies the adapter, not the MCU -
`suggest_fqbn` knows the difference and says so.

### arduino_compile

| Parameter | Description |
Expand Down
3 changes: 2 additions & 1 deletion arduino-mcp-extension/src/common/mcp-tool-router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ export const TOOL_CATEGORIES: ToolCategory[] = [
name: 'board',
description: 'Manage Arduino boards - list connected, select board/port, install cores.',
toolNames: ['arduino_board'],
useWhen: 'Connecting boards, selecting board type, installing board support',
useWhen:
'Connecting boards, selecting board type, installing board support, identifying unknown boards / picking an FQBN (suggest_fqbn)',
},
{
name: 'serial',
Expand Down
13 changes: 10 additions & 3 deletions arduino-mcp-extension/src/common/mcp-tools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ export const ARDUINO_TOOLS: ToolDefinition[] = [
{
name: 'arduino_board',
description:
'Manage Arduino boards - list connected devices, get the IDE board selection, choose a default board/port for this MCP session, get board details including pin capabilities, search boards, install cores.',
'Manage Arduino boards - list connected devices (with USB vid/pid), get the IDE board selection, choose a default board/port for this MCP session, get board details including pin capabilities, search boards, install cores. When a connected port shows identified:false, use suggest_fqbn to get FQBN candidates from the USB identity and board name.',
inputSchema: {
type: 'object',
properties: {
Expand All @@ -239,10 +239,11 @@ export const ARDUINO_TOOLS: ToolDefinition[] = [
'get_selected',
'get_info',
'search',
'suggest_fqbn',
'install_core',
],
description:
'The board operation to perform. "select" sets the default board/port used by compile/upload for this MCP session (it does not change the IDE UI selection). "get_selected" returns the IDE selection and the MCP session override.',
'The board operation to perform. "select" sets the default board/port used by compile/upload for this MCP session (it does not change the IDE UI selection). "get_selected" returns the IDE selection and the MCP session override. "suggest_fqbn" proposes FQBNs for an unidentified board from its USB vid/pid and/or a name.',
},
fqbn: {
type: 'string',
Expand All @@ -251,12 +252,18 @@ export const ARDUINO_TOOLS: ToolDefinition[] = [
},
port: {
type: 'string',
description: 'Serial port to associate with the board (for select)',
description:
'Serial port to associate with the board (for select), or the port to identify (for suggest_fqbn; defaults to the selected port)',
},
query: {
type: 'string',
description: 'Search query (for search action)',
},
name: {
type: 'string',
description:
'Board/product name to match, e.g. "esp32 s3" or the name on the silkscreen (for suggest_fqbn)',
},
core: {
type: 'string',
description: 'Core to install (e.g., arduino:avr, esp32:esp32)',
Expand Down
Loading