Skip to main content
Glama

操り人形師

Puppeteerを用いたブラウザ自動化機能を提供するモデルコンテキストプロトコル(LLM)サーバー。このサーバーにより、LLMはWebページとのインタラクション、スクリーンショットの取得、そして実際のブラウザ環境でのJavaScript実行が可能になります。

コンポーネント

ツール

  • 操り人形師ナビゲート

    • ブラウザで任意のURLに移動する

    • 入力: url (文字列)

  • 操り人形師のスクリーンショット

    • ページ全体または特定の要素のスクリーンショットをキャプチャします

    • 入力:

      • name (文字列、必須): スクリーンショットの名前

      • selector (文字列、オプション):スクリーンショットを撮る要素のCSSセレクター

      • width (数値、オプション、デフォルト:800):スクリーンショットの幅

      • height (数値、オプション、デフォルト:600):スクリーンショットの高さ

  • 操り人形師クリック

    • ページ上の要素をクリック

    • 入力: selector (文字列): クリックする要素の CSS セレクター

  • 操り人形師_hover

    • ページ上の要素をホバーする

    • 入力: selector (文字列): ホバーする要素の CSS セレクター

  • 操り人形師の塗りつぶし

    • 入力フィールドに記入してください

    • 入力:

      • selector (文字列):入力フィールドのCSSセレクター

      • value (文字列): 入力する値

  • 操り人形師の選択

    • SELECTタグで要素を選択する

    • 入力:

      • selector (文字列): 選択する要素の CSS セレクター

      • value (文字列): 選択する値

  • 操り人形師の評価

    • ブラウザコンソールでJavaScriptを実行する

    • 入力: script (文字列): 実行するJavaScriptコード

リソース

サーバーは、次の 2 種類のリソースへのアクセスを提供します。

  1. コンソールログ( console://logs )

    • ブラウザコンソールのテキスト形式の出力

    • ブラウザからのすべてのコンソールメッセージが含まれます

  2. スクリーンショット( screenshot://<name> )

    • キャプチャしたスクリーンショットのPNG画像

    • キャプチャ時に指定したスクリーンショット名からアクセスできます

Related MCP server: Puppeteer MCP Server

主な特徴

  • ブラウザ自動化

  • コンソールログ監視

  • スクリーンショット機能

  • JavaScript実行

  • 基本的なウェブインタラクション(ナビゲーション、クリック、フォームの入力)

Puppeteer Serverを使用するための設定

Puppeter サーバーを使用するための Claude Desktop の構成は次のとおりです。

ドッカー

注: docker 実装ではヘッドレス Chromium が使用されますが、NPX バージョンではブラウザー ウィンドウが開きます。

{
  "mcpServers": {
    "puppeteer": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
    }
  }
}

NPX

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
    }
  }
}

建てる

Dockerビルド:

docker build -t mcp/puppeteer -f src/puppeteer/Dockerfile .

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

Available Tools

4 tools
make_http_requestC

Make an HTTP request with curl

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesBody to include in the request
headersYesHeaders to include in the request
typeYesType of the request. GET, POST, PUT, DELETE
urlYesUrl to make the request to

TDQS

C2.7/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 mentions 'with curl', hinting at underlying implementation, but fails to disclose critical traits: whether it handles authentication, rate limits, error responses, timeouts, or what the return format looks like. For a tool making HTTP requests, 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/5

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

The description is extremely concise with a single sentence, 'Make an HTTP request with curl', which is front-loaded and wastes no words. Every part of the sentence contributes to understanding the tool's basic function, making it efficient and well-structured.

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 making HTTP requests, no annotations, no output schema, and 4 parameters, the description is incomplete. It doesn't explain what the tool returns, how errors are handled, or any behavioral nuances. For a tool with this functionality, more context is needed to be fully helpful to an AI agent.

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, clearly documenting all 4 parameters (body, headers, type, url). The description adds no additional meaning beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.

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

Purpose3/5

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

The description states the tool's purpose as 'Make an HTTP request with curl', which is clear but vague. It specifies the verb ('Make') and resource ('HTTP request'), but lacks specificity about what curl entails or how it differs from sibling tools like puppeteer_navigate or semantic_search_requests. It doesn't distinguish itself from alternatives, leaving ambiguity about its scope.

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. With siblings like puppeteer_navigate (for browser navigation) and semantic_search_requests (for search-related requests), there's no indication of appropriate contexts, exclusions, or prerequisites. Usage is implied only by the tool name, not explained.

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

puppeteer_navigateB

Navigate to a URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the tool waits for page load, handles errors, or returns navigation status. For a navigation action, these details are important.

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, concise sentence that communicates the core functionality without redundancy. It is appropriately sized and front-loaded.

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 and the absence of an output schema, the description is minimally adequate but lacks completeness. It does not mention return values, timeout behavior, or prerequisites (e.g., an active page).

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 description implies that the 'url' parameter is the target URL for navigation, adding basic meaning beyond the schema. However, with 0% schema description coverage, more detail (e.g., format, allowed protocols) would be beneficial.

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 'Navigate to a URL' clearly states the action (navigate) and the resource (URL). It distinguishes from sibling tools like puppeteer_screenshot or puppeteer_click, which perform different actions.

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 such as puppeteer_connect_active_tab. The description lacks context for appropriate usage scenarios.

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

puppeteer_page_historyB

Get the history of visited URLs, most recent urls first

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 states what the tool does but lacks critical details: whether it requires an active Puppeteer session, if it returns a list or object, potential errors (e.g., no page open), or performance implications. This is inadequate 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, efficient sentence with zero waste. It front-loads the core action ('Get the history') and adds a useful ordering detail ('most recent urls first'). 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.

Completeness2/5

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

Given no annotations, no output schema, and the tool's potential complexity (interacting with browser history), the description is incomplete. It doesn't cover return format, error conditions, or dependencies (e.g., needing a page object). For a tool with rich behavioral context needs, this is insufficient.

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% (empty schema). The description doesn't need to explain parameters, so it meets the baseline of 4 for parameter-less tools. No additional parameter context is required or provided.

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 ('Get') and resource ('history of visited URLs'), and specifies ordering ('most recent urls first'). It doesn't explicitly differentiate from sibling tools like 'puppeteer_navigate' or 'make_http_request', but the focus on history retrieval is distinct enough for a 4.

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., needing an active page), exclusions, or compare it to siblings like 'semantic_search_requests'. This leaves the agent without 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.

semantic_search_requestsC

Semantically search for requests that occurred within a page URL. Returns the top 10 results.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_urlYesThe page within which to search for requests
queryYesYour search request. Make this specific and detailed to get the best results

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 mentions the tool returns 'top 10 results,' which is useful, but lacks critical details: it doesn't specify what 'requests' refer to (e.g., HTTP requests, user requests), how semantic search works, whether it's read-only or has side effects, or any rate limits or permissions required. This is inadequate for a tool with no 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 extremely concise and front-loaded: two sentences that directly state the tool's function and output. Every word earns its place, with no redundant or vague phrasing, making it efficient for an agent to parse.

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 semantic search tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'requests' are, how results are ranked or formatted, or any error conditions. Without this context, an agent might struggle to use the tool correctly or interpret outputs.

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 ('page_url' and 'query') with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints. Baseline 3 is appropriate when the schema handles parameter documentation effectively.

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: 'Semantically search for requests that occurred within a page URL.' It specifies the verb (search), resource (requests), and scope (within a page URL). However, it doesn't explicitly differentiate from sibling tools like 'make_http_request' or 'puppeteer_page_history', 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. It doesn't mention sibling tools like 'make_http_request' (for making requests) or 'puppeteer_navigate' (for page navigation), nor does it specify prerequisites or exclusions. This leaves the agent without 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.

Tool Schema Changelog

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

  1. 4 tool updatesv1.0.0
    • First observedmake_http_request
    • First observedpuppeteer_navigate
    • First observedpuppeteer_page_history
    • First observedsemantic_search_requests

TDQS

C2.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: make_http_request performs general HTTP requests, puppeteer_navigate navigates to URLs in a browser context, puppeteer_page_history retrieves navigation history, and semantic_search_requests searches within page requests. There is no overlap or ambiguity between these functions.

Naming Consistency3/5

The naming is mixed with no consistent pattern: make_http_request uses verb_noun format, puppeteer_navigate and puppeteer_page_history use a prefix_noun format, and semantic_search_requests uses an adjective_noun_noun format. While readable, the conventions vary without a predictable structure.

Tool Count3/5

With only 4 tools, the count feels thin for a Puppeteer server, which typically handles browser automation tasks like clicking, typing, or screenshotting. The tools cover basic navigation and HTTP requests but lack broader automation capabilities, making the scope borderline under-scoped.

Completeness2/5

For a Puppeteer server, there are significant gaps in the tool surface. Missing are core operations like interacting with page elements (e.g., click, type), evaluating scripts, taking screenshots, or managing browser contexts. The tools provided focus narrowly on navigation and HTTP requests, leaving major automation workflows uncovered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to perform browser automation tasks including web scraping, taking screenshots, and executing JavaScript using Playwright. It facilitates real-time interaction with web pages and the generation of automated test code.
    11 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to perform browser automation including web navigation, element interaction, and screenshot capture using Puppeteer. It provides capabilities for executing JavaScript in the browser and monitoring console logs for debugging and data extraction.
    24,202 npm
    MIT