ghostinspector-mcp-server

ghostinspector-mcp-server

Enables natural language interaction with Ghost Inspector for managing automated browser tests, suites, folders, and execution results.

Category
Visit Server

README

Ghost Inspector MCP Server

An MCP (Model Context Protocol) server for interacting with Ghost Inspector, an automated browser testing platform.

Features

This MCP server provides tools to:

  • Hierarchy & Modules: View complete folder/suite structure, list reusable modules, and analyze module usage
  • Tests: List, view, execute, create, duplicate, and manage test results
  • Suites: List, view, execute suites, import tests, and manage suite results
  • Folders: Browse folder structure and list suites within folders
  • Organizations: Monitor currently running tests

Installation

Using pip

pip install -e /path/to/ghostinspector-mcp-server

Using uv (recommended)

uv pip install -e /path/to/ghostinspector-mcp-server

Configuration

API Key

Set your Ghost Inspector API key as an environment variable:

export GHOST_INSPECTOR_API_KEY=your_api_key_here

You can find your API key at: https://app.ghostinspector.com/account

Claude Code Configuration

Add the server to your Claude Code MCP settings. Edit your ~/.claude/claude_desktop_config.json (or the appropriate config file):

{
  "mcpServers": {
    "ghostinspector": {
      "command": "ghostinspector-mcp",
      "env": {
        "GHOST_INSPECTOR_API_KEY": "your_api_key_here"
      }
    }
  }
}

Or if using uv:

{
  "mcpServers": {
    "ghostinspector": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ghostinspector-mcp-server", "ghostinspector-mcp"],
      "env": {
        "GHOST_INSPECTOR_API_KEY": "your_api_key_here"
      }
    }
  }
}

Available Tools

Hierarchy & Module Tools

Tool Description
get_hierarchy Get complete folder/suite structure in a single call
list_modules List all reusable modules (tests with importOnly=true)
get_module_usage Find all tests that import a specific module

Test Tools

Tool Description
list_tests List all tests in your account (includes importOnly flag)
get_test Get detailed information about a specific test
execute_test Execute a test with optional parameters (browser, region, viewport, start URL)
duplicate_test Create a copy of an existing test
execute_on_demand_test Run a test from JSON definition without saving it permanently
list_test_results List execution history for a test
get_test_result Get detailed result information
cancel_test_result Cancel a running test

Suite Tools

Tool Description
list_suites List all test suites (includes resolved folder names)
get_suite Get suite details
execute_suite Execute all tests in a suite
import_test Create a new test in a suite from JSON definition
list_suite_tests List tests within a suite (includes importOnly flag)
list_suite_results List execution history for a suite
get_suite_result Get detailed suite result
list_suite_result_tests List individual test results from a suite run
cancel_suite_result Cancel a running suite

Folder Tools

Tool Description
list_folders List all folders
get_folder Get folder details
list_folder_suites List suites in a folder

Organization Tools

Tool Description
get_running_tests Get currently running tests for an organization

Usage Examples

Once configured, you can use natural language to interact with Ghost Inspector:

  • "List all my Ghost Inspector tests"
  • "Run the test with ID abc123"
  • "Show me the results for suite xyz789"
  • "What tests are currently running?"
  • "Execute the login test suite on Firefox"
  • "Create a test that clicks the login button and verifies the dashboard loads"
  • "Show me the folder and suite hierarchy"
  • "List all reusable modules"
  • "What tests use the login module?"

Understanding Modules

Ghost Inspector supports reusable test modules - tests that are designed to be imported into other tests rather than run independently. Common examples include login flows, navigation sequences, and setup/teardown procedures.

Identifying Modules

Tests marked with importOnly=true are modules. They:

  • Won't execute when running a suite (they're skipped)
  • Are meant to be imported into other tests using the "Import steps from test" step
  • Allow you to maintain common flows in one place

Module Tools

Tool Use Case
list_modules See all reusable modules grouped by suite
get_module_usage Impact analysis before modifying a module
list_tests / list_suite_tests Check importOnly flag to identify modules

Creating Tests

You can create tests programmatically using either import_test (saves permanently) or execute_on_demand_test (runs without saving).

Test Step Format

Steps are defined as a JSON array. Each step has:

  • command: The action to perform
  • target: CSS selector or element identifier
  • value: (optional) Value for the action

Available Commands

Command Description Example
click Click an element {"command": "click", "target": ".submit-btn"}
type Type text into an input {"command": "type", "target": "#email", "value": "test@example.com"}
open Navigate to a URL {"command": "open", "target": "https://example.com/page"}
assertTextPresent Verify text exists {"command": "assertTextPresent", "target": "body", "value": "Welcome"}
assertElementPresent Verify element exists {"command": "assertElementPresent", "target": ".success-message"}
assertElementVisible Verify element is visible {"command": "assertElementVisible", "target": "#modal"}
extract Extract text to a variable {"command": "extract", "target": ".user-id", "value": "userId"}
eval Execute JavaScript {"command": "eval", "value": "document.title"}
pause Wait for milliseconds {"command": "pause", "value": "2000"}
screenshot Take a screenshot {"command": "screenshot"}
mouseOver Hover over element {"command": "mouseOver", "target": ".dropdown"}
keypress Press keyboard key {"command": "keypress", "target": "#input", "value": "Enter"}

Example: Create a Login Test

Create a test in suite abc123 called "Login Test" that:
1. Goes to https://example.com/login
2. Types "user@example.com" into #email
3. Types "password123" into #password
4. Clicks the .login-button
5. Verifies "Dashboard" appears on the page

Development

Setup

# Clone the repository
cd ghostinspector-mcp-server

# Install dependencies
uv pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black src/
ruff check src/

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured