Client-neutral Windows and Linux computer control over Model Context Protocol, managed from a desktop control center
PortaMCP provides 27 tools with basic naming and descriptions, but critical gaps undermine production readiness. Tool names follow verb_noun convention (good), but descriptions are minimal (10-30 chars, well below the 50-200 char baseline for LLM optimization). Input schemas are present but sparse: most parameters lack detailed descriptions, constraints, or format guidance. No output schemas documented. Error handling is absent, tools provide no recovery guidance. Security-critical tools (run_shell_command, delete_file, kill_process) lack permission gates, confirmation patterns, or audit trail integration. Composition is poor: browser_* and chrome_tab_* tools duplicate functionality without clear differentiation. No pagination, rate limiting, or result capping for list operations.
Click element in browser
Fill form field in browser
Navigate browser to URL
Get snapshot of current browser page
Get Chrome bridge connection status
List open Chrome tabs
Click element in Chrome tab
Evaluate JavaScript in Chrome tab
Fill form field in Chrome tab
Destructive tools (delete_file, kill_process, run_shell_command) lack confirmation patterns, permission gates, and audit trail integration. No dry-run support or recovery guidance.
Tool descriptions are 10-30 characters (far below 50-200 char baseline). LLMs cannot determine when/why to select tools. E.g., 'Get system information' and 'List running processes' lack context on what data is returned and when to use each.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. E.g., system_info, list_processes, screenshot, chrome_list_tabs return unknown structures.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Navigate Chrome tab to URL
Take screenshot of Chrome tab
Get snapshot of Chrome tab
Delete a file
Create a git commit
Get git repository status
Type text using keyboard
Terminate a process
Click UI element on Linux
List files in a directory
List running processes
Click the mouse at coordinates
Read file contents
Execute a shell command
Take a screenshot of the screen
Get system information
Click UI element on Windows
Write to a file
Duplicate tool functionality without clear differentiation. browser_* (navigate, click, fill, snapshot) and chrome_tab_* (navigate, click, fill, screenshot, evaluate) overlap. LLMs waste reasoning cycles deciding between them.
Parameter descriptions missing or minimal. E.g., 'path' in list_files lacks format guidance (absolute vs relative, trailing slash handling). 'selector' in browser_click lacks examples (CSS selector vs XPath vs element ID). LLMs guess and fail.