Electron MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation2/5
The tool set has significant overlap and unclear boundaries. The first three tools (get_electron_window_info, read_electron_logs, send_command_to_electron) are distinct, but the 'Enhanced UI interaction commands' section contains 14 tools that are poorly differentiated. For example, 'debug_elements' and 'get_page_structure' seem to serve similar purposes, and 'click_by_text' vs 'click_by_selector' are just different targeting methods rather than distinct operations. This creates confusion about which tool to use for basic UI tasks.
Naming Consistency2/5The naming conventions are inconsistent and chaotic. The first three tools use snake_case with clear verb_noun patterns, but the UI interaction tools mix styles: some use snake_case ('click_by_text'), others use camelCase ('getPageStructure' in the description but 'get_page_structure' as the tool name), and some are just verbs ('eval'). There's no discernible pattern across the entire set, making it difficult to predict tool names.
Tool Count3/5With 17 total tools (3 core + 14 UI interaction), the count is borderline heavy for an Electron automation server. While Electron automation can justify many tools, the UI interaction section feels bloated with redundant or overly specific tools (e.g., separate tools for 'get_title', 'get_url', and 'get_body_text' instead of a unified 'get_page_info'). The count would be more appropriate if the UI tools were consolidated into fewer, more general-purpose tools.
Completeness4/5For an Electron automation server, the tool surface is reasonably complete. It covers core areas: window detection, log reading, command execution, UI interaction (with extensive element targeting methods), and screenshots. The main gap is the lack of window management tools (resize, minimize, close windows) and application lifecycle control (launch/quit apps). However, the existing tools cover most common automation workflows, with the UI interaction section being particularly thorough despite its redundancy issues.
Average 3.8/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool automatically detects apps with remote debugging on port 9222, which is useful behavioral context. However, it lacks details on permissions needed, rate limits, error handling, or what specific information is returned (e.g., window titles, IDs, states). For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, and the second adds crucial context about automatic detection. Both sentences earn their place by providing essential information without redundancy or fluff, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (detecting apps and retrieving window info), no annotations, no output schema, and 1 parameter with full schema coverage, the description is moderately complete. It covers the what and how (automatic detection on port 9222) but lacks details on return values, error cases, or integration with sibling tools. It's adequate as a starting point but has clear gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, so the schema already documents 'includeChildren' as a boolean to include child windows. The description does not add any parameter-specific details beyond what the schema provides, such as examples or implications of setting it true/false. With high schema coverage, the baseline is 3, and the description does not compensate with extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get information about running Electron applications and their windows.' It specifies the verb ('Get information') and resource ('running Electron applications and their windows'), and distinguishes from sibling tools like read_electron_logs or send_command_to_electron by focusing on window info rather than logs or commands. However, it doesn't explicitly differentiate from take_screenshot, which might also involve window info, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating it 'Automatically detects any Electron app with remote debugging enabled (port 9222),' which suggests when to use it (when such apps are running). However, it lacks explicit guidance on when to use this tool vs. alternatives like read_electron_logs for logs or take_screenshot for visual data, and does not mention any exclusions or prerequisites beyond the debugging requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool is for 'debugging and monitoring,' which suggests read-only behavior, but doesn't explicitly state whether it's safe, requires permissions, has rate limits, or details the output format. For a tool with no annotations, this leaves significant gaps in understanding its operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, consisting of two sentences that directly address purpose and usage without any wasted words. It is front-loaded with the core function and efficiently adds context, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and hints at usage but lacks details on behavioral aspects like safety, permissions, or output format. Without annotations or an output schema, more context would be beneficial, but it meets a basic threshold for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all parameters ('follow', 'lines', 'logType'), including an enum for 'logType'. The description adds no additional parameter information beyond what the schema provides. According to the rules, with high schema coverage (>80%), the baseline score is 3 when no param info is added in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Read console logs and output from running Electron applications.' It specifies the verb ('Read') and resource ('console logs and output from running Electron applications'), making the function evident. However, it doesn't explicitly distinguish this tool from its siblings (e.g., 'get_electron_window_info' or 'send_command_to_electron'), which would be needed for a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by stating it's 'Useful for debugging and monitoring app behavior,' which implies when to use it. However, it doesn't offer explicit guidance on when to choose this tool over alternatives (e.g., vs. 'get_electron_window_info' for window info or 'send_command_to_electron' for commands), nor does it mention any exclusions or prerequisites, keeping it at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: that it returns base64 image data, creates no files by default, and only creates files when outputPath is specified. However, it doesn't mention potential limitations like what happens if no Electron windows are running, performance characteristics, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with three sentences that each earn their place: states the action and target, specifies the return format and purpose, and clarifies the file creation behavior. No wasted words, front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a screenshot tool with 2 parameters, 100% schema coverage, and no output schema, the description provides good context about what the tool does and its behavior. However, without annotations or output schema, it could benefit from more detail about the return format structure or error handling, though the base64 return is mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds minimal value beyond the schema - it mentions that outputPath is optional and defaults to temp directory (already in schema) and implies windowTitle is optional (already in schema). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Take a screenshot') and resource ('any running Electron application window'), distinguishing it from sibling tools like get_electron_window_info (which provides info) or send_command_to_electron (which sends commands). It explicitly mentions what the tool does and what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool (for capturing screenshots of Electron apps for AI analysis) and mentions the optional outputPath parameter for file creation. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing behavioral traits: it explains the enhanced UI interaction capabilities, emphasizes secure clicking ('Securely click'), safe navigation ('Safely navigate'), and enhanced error reporting for eval. However, it doesn't mention authentication needs, rate limits, or what happens on command failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose statement, command listing, argument format explanation, examples, and usage guidance. While comprehensive, some redundancy exists (e.g., listing all commands could be more concise). Every sentence adds value, but it's slightly longer than optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple command types, nested parameters) and no output schema, the description does well by explaining command behaviors, argument structures, and usage patterns. However, it doesn't describe return values or error responses, which would be helpful since there's no output schema. The coverage is strong but not fully complete for such a multifaceted tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds significant value by explaining the command types and their required argument structures with concrete examples. It clarifies that 'Arguments must be passed as an object with the correct properties' and provides specific mappings between commands and their parameter needs (e.g., click_by_selector requires selector, fill_input requires value).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Send JavaScript commands to any running Electron application via Chrome DevTools Protocol' - a specific verb ('Send') with clear resource ('JavaScript commands to Electron application'). It distinguishes from siblings like get_electron_window_info (info gathering), read_electron_logs (log reading), and take_screenshot (screenshot capture) by focusing on interactive command execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use specific commands: 'Use get_page_structure or debug_elements first to understand available elements, then use specific interaction commands.' It also distinguishes between different command types (e.g., click_by_text vs click_by_selector) and provides clear examples for when to use each approach.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/halilural/electron-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server