Skip to main content
Glama

Peggle AI MCP Server

This MCP server allows an AI to play Peggle by capturing the screen and controlling the mouse.

Tools

  • capture_screen: Captures the primary monitor and returns the image as base64.

  • click_at(x, y): Moves the mouse to (x, y) and performs a left click.

Related MCP server: ScreenPilot

How to use with LM Studio

  1. Build the server:

    npm install && npm run build
  2. Configure LM Studio:

    • Open LM Studio and go to the MCP tab.

    • Click Add Server.

    • Set the command to node (ensure node is in your PATH).

    • Set the arguments to the absolute path of the built index.js, for example: C:\Users\{youruser}\peggle-ai-mcp\dist\index.js

    • If needed, you can use the mcp.json already included here and paste in the json contents to your mcp.json for it to work

    • Alternatively, use npx:

      • Command: npx

      • Arguments: -y C:\Users\maxwe\Desktop\peggle-ai-mcp

  3. Start Playing:

    • Open Peggle (make sure it's on your primary monitor).

    • In LM Studio, select a model that supports vision and tools (e.g., Ministral 3B, or any other vision-capable model).

    • Ask the AI: "Take a screenshot of Peggle, analyze where the best shot is, and click there."

Implementation Details

  • Screen Capture: Uses screenshot-desktop.

  • Mouse Control: Uses PowerShell commands via child_process for cross-platform compatibility on Windows without needing native build tools.

  • Protocol: Model Context Protocol (MCP).

Note on Windows 11

Ensure that PowerShell execution policy allows running the commands if you encounter issues. The server uses standard PowerShell calls that should work in most default configurations

Available Tools

2 tools
capture_screenB

Captures a screenshot of the primary monitor and returns it as a base64 encoded string.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action and output but lacks details on permissions needed, whether it requires user interaction, potential side effects (e.g., privacy implications), or error conditions. This is a significant gap for a tool that interacts with system resources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action and output without any wasted words. It is appropriately sized for a simple tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of capturing system screenshots (which may involve permissions, user prompts, or platform-specific behavior), the description is incomplete. With no annotations and no output schema, it fails to address behavioral aspects like error handling or return format details beyond encoding, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the schema fully documents the absence of parameters. The description does not add parameter information, which is appropriate here. Baseline is 4 for 0 parameters, as the description does not need to compensate for any schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('captures a screenshot') and target resource ('primary monitor'), with a precise output specification ('base64 encoded string'). It uses distinct verbs and resources that differentiate it from the sibling tool 'click_at', which appears to perform a different interaction action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context for use, or exclusions, leaving the agent with no usage instructions beyond the basic purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

click_atB

Moves the mouse to the specified coordinates and performs a left click.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate
yYesY coordinate

TDQS

B3.2/5.0
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 states the action but does not disclose critical traits like whether this requires specific permissions (e.g., system access), potential side effects (e.g., unintended UI changes), or error handling (e.g., invalid coordinates). This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action without unnecessary words. It directly communicates the tool's function, making it easy to understand at a glance, with zero wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error conditions, or return values, which are essential for safe and effective use. The description does not compensate for the absence of structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with clear descriptions for 'x' and 'y' as coordinates. The description adds no additional meaning beyond what the schema provides, such as coordinate system details (e.g., screen pixels, relative positioning) or usage examples. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Moves the mouse to the specified coordinates and performs a left click'), which includes both the verb ('moves', 'performs') and the resource ('mouse', 'left click'). It distinguishes itself from the sibling tool 'capture_screen' by focusing on interaction rather than observation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as the sibling 'capture_screen' or other potential interaction tools. It lacks context about scenarios where clicking at coordinates is appropriate, such as in automation or UI testing, and offers no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedcapture_screen
    • First observedclick_at

TDQS

B3.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one captures visual data from the screen, while the other performs a mouse interaction at specific coordinates. There is no overlap in functionality, making it impossible to confuse them.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with snake_case naming: capture_screen and click_at. The naming is clear, predictable, and adheres to the same convention throughout.

Tool Count2/5

With only two tools, the server feels thin for a general-purpose automation or interaction domain like screen capture and mouse control. Key operations such as keyboard input, drag-and-drop, or region-specific screenshots are missing, limiting the scope significantly.

Completeness2/5

For a server implied to handle desktop automation or interaction (based on screen capture and mouse click), there are significant gaps. Missing tools include keyboard input, mouse movement without clicking, drag operations, and more advanced screen interactions, which will likely cause agent failures in broader automation tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers