Skip to main content
Glama

Zypin MCP

A generic MCP (Model Context Protocol) server for testing automation and tool integration. This server provides essential automation capabilities with a focus on simplicity and reliability.

Features

  • Simple Setup: Minimal configuration and dependencies

  • Essential Tools: Core automation functionality

  • Fast: Lightweight implementation with minimal overhead

  • Reliable: Focused on the most commonly used features

Project Structure

zypin-mcp/
├── package.json              # Project configuration and dependencies
├── index.js                  # Main CLI entry point and MCP server
├── browser.js                # Simple browser wrapper using Playwright
├── tools.js                  # MCP tools implementation (16 tools)
├── test.js                   # Basic functionality tests
├── .gitignore                # Git ignore rules
├── README.md                 # This documentation
└── node_modules/             # Dependencies (3 packages)

File Descriptions

  • index.js: Main entry point that sets up the MCP server, handles CLI arguments, and manages the browser lifecycle

  • browser.js: Simple wrapper around Playwright that provides essential automation methods

  • tools.js: Defines all 16 MCP tools with their schemas and handlers

  • test.js: Basic test suite to verify core functionality

  • .gitignore: Minimal git ignore rules for essential exclusions

Architecture

The project follows a simple, modular architecture:

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   MCP Client    │    │   index.js      │    │   browser.js    │
│   (VS Code,     │◄──►│   (MCP Server)  │◄──►│   (Playwright)  │
│   Cursor, etc.) │    │                 │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌─────────────────┐
                       │   tools.js      │
                       │   (16 MCP Tools)│
                       └─────────────────┘

Component Interactions

  1. MCP Client sends requests to the server via STDIO transport

  2. index.js receives MCP protocol messages and routes them to appropriate handlers

  3. tools.js defines the available tools and their schemas

  4. browser.js executes the actual automation commands

Key Design Principles

  • Single Responsibility: Each file has a clear, focused purpose

  • Minimal Dependencies: Only 3 essential packages

  • Command Line Only: Simple CLI options, no config files

  • Essential Tools Only: 16 tools covering 80% of use cases

  • Error Handling: Clear error messages and graceful failures

Quick Start

Installation

Option 1: Standalone Installation

npm install https://github.com/zypin-testing/zypin-mcp
npm install -g https://github.com/zypin-testing/zypin-core

Basic Usage

Standalone Usage

Add to your MCP client configuration:

{
  "mcpServers": {
    "zypin-browser": {
      "command": "npx",
      "args": ["https://github.com/zypin-testing/zypin-mcp"]
    }
  }
}

Integrated Usage (Zypin Core)

# Start MCP server through Zypin CLI
zypin mcp

# With options
zypin mcp --browser firefox --headed

Benefits of Zypin Core Integration:

  • ✅ Unified CLI interface

  • ✅ Automatic updates with zypin update

  • ✅ Integrated with testing workflow

  • ✅ Consistent command structure

Command Line Options

Standalone Usage

# Basic usage
npx zypin-mcp

# With options
npx zypin-mcp --browser firefox --headed --width 1920 --height 1080

Integrated Usage (Zypin Core)

# Basic usage
zypin mcp

# With options
zypin mcp --browser firefox --headed --width 1920 --height 1080

Available Options:

  • --browser <browser>: Browser to use (chromium, firefox, webkit) - default: chromium

  • --headless: Run in headless mode (default)

  • --headed: Run in headed mode (overrides headless)

  • --width <width>: Viewport width - default: 1280

  • --height <height>: Viewport height - default: 720

  • --timeout <timeout>: Default timeout in milliseconds - default: 30000

Default Settings:

  • Browser: chromium

  • Mode: headless

  • Viewport: 1280x720

  • Timeout: 30000ms

Available Tools

Navigation

  • navigate(url) - Go to a URL

  • go_back() - Go back to previous page

  • go_forward() - Go forward to next page

  • reload() - Reload current page

Interaction

  • click(selector) - Click an element

  • type(selector, text) - Type text into input field

  • select(selector, value) - Select option from dropdown

  • fill_form(fields) - Fill multiple form fields

Information

  • snapshot() - Get page snapshot with interactive elements

  • screenshot(filename?) - Take screenshot

  • get_text(selector) - Get text from element

  • get_url() - Get current URL

  • get_title() - Get page title

Utilities

  • wait_for(selector, timeout?) - Wait for element to appear

  • evaluate(script) - Run JavaScript on page

  • close() - Close browser

Integration with Zypin Core

Zypin MCP is now integrated into the Zypin Core framework, providing a unified testing and automation experience.

Complete Testing Workflow

# 1. Create a test project
zypin create-project my-tests --template selenium/basic-webdriver
cd my-tests
npm install

# 2. Start testing services
zypin start --packages selenium

# 3. Run traditional tests
zypin run --input test.js

# 4. Start MCP server for testing automation
zypin mcp --browser chromium --headed

# 5. Update everything
zypin update

MCP Client Configuration

When using Zypin Core integration, configure your MCP client to use the integrated command:

{
  "mcpServers": {
    "zypin-browser": {
      "command": "zypin",
      "args": ["mcp", "--browser", "chromium"]
    }
  }
}

Benefits of Integration

  • Unified Interface: All testing tools accessible through one CLI

  • Automatic Updates: MCP server updates with zypin update

  • Consistent Workflow: Same command patterns across all tools

  • Integrated Monitoring: Health checks and process management

  • Template Support: MCP projects can be created from templates

Examples

Basic Navigation

// Navigate to a website
await navigate({ url: "https://example.com" });

// Take a screenshot
await screenshot({ filename: "homepage.png" });

// Get page information
const info = await snapshot();
console.log(info.title, info.url);

Form Interaction

// Fill a login form
await fill_form({
  "#username": "myuser",
  "#password": "mypass"
});

// Click submit button
await click({ selector: "#login-button" });

// Wait for redirect
await wait_for({ selector: ".dashboard" });

Element Interaction

// Click a link
await click({ selector: "a[href='/products']" });

// Type in search box
await type({ 
  selector: "#search-input", 
  text: "laptop" 
});

// Select from dropdown
await select({ 
  selector: "#category", 
  value: "electronics" 
});

Comparison with Full Playwright MCP

Feature

Zypin MCP

Full Playwright MCP

Bundle Size

~10MB

~50MB

Dependencies

3

15+

Configuration

CLI only

50+ options

Tools

15 essential

30+ advanced

Setup Time

2 minutes

10+ minutes

Use Cases

80% of scenarios

100% of scenarios

Requirements

  • Node.js 18 or newer

  • MCP-compatible client (VS Code, Cursor, Claude Desktop, etc.)

License

MIT

Development

Running Tests

# Run basic functionality tests
node test.js

# Test MCP server startup
npx https://github.com/zypin-testing/zypin-mcp --help

Adding New Tools

To add a new tool:

  1. Add the tool definition to tools.js:

{
  name: 'new_tool',
  description: 'Description of the new tool',
  inputSchema: {
    type: 'object',
    properties: {
      param: { type: 'string', description: 'Parameter description' }
    },
    required: ['param']
  },
  handler: async ({ param }) => {
    // Tool implementation
    return { success: true, message: 'Tool executed' };
  }
}
  1. Add corresponding method to browser.js if needed

  2. Update this README with the new tool documentation

Project Metrics

  • Lines of Code: ~500 lines total

  • Files: 6 core files

  • Dependencies: 3 packages

  • Bundle Size: ~10MB

  • Startup Time: < 2 seconds

Contributing

This is a simplified version focused on essential functionality. For advanced features, consider using the full Playwright MCP server.

Guidelines

  • Keep it simple - avoid adding complexity unless absolutely necessary

  • Focus on the 80% use case - don't add features for edge cases

  • Maintain the single-file architecture for each component

  • Test any changes with the included test suite

Troubleshooting

Common Issues

Browser not found error:

# Install Playwright browsers
npx playwright install chromium

MCP client connection issues:

  • Ensure the server starts without errors: npx https://github.com/zypin-testing/zypin-mcp --help

  • Check that your MCP client configuration is correct

  • Verify the server is running in the correct directory

Tool execution errors:

  • Check that selectors are valid CSS selectors

  • Ensure elements exist on the page before interacting

  • Use wait_for tool to wait for elements to appear

Command line issues:

  • Check that browser type is one of: chromium, firefox, webkit

  • Ensure viewport dimensions are positive numbers

  • Verify command line arguments are valid

Debug Mode

Run with debug output:

# See server startup messages
npx https://github.com/zypin-testing/zypin-mcp 2>&1 | tee server.log

Getting Help

Available Tools

16 tools
clickC

Click an element on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element to click

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Click an element' implies a user interaction that may trigger navigation or state changes, but it doesn't describe what happens after clicking (e.g., page reload, new window), error conditions, or performance considerations. 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 with zero wasted words. It's front-loaded with the core action and target, making it immediately scannable and appropriately sized for a simple tool.

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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., success/failure, new page state), error handling, or behavioral nuances like waiting for elements to be clickable. Given the complexity of web interaction, more context is needed.

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?

Schema description coverage is 100%, with the single parameter 'selector' clearly documented as 'CSS selector for the element to click'. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline for high schema coverage.

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

Purpose4/5

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

The description 'Click an element on the page' clearly states the action (click) and target (element on page), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'select' or 'type' which also interact with page elements, so it doesn't reach the highest score.

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 like 'select' or 'type' from the sibling list. It doesn't mention prerequisites (e.g., needing an element to be clickable) or exclusions, leaving the agent with minimal context for tool selection.

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

closeB

Close the browser

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. 'Close the browser' implies a destructive action that terminates the browser session, but it doesn't specify whether this is reversible, what happens to open tabs/data, or if it requires confirmation. For a potentially destructive tool with zero annotation coverage, this is a significant gap in transparency.

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 ('Close the browser') with zero waste. It's front-loaded and directly communicates the core action without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does, but for a destructive action like closing a browser, more context on implications (e.g., session loss, irreversibility) would improve completeness. The lack of output schema isn't an issue here, as the action likely has no return value.

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 tool has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, so a baseline of 4 is appropriate. No additional value is required or possible beyond stating the tool's purpose.

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

Purpose4/5

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

The description 'Close the browser' clearly states the action (close) and target resource (browser). It's specific and unambiguous, though it doesn't differentiate from sibling tools since no other tools perform browser closure. It avoids tautology by not just repeating the tool name 'close'.

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 doesn't mention prerequisites (e.g., after completing tasks), consequences (e.g., losing session state), or when to avoid it (e.g., during active operations). With sibling tools like 'navigate' and 'get_url', some context on usage timing would be helpful.

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

evaluateC

Run JavaScript code on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesJavaScript code to execute

TDQS

C2.9/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 full burden. 'Run JavaScript code' implies execution capability but doesn't disclose critical behavioral traits: whether it runs in page context, returns results, handles errors, has security restrictions, affects page state, or requires specific permissions. This is inadequate for a tool that executes arbitrary code.

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 with zero wasted words. It's appropriately sized for a tool with one parameter and gets straight to the point without unnecessary elaboration.

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 executing JavaScript code on a page (potentially destructive, security-sensitive) with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after execution, whether results are returned, error handling, or safety considerations - critical gaps for this type of tool.

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?

Schema description coverage is 100% with the single parameter 'script' documented as 'JavaScript code to execute'. The description adds no additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description 'Run JavaScript code on the page' clearly states the action (run) and target (JavaScript code on page). It's specific enough to understand the basic function, though it doesn't explicitly differentiate from sibling tools like 'get_text' or 'select' which might also involve page interaction.

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?

No guidance is provided about when to use this tool versus alternatives. With siblings like 'get_text', 'click', and 'type', there's no indication whether this is for complex page manipulation, debugging, or automation tasks that other tools can't handle.

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

fill_formC

Fill multiple form fields at once

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesObject with selector as key and value as text to fill

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Fill multiple form fields at once' implies a write/mutation operation, but doesn't disclose important behavioral traits like whether this requires the form to be in a particular state, what happens if fields don't exist, whether it triggers form submission, or any error handling. The description is too minimal 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 extremely concise at just 6 words, with zero wasted language. Every word contributes to understanding the tool's purpose, making it front-loaded and efficient despite its brevity.

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?

For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after filling (e.g., does it return success/failure, what errors might occur), doesn't provide context about the form interaction lifecycle, and leaves critical behavioral questions unanswered given the tool's complexity.

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?

Schema description coverage is 100%, with the schema clearly documenting that 'fields' is an object mapping selectors to text values. The description adds minimal value beyond this by mentioning 'multiple form fields' which aligns with the object structure, but doesn't provide additional context about selector formats, validation, or practical examples.

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

Purpose4/5

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

The description clearly states the action ('fill') and target ('multiple form fields at once'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'type' or 'select' that might also interact with form elements, which prevents 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 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 like 'type' or 'select' from the sibling list. It mentions 'multiple form fields at once' which implies a batch operation, but doesn't explicitly state when this is preferred over individual field interactions or what prerequisites might exist.

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

get_textC

Get text content from an element

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element

TDQS

C2.9/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. While 'Get text content' implies a read-only operation, it doesn't specify what happens if the selector doesn't match (e.g., error, null return), whether it waits for the element to exist, or the format of returned text. For a tool with no annotation coverage, this leaves significant behavioral gaps.

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 with zero wasted words. It's front-loaded with the core purpose ('Get text content from an element'), making it immediately scannable. Every word earns its place, and there's no redundant or verbose phrasing.

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 tool's moderate complexity (interacting with web elements) and lack of annotations and output schema, the description is insufficient. It doesn't explain return values (e.g., string format, error cases), behavioral expectations, or integration with sibling tools like wait_for. For a tool that likely operates in a browser automation context, more context is needed for effective use.

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?

Schema description coverage is 100%, with the single parameter 'selector' clearly documented as 'CSS selector for the element' in the schema. The description adds no additional parameter information beyond what the schema provides, such as examples of valid selectors or constraints. With high schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Get text content from an element' clearly states the verb ('Get') and resource ('text content from an element'), making the tool's function immediately understandable. It distinguishes from siblings like get_title (gets page title) and get_url (gets page URL) by specifying element text extraction. However, it doesn't explicitly mention it's for web page elements, which could be inferred from sibling tools but isn't stated.

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. There's no mention of prerequisites (e.g., needing a page to be loaded), comparison with similar tools like get_title or snapshot, or when not to use it (e.g., for non-text elements). The agent must infer usage from the tool name and sibling context alone.

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

get_titleB

Get the current page title

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the basic function without mentioning whether this requires page loading, has latency considerations, returns structured data, or handles errors. For a tool with zero annotation coverage, this is insufficient.

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 communicates the core function without any wasted words. It's appropriately sized for a simple tool and front-loads the essential information.

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 lack of annotations and output schema, the description should provide more context about what the tool returns, error conditions, or dependencies. For a browser automation tool in a set with many siblings, the minimal description leaves significant gaps in understanding how to use it effectively.

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 tool has zero parameters with 100% schema description coverage, so the schema already fully documents the input requirements. The description appropriately doesn't add parameter information, which is correct for a parameterless tool, earning a baseline score of 4.

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

Purpose4/5

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

The description clearly states the action ('Get') and target resource ('the current page title'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_text' or 'get_url' that also retrieve page information, which prevents 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 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 like 'get_text' or 'get_url', nor does it mention any prerequisites or context for usage. It simply states what the tool does without addressing when it's appropriate.

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

get_urlB

Get the current page URL

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 what the tool does but lacks details on behavior, such as whether it returns the full URL with query parameters, if it works only on certain page states, or if there are any latency or error-handling aspects. This is a significant gap for a tool with zero annotation coverage.

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, clear sentence with no wasted words. It is front-loaded with the core action ('Get the current page URL'), making it highly efficient and easy to parse. Every word earns its place, achieving optimal conciseness.

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 lack of annotations and output schema, the description is incomplete. It doesn't specify what the return value looks like (e.g., string format, error cases) or behavioral constraints, which are crucial for an agent to use the tool effectively. For a simple tool, more context is needed to compensate for the missing structured data.

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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately avoids unnecessary details. A baseline of 4 is applied as per the rules for zero-parameter tools, since no compensation is needed.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('current page URL'), making the purpose immediately understandable. It distinguishes from siblings like get_title (which retrieves the page title) and get_text (which retrieves text content). However, it doesn't specify the exact scope or format of the URL returned, 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 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. For example, it doesn't mention if this should be used for navigation verification, logging, or other contexts, nor does it reference sibling tools like navigate or get_title that might be used in related scenarios. This leaves the agent without explicit usage context.

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

go_backB

Go back to the previous page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Go back to the previous page' implies navigation but doesn't specify whether this requires an active browser session, what happens if there's no history, whether it waits for page load, or what the response looks like. This leaves significant behavioral gaps for a navigation 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 with zero waste. It's appropriately sized for a simple navigation tool and front-loads the core functionality immediately. Every word earns its place in conveying the essential action.

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?

For a navigation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like what constitutes success/failure, whether it returns the new URL, or what happens in edge cases (no history, same page). Given the sibling tools include various navigation and interaction functions, more context about this tool's specific role would be helpful.

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 tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters, maintaining focus on the tool's purpose. Baseline for zero parameters is 4, as there's no parameter information to add beyond what's already covered.

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

Purpose4/5

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

The description clearly states the action ('go back') and target ('previous page'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'go_forward' or 'navigate' beyond the basic directional difference, which prevents 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 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 like 'go_forward', 'navigate', or 'reload'. It doesn't specify prerequisites (e.g., requires a browser session with history) or contextual constraints, leaving the agent to infer appropriate usage scenarios.

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

go_forwardB

Go forward to the next page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'go forward' implies navigation, it doesn't specify what happens if there's no forward page (error behavior), whether this affects page state, or what the expected outcome is. The description lacks crucial behavioral context for a navigation 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 with zero wasted words. It's perfectly front-loaded with the core action and target, making it immediately understandable without any unnecessary elaboration.

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?

For a navigation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'next page' means in context (browser history navigation), what happens on success/failure, or what the agent should expect after invocation. Given the complexity of navigation operations, more context is needed.

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 tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, which is correct for this context.

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

Purpose4/5

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

The description clearly states the action ('go forward') and target ('to the next page'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like 'go_back' or 'navigate', which would require mentioning backward navigation or URL-based navigation respectively.

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 like 'go_back', 'navigate', or 'reload'. There's no mention of prerequisites (e.g., needing to be on a page with forward navigation available) or typical usage contexts beyond the basic action.

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

reloadB

Reload the current page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose important behavioral traits like whether this causes page state loss, triggers network requests, requires page load completion, or has any side effects. 'Reload' implies mutation but lacks safety/performance context.

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 with zero wasted words. It's appropriately sized for a simple action and front-loads the essential information immediately.

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?

For a browser interaction tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after reloading (page load state, potential errors, completion signals) or how this differs from other navigation tools. Given the complexity of browser automation, more context is needed.

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 tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the empty parameter set. The description appropriately doesn't add parameter information beyond what's already covered, earning a baseline score of 4 for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the action ('Reload') and target ('the current page'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'navigate' or 'go_back' which also affect page state, so it doesn't reach the highest score.

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 like 'navigate' (for loading new URLs) or 'go_back'/'go_forward' (for browser history navigation). There's no mention of context, prerequisites, or exclusions for using this tool.

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

screenshotC

Take a screenshot of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNoOptional filename for the screenshot

TDQS

C2.9/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. It states the action but does not disclose behavioral traits like whether it requires specific permissions, if it captures the full page or viewport, error handling, or output format. This is a significant gap for a mutation-like 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, clear sentence with zero waste. It is appropriately sized and front-loaded, efficiently conveying the core purpose without unnecessary details.

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 lack of annotations and output schema, the description is incomplete. It does not address key aspects like what the screenshot returns (e.g., image data, file path), error conditions, or dependencies on page state, which are crucial for a tool with potential side effects.

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 input schema has 100% description coverage, documenting the optional 'filename' parameter. The description adds no additional meaning beyond the schema, such as file format or naming conventions, so it meets the baseline of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('take a screenshot') and the target ('current page'), which is specific and unambiguous. However, it does not distinguish this tool from the 'snapshot' sibling tool, which might have overlapping functionality, so it misses full differentiation.

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 like 'snapshot' or other sibling tools. It lacks context about prerequisites, such as needing a page to be loaded, or exclusions, leaving the agent to infer usage.

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

selectC

Select an option from a dropdown

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the select element
valueYesValue to select

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits like whether it waits for page loads, handles dynamic dropdowns, requires the element to be visible, or what happens on failure. 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 with zero wasted words. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after selection (e.g., page changes, validation), error conditions, or interaction with other tools, leaving the agent with incomplete context.

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?

Schema description coverage is 100%, so the schema already documents both parameters ('selector' and 'value') adequately. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the action ('select an option') and target ('from a dropdown'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'click' or 'fill_form' that might also interact with form elements, missing full sibling distinction.

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?

No guidance is provided on when to use this tool versus alternatives like 'click' for buttons or 'fill_form' for other form inputs. The description only states what it does, not when it's appropriate or what prerequisites might exist.

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

snapshotB

Get a snapshot of the current page with interactive elements

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 mentions capturing interactive elements, but doesn't clarify what 'snapshot' entails (e.g., is it a visual image, DOM state, or something else?), whether it requires page stability, or what the output format is. This leaves significant gaps for a tool that likely involves page interaction.

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 directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.

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 page snapshots with interactive elements, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'snapshot' means in this context, how interactive elements are handled, or what the agent can expect as a result, leaving critical behavioral aspects unclear.

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 tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it appropriately avoids mentioning any. This meets the baseline for a parameterless tool.

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

Purpose4/5

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

The description clearly states the action ('Get a snapshot') and target ('current page'), with the additional detail 'with interactive elements' that distinguishes it from a basic screenshot. However, it doesn't explicitly differentiate from the 'screenshot' sibling tool, which might capture similar visual content.

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?

No guidance is provided on when to use this tool versus alternatives like 'screenshot' or 'get_text'. The description implies it captures interactive elements, but doesn't specify scenarios where this is preferred or when other tools might be more appropriate.

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

typeC

Type text into an input field

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the input field
textYesText to type

TDQS

C2.9/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 mentions typing text but doesn't specify whether this simulates keystrokes, triggers events, requires the field to be interactable, or handles errors like invalid selectors. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 with zero waste, front-loading the core action. It's appropriately sized for a simple tool, making it easy for an agent to parse quickly.

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 tool's mutation nature (typing implies changing state), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like error handling, success conditions, or interaction with page state, which are crucial for an agent to use this tool correctly in a browser automation context.

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?

Schema description coverage is 100%, with both parameters ('selector' and 'text') clearly documented in the schema. The description adds no additional meaning beyond what the schema provides, such as examples or constraints on selector syntax. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Type text') and target ('into an input field'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'fill_form' or 'select', which might have overlapping functionality for interacting with form elements.

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 like 'fill_form' or 'select' from the sibling list. It lacks context about prerequisites (e.g., whether the input field must be visible or focused) or exclusions, leaving the agent to infer usage scenarios.

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

wait_forC

Wait for an element to appear on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for the element to wait for
timeoutNoTimeout in milliseconds (default: 5000)

TDQS

C2.9/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 lacks details on what happens on success (e.g., returns element, continues execution) or failure (e.g., timeout error, retry behavior), and doesn't mention side effects like blocking execution or resource usage.

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 directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized, with every word contributing to understanding.

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 no annotations and no output schema, the description is incomplete for a tool that likely involves waiting behavior and potential errors. It doesn't explain return values, error conditions, or operational context, leaving gaps for an AI agent to infer usage.

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?

Schema description coverage is 100%, so the schema already documents both parameters ('selector' and 'timeout') with clear descriptions. The description adds no additional meaning beyond implying the tool uses these parameters, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('wait for') and resource ('an element to appear on the page'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_text' or 'select', which might also involve waiting for elements, though the core action is distinct.

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 doesn't mention scenarios like waiting for dynamic content, handling timeouts, or how it relates to siblings like 'get_text' (which might implicitly wait) or 'navigate' (which could involve waiting for page loads).

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes for browser automation tasks, with minimal overlap. However, 'snapshot' and 'screenshot' could potentially be confused as both capture page states, though their descriptions differentiate them (screenshot is visual, snapshot includes interactive elements).

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb-action naming (e.g., 'click', 'navigate', 'get_text'). The naming convention is uniform throughout the set, making it easy to understand each tool's purpose at a glance.

Tool Count5/5

16 tools is well-scoped for a browser automation server, covering essential navigation, interaction, data extraction, and page state operations. Each tool serves a distinct purpose that earns its place in the set without feeling excessive or insufficient.

Completeness4/5

The toolset provides comprehensive coverage for core browser automation tasks including navigation, interaction, form handling, and page inspection. Minor gaps exist, such as no explicit tool for handling cookies, managing windows/tabs, or executing more complex user interactions like drag-and-drop, but agents can work around these with existing tools.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

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/zypin-testing/zypin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server