Scraper Maintenance MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Scraper Maintenance MCPInspect the 'Add to Cart' button on example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Scraper Maintenance MCP
A comprehensive Model Context Protocol (MCP) server for automating web scraper maintenance through intelligent browser inspection, selector generation, and code updates.
π Project Structure
mcp/
βββ src/ # TypeScript source files
β βββ server.ts # Main MCP server implementation
β βββ browser-manager.ts # Browser automation and management
β βββ selector-generator.ts # Selector generation and scoring
β βββ types.ts # Type definitions
βββ dist/ # Compiled JavaScript files
β βββ server.js # Main MCP server (executable)
β βββ browser-manager.js # Browser automation
β βββ selector-generator.js # Selector intelligence
β βββ types.js # Type definitions
βββ config/ # Configuration files
β βββ test-config.json # Test configuration
β βββ claude-desktop-config.json # Claude Desktop setup
β βββ *.json # Various scraper configurations
βββ examples/ # Usage examples and documentation
βββ docs/ # Documentation files
βββ scripts/ # Build and utility scripts
βββ package.json # Project configuration
βββ tsconfig.json # TypeScript configurationRelated MCP server: Selenium MCP Server
π Quick Start
1. Install Dependencies
cd mcp
npm install2. Build the Project
npm run build3. Run the Server
npm startπ οΈ Available MCP Tools
Configuration Management
load_scraper_config- Load scraper configuration filesupdate_config- Update configurations with new selector mappings
Browser Operations
initialize_browser- Launch browser (headless/visible mode)navigate_to_page- Navigate to target URLstake_screenshot- Capture debugging screenshotsclose_browser- Cleanup browser resources
Element Inspection
inspect_field_manually- Interactive visual element selectionauto_detect_field- AI-powered automatic element detectionvalidate_selectors- Test selector reliability and performancegenerate_selectors- Create multiple selector variations with scoringtest_extraction- Test data extraction using current selectors
Maintenance & Code Generation
run_maintenance_check- Comprehensive scraper health analysisgenerate_extractor_code- Multi-language code generation
π Usage
For Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"scraper-maintenance": {
"command": "node",
"args": ["/path/to/mcp/dist/server.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}For Cursor
Add to your Cursor MCP configuration:
{
"mcpServers": {
"scraper-maintenance": {
"command": "node",
"args": ["/path/to/mcp/dist/server.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}π§ Development
Build
npm run buildDevelopment Mode
npm run devTest
npm testπ Documentation
Available Tools
13 toolsauto_detect_fieldC
Automatically detect elements for a field using AI-like heuristics
| Name | Required | Description | Default |
|---|---|---|---|
| fieldName | Yes | Name of the field to auto-detect | |
| strategies | No | Detection strategies to use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions 'AI-like heuristics' but fails to explain side effects, return values, or edge cases. This is insufficient for an agent to understand the tool's runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It effectively communicates the core purpose in minimal words, which is appropriate for a tool with a simple role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema, no nested objects), but the description still omits critical context such as what the tool returns, when it is appropriate to use, and how it differs from sibling tools. An agent lacks enough information to confidently select and call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both fieldName and strategies, so the baseline is 3. The description adds the nuance of 'AI-like heuristics' but does not explain the meaning of strategy values like 'smart', 'text', or 'structure', leaving gaps beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'detect' with resource 'elements for a field' and method 'AI-like heuristics', making the tool's purpose clear. It does not explicitly distinguish itself from sibling tools like inspect_field_manually, 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.
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 inspect_field_manually or generate_selectors. The description only states what it does without any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_browserA
Close the browser and cleanup resources
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it cleans up resources, but does not specify what resources, whether it is idempotent, or what happens if the browser is not open. This is a minimal disclosure for a mutation-like operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that front-loads the action and adds the resource. Every word earns its placeβno fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is adequately complete: it states the core action and the resource cleanup. However, it leaves out potential edge cases (e.g., error when browser not open) that could affect an agent's expectation, preventing a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is trivially 100%. With no parameters to document, the description cannot add meaning, so the baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Close the browser') with a resource, and adds 'cleanup resources' to indicate broader scope. It is distinct from sibling tools like navigate_to_page or initialize_browser, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: it's a cleanup operation. However, there is no explicit 'when to use' or mention of alternatives, nor does it state whether it should be called only after initialization or whether it's safe to call multiple times.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_extractor_codeC
Generate extractor code based on current configuration
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Target language for generated code | typescript |
| outputPath | No | Path to save generated extractor code | ./generated-extractor.ts |
TDQS
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 only states the action without revealing side effects (e.g., writing to a file), dependencies on other tools/configuration, or potential errors. The outputPath parameter implies file creation, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise, though the brevity sacrifices some clarity. Structurally, it is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a code-generation tool with two optional parameters and no output schema, the description is insufficient. It does not explain what 'extractor code' means, what 'current configuration' refers to, or whether any setup steps are required. The sibling tools suggest a workflow, but the description alone does not position this tool within it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both language and outputPath have descriptions), so the schema provides adequate parameter semantics. The description adds no additional parameter context, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Generate extractor code') and a context ('based on current configuration'), which distinguishes it from sibling tools like generate_selectors. However, it does not clarify what 'extractor code' entails or how it relates to the configuration, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention prerequisites (e.g., needing to load configuration first) or scenarios where generate_selectors or test_extraction would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_selectorsC
Generate multiple selector variations for an element
| Name | Required | Description | Default |
|---|---|---|---|
| elementData | Yes | Element data from inspection |
TDQS
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 simply says 'generate' without disclosing whether the operation is read-only, requires permissions, or what the output looks like. The minimal implication is that it computes selectors, but no explicit behavioral details are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It is front-loaded and efficient, earning a high score for structure despite being minimal in content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fails to explain the return value or the exact use case. The tool appears to be part of a selector generation workflow (given sibling tools), but the description alone does not provide enough context for an agent to know when to invoke it or what to expect as output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the elementData parameter as 'Element data from inspection', providing 100% coverage. The description does not add any extra information about the parameter's structure or expected format, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: generating multiple selector variations for an element. It uses a specific verb ('generate') and resource ('selector variations'), distinguishing it from sibling tools that validate or inspect. However, it does not explicitly differentiate from auto_detect_field, which could also produce selectors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 validate_selectors or auto_detect_field. It does not mention prerequisites (e.g., having inspected an element first) or the workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initialize_browserC
Initialize browser for inspection with custom options
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Browser timeout in milliseconds | |
| headless | No | Run browser in headless mode | |
| viewport | No | ||
| userAgent | No | Custom user agent string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for explaining side effects. It merely states initialization for inspection but does not disclose that it opens a browser window, that it's stateful, or that it may need to be closed with close_browser. No security or resource implications are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource. However, it is so brief that it sacrifices useful specifics, making it slightly less effective than a more informative but still concise description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no annotations, and no output schema, this description is incomplete. It doesn't address the initialization flow, expected side effects, or the fact that this tool likely must be called before other inspection tools. A richer description would improve integration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptive details for most parameters (timeout, headless, userAgent) and defaults for viewport dimensions, achieving roughly 75% coverage. The description's phrase 'custom options' merely summarizes these parameters without adding new semantic meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Initialize browser') and the resource ('browser'), with an added purpose ('for inspection') that distinguishes it from sibling navigational or cleanup tools. However, 'inspection' is vague and doesn't specify that this is a prerequisite for subsequent inspection tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance is provided. The phrase 'for inspection' implies a use case but does not explain when to call this tool before others, or any alternatives. Siblings like navigate_to_page or load_scraper_config could be required first, but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_field_manuallyB
Start manual inspection for a specific field using visual element selection
| Name | Required | Description | Default |
|---|---|---|---|
| fieldName | Yes | Name of the field to inspect |
TDQS
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 mentions 'visual element selection' hinting at an interactive UI, but it does not disclose what 'manual inspection' entails, whether a dialog opens, or what the expected output/side effects are. Prerequisites like an initialized browser are also omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the action and resource. Every word carries meaning and there is no fluff, making it highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action but lacks workflow context: it does not mention that a browser must be initialized/navigated, nor does it clarify how this manual inspection integrates with sibling tools like generate_selectors or validate_selectors. With no annotations or output schema, the description is too sparse for an interactive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter fieldName is fully described in the schema (100% coverage), and the description adds no extra semantic detail beyond the schema. The baseline of 3 applies because the schema already provides complete parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (start manual inspection), the target (a specific field), and the method (visual element selection). It distinguishes itself from auto_detect_field by explicitly indicating a manual process, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies manual inspection is used when automatic detection may not suffice, but it does not explicitly state when to use this tool over siblings like auto_detect_field, nor does it mention any preconditions such as browser initialization. The context is inferable but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_scraper_configC
Load a scraper configuration file
| Name | Required | Description | Default |
|---|---|---|---|
| configPath | Yes | Path to the scraper configuration JSON file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral details itself. It only states the action without disclosing side effects, such as whether the config is validated, applied globally, or if errors occur on invalid paths. This provides minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise but slightly under-specified, making it a 'good but not exceptional' example of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, but there is no output schema. The description does not explain what 'load' entails (e.g., side effects, return value, error behavior) or how it fits into the scraper workflow. This leaves significant gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description for configPath ('Path to the scraper configuration JSON file'), so schema coverage is 100%. The description adds no additional parameter semantics, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Load' and the resource 'scraper configuration file', indicating what the tool does. However, it does not distinguish from sibling tools like update_config or initialize_browser, so it is clear but not differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives. There is no mention of prerequisites, such as the file needing to exist, or when in the scraper flow the config should be loaded. Sibling tools like update_config suggest related actions, but no exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_maintenance_checkC
Run comprehensive maintenance check on scraper configuration
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to run maintenance check against | |
| configPath | No | Path to scraper configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It does not mention whether the maintenance check is read-only, modifies configuration, or what side effects it might have. 'Comprehensive maintenance check' is vague and does not reveal the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the verb. It is appropriately brief, though the vagueness of 'comprehensive' slightly reduces its effectiveness, earning a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description is incomplete. It fails to explain what the maintenance check covers, what the return value is, or any preconditions, making it insufficient for an agent to understand the tool's full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters, giving 100% coverage. The description adds no additional parameter meaning, so it stays at the baseline of 3 without improving or worsening the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Run' and identifies the resource as 'maintenance check on scraper configuration.' It is clear about the action and object, but it does not distinguish itself from sibling tools like validate_selectors or test_extraction, which could also be used for checking configuration health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description only states what it does without any context about appropriate scenarios, prerequisites, or exclusions, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
take_screenshotC
Take a screenshot of the current page
| Name | Required | Description | Default |
|---|---|---|---|
| outputPath | No | Path to save screenshot | ./screenshot.png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose side effects (file creation/overwrite), requirements (active browser session), or return behavior. The only information is the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no redundant content. Front-loads the purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool produces a file but the description does not mention output handling, error conditions, or return value. Given no output schema and no annotations, the description is insufficient for an agent to use it confidently in a workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the sole parameter with its purpose and default. The description adds no additional semantic value beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 resource 'current page', which is unambiguous. No sibling tool has overlapping functionality, so it effectively distinguishes itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives, no prerequisites, no exclusions. The description is purely declarative without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_extractionC
Test data extraction using current selectors
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to test extraction on | |
| selectors | No | Field-to-selector mappings to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only states 'test data extraction' without describing side effects, prerequisites, return values, or whether it modifies configuration. The behavior beyond the stated action is entirely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It is front-loaded with the action and resource, and every word contributes to the basic purpose. However, its brevity contributes to the lack of detail, which slightly reduces the score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters, one optional nested object, and no output schema, while the sibling list indicates a complex scraping workflow. The description does not mention prerequisites (e.g., initialized browser), expected results, or how this test fits into the broader flow. The provided context is insufficient for an agent to know how to use this optimally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema descriptions for url and selectors are minimal but present. The phrase 'using current selectors' adds a hint that selectors may be optional or come from configuration, but it does not clarify the relationship between the selectors parameter and the 'current' selectors. This is acceptable but not enriched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb ('Test') and resource ('data extraction') with a qualifier ('using current selectors'), which conveys the core action. It distinguishes from some siblings like validate_selectors by focusing on actual extraction rather than just validation, but it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance or exclusions. While 'test data extraction' implies a use case, there is no mention of when to prefer this over validate_selectors, inspect_field_manually, or other sibling tools, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_configA
Update scraper configuration with new selector mappings
| Name | Required | Description | Default |
|---|---|---|---|
| mappings | Yes | Array of selector mappings to update | |
| outputPath | No | Path to save updated configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without revealing side effects: does it overwrite the entire config or merge with existing mappings? What happens to the output path? Does it return anything or just save? The description provides no information about mutation semantics, permissions, or side effects, which is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and object. Every word contributes to clarity. There is no redundant information or filler, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema, no annotations), the description is adequate but not fully complete. It states what it does but omits critical behavioral details such as whether the update is incremental or replaces existing mappings, and what is returned (if anything). These gaps could lead to incorrect usage or unexpected side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'mappings' and 'outputPath' have descriptive text in the schema. Therefore, the baseline is 3. The description adds no extra meaning beyond the schema; it merely paraphrases 'mappings' as 'new selector mappings'. It does not clarify the structure of each mapping object or how they are applied relative to existing entries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Update scraper configuration with new selector mappings'. The verb 'update' is specific to modifying an existing config, distinguishing it from siblings like load_scraper_config (which loads) and validate_selectors (which validates). The resource ('scraper configuration') and the action ('new selector mappings') are explicit, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used when the user needs to update selector mappings in a scraper configuration, but it does not explicitly state when to use it instead of alternatives. There is no mention of exclusions or preferred contexts. Since the tool's purpose is direct and unique among siblings, usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_selectorsB
Validate existing selectors and check their reliability
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional URL to test selectors against (uses current page if not provided) | |
| selectors | Yes | Array of selectors to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must bear the full burden of behavioral disclosure. It only says 'validate' and 'check reliability,' but does not state whether it tests against the current page, requires a loaded page, makes network requests, or has any side effects. This leaves agents uncertain about prerequisites and consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no filler or redundancy. It states the core action directly and is appropriately front-loaded, making it highly concise and effortless to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but the description lacks essential context: it doesn't explain what 'reliability' means, what the output is, or any prerequisites (e.g., a page must be loaded). With no annotations and no output schema, this minimal description leaves significant gaps for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both url and selectors are described). The description adds no additional parameter semantics beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate existing selectors and check their reliability.' The verb 'validate' and resource 'existing selectors' make it specific. While it distinguishes from siblings like generate_selectors (which creates new selectors), it does not explicitly differentiate from test_extraction, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for existing selectors ('Validate existing selectors'), but provides no explicit guidance on when to use this tool versus siblings like test_extraction or inspect_field_manually. No alternatives or exclusions are mentioned, only an implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: browser lifecycle (initialize, navigate, close), config management (load, update), field inspection (manual vs. auto), selector operations (validate, generate), and testing/maintenance (test, audit, code generation). Even similar tools like inspect_field_manually and auto_detect_field are clearly differentiated by manual vs. automatic methodology.
All tool names follow a consistent verb_noun pattern (e.g., load_scraper_config, navigate_to_page, generate_selectors). No mixed conventions or vague verbs; each name clearly indicates its action and target.
With 13 tools, the server is well-scoped for scraper maintenance. Every tool supports the core workflow without redundancy, and the count falls comfortably within the ideal 3-15 range.
The tool set covers the full maintenance lifecycle: load configuration, inspect and detect fields, validate/generate selectors, test extraction, update config, run comprehensive checks, and generate final code. Minor features like exporting configs or handling pagination are absent, but the core workflow has no dead ends.
Maintenance
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
One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.
MCP server for Mint β AI-powered QA that runs your app in a real browser on every PR.
Zenrows MCP server β Fetch, Extract, Batch, and Browser Sessions for AI coding assistants
MCP server for web extraction and rendering via AceDataCloud WebExtrator
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for AI browser automation with tools for navigation, actions, data extraction, and scripting, supporting local and cloud execution.14742Apache 2.0
- FlicenseNot gradedqualityDmaintenanceMCP server for crawling and extracting data from web pages using Selenium with CSS/XPath selectors. Supports 17 tools including smart extraction, pagination, infinite scroll, and screenshots.3
- AlicenseNot gradedqualityDmaintenanceMCP server for web scraping and browser automation, enabling AI agents to extract clean, token-efficient content from web pages.1MIT
- AlicenseCqualityAmaintenanceMCP server for browser automation that drives Chrome via an extension, preserving login state and offering 45 tools for navigation, interaction, scraping, and screenshots.535MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fuahyo/mcp-scraper-inspect'
If you have feedback or need assistance with the MCP directory API, please join our Discord server