embedded-mcp-toolkit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEVICE | No | 默认的设备名称,对应config.yaml中devices下的key | board-b |
| LOG_DIR | No | 日志存储的目录,相对于MCP server进程的工作目录 | ./log |
| LOG_SAVE | No | 是否存储日志到文件("1"表示开启) | 1 |
| BOARD_CONFIG_PATH | No | 配置文件路径,相对于MCP server进程的工作目录 | ./configs/config.yaml |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| greet_toolB | Greet someone by name |
| version_toolA | Get the MCP server version and toolkit information |
| device_info_toolA | Get device configuration. Uses the default device when no name is given; returns all devices when 'all' is specified. |
| notify_demo_toolA | Demonstrate server-to-client notifications: send logging messages or trigger list_changed events |
| session_infoA | Query active session metadata. Pass session_id for one session, device for all sessions of a device, or neither for all active sessions. Each session returns: session id, connection type (serial/ssh/adb), device name, connection info (e.g. COM3@115200), creation time, and the raw session log file path (serial/ssh/adb traffic recorded continuously by the server, including full boot logs after reset/reboot). |
| host_infoA | Query the MCP host endpoint (username@ip) for constructing cross-machine file transfers (scp) when this MCP runs on Windows and the AI client runs on Linux. Returns 'local started' with no endpoint for local launches. |
| ssh_shell_openA | Open an interactive SSH shell session to the board. Returns the initial banner output. |
| ssh_shell_closeB | Close an SSH shell session and release the connection. |
| ssh_shell_writeC | Send a command to an SSH shell session. |
| ssh_shell_readA | Read output from an SSH shell session. |
| ssh_shell_execA | Send a command to an SSH shell session and wait for the output. Combines write + delay + read in one call. |
| ssh_shell_send_ctrlA | Send a control character (Ctrl+C/U/D/Z) to an SSH shell session without appending a newline. |
| ssh_shell_connectionA | Check active SSH connections on the remote board. Shows which client IPs are connected to the SSH service (port 22). |
| ssh_shell_loginA | One-click SSH login: connect, detect PSH state, auto-unlock if locked, and return a ready session. Combines open + PSH detect + unlock into a single call. |
| ssh_buildA | Execute a build command on the remote server via SSH, wait for completion, classify errors/warnings, and return structured build results for AI analysis. IMPORTANT: Each session supports only ONE build at a time. For concurrent builds, open multiple sessions via ssh_shell_open and assign one build per session. |
| ssh_sftp_uploadA | Upload a local file to the remote board over SFTP, reusing an existing SSH session. |
| ssh_sftp_downloadA | Download a remote file from the board to local over SFTP, reusing an existing SSH session. |
| serial_openA | Open a serial port connection and start an interactive shell session. Returns the initial banner output. |
| serial_closeA | Close a serial port session and release the port. |
| serial_writeC | Send a command to a serial shell session. |
| serial_readC | Read output from a serial shell session. |
| serial_execA | Send a command to a serial shell session and wait for the output. Combines write + delay + read in one call. |
| serial_send_ctrlA | Send a control character (Ctrl+C/U/D/Z) to a serial shell session without appending a newline. |
| serial_shell_loginA | One-click serial login: connect, detect PSH state, auto-unlock if locked, and return a ready session. Combines open + PSH detect + unlock into a single call. |
| serial_enter_ubootA | Enter U-Boot by rebooting the device and stopping autoboot. Detection rules (autoboot prompts, command prompt, verify env keys) are configurable via device config serial.uboot; falls back to built-in defaults. Two-layer strategy: prompt match first; if not matched within a short window, sends 'printenv' and verifies U-Boot env keys. Fails fast on kernel boot or verify timeout. |
| serial_uploadA | Upload a binary file to the device over ZMODEM via an existing serial session. The device must have lrzsz installed (rz command). Blocks until transfer completes, fails, or times out; progress is logged to stderr. Two timeouts: idle_timeout aborts on stalled transfer (real failure); timeout caps total duration and reports a suggested value if still progressing. |
| serial_downloadA | Download a binary file from the device over ZMODEM via an existing serial session. The device must have lrzsz installed (sz command). Blocks until transfer completes, fails, or times out; progress is logged to stderr. Two timeouts: idle_timeout aborts on stalled transfer (real failure); timeout caps total duration and reports a suggested value if still progressing. |
| port_scan_toolA | Scan Windows Device Manager for available COM (serial) and LPT (parallel) ports |
| network_scan_toolA | Scan Windows network adapters and configurations (IP, MAC, status, speed) |
| subnet_check_toolA | Analyze subnet information for a target IP address. Retrieves host IP, subnet mask, and gateway, calculates subnet range (network address, broadcast address, usable host range, CIDR), and determines whether the target IP falls within the same subnet as the host. |
| power_shell_openA | Open an interactive PowerShell shell session on the local Windows machine. Returns the initial banner output. |
| power_shell_closeA | Close a PowerShell shell session and terminate the process. |
| power_shell_writeC | Send a command to a PowerShell shell session. |
| power_shell_readC | Read output from a PowerShell shell session. |
| power_shell_execA | Send a command to a PowerShell shell session and wait for the output. Combines write + delay + read in one call. |
| adb_device_listA | List all connected ADB devices and their status (device, offline, unauthorized, etc.) |
| adb_execA | Execute a one-shot ADB command without a persistent session. Use for adb devices, install, push, or short shell commands. |
| adb_shell_openA | Open an interactive ADB shell session to an Android device. Returns the initial banner output. |
| adb_shell_closeA | Close an ADB shell session and terminate the adb process. |
| adb_shell_writeC | Send a command to an ADB shell session. |
| adb_shell_readB | Read output from an ADB shell session. |
| adb_shell_execB | Send a command to an ADB shell session and wait for the output. Combines write + delay + read in one call. |
| adb_shell_send_ctrlA | Send a control character (Ctrl+C/U/D/Z) to an ADB shell session without appending a newline. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/smk-h/embedded-mcp-toolkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server