Skip to main content
Glama

πŸ” Prysm MCP Server

The Prysm MCP (Model Context Protocol) Server enables AI assistants like Claude and others to scrape web content with high accuracy and flexibility.

✨ Features

  • 🎯 Multiple Scraping Modes: Choose from focused (speed), balanced (default), or deep (thorough) modes

  • 🧠 Content Analysis: Analyze URLs to determine the best scraping approach

  • πŸ“„ Format Flexibility: Format results as markdown, HTML, or JSON

  • πŸ–ΌοΈ Image Support: Optionally extract and even download images

  • πŸ” Smart Scrolling: Configure scroll behavior for single-page applications

  • πŸ“± Responsive: Adapts to different website layouts and structures

  • πŸ’Ύ File Output: Save formatted results to your preferred directory

Related MCP server: MCP Web Tools Server

πŸš€ Quick Start

Installation

# Recommended: Install the LLM-optimized version
npm install -g @pinkpixel/prysm-mcp

# Or install the standard version
npm install -g prysm-mcp

# Or clone and build
git clone https://github.com/pinkpixel-dev/prysm-mcp.git
cd prysm-mcp
npm install
npm run build

Integration Guides

We provide detailed integration guides for popular MCP-compatible applications:

Usage

There are multiple ways to set up Prysm MCP Server:

Using mcp.json Configuration

Create a mcp.json file in the appropriate location according to the above guides.

{
  "mcpServers": {
    "prysm-scraper": {
      "description": "Prysm web scraper with custom output directories",
      "command": "npx",
      "args": [
        "-y",
        "@pinkpixel/prysm-mcp"
      ],
      "env": {
        "PRYSM_OUTPUT_DIR": "${workspaceFolder}/scrape_results",
        "PRYSM_IMAGE_OUTPUT_DIR": "${workspaceFolder}/scrape_results/images"
      }
    }
  }
}

πŸ› οΈ Tools

The server provides the following tools:

scrapeFocused

Fast web scraping optimized for speed (fewer scrolls, main content only).

Please scrape https://example.com using the focused mode

Available Parameters:

  • url (required): URL to scrape

  • maxScrolls (optional): Maximum number of scroll attempts (default: 5)

  • scrollDelay (optional): Delay between scrolls in ms (default: 1000)

  • scrapeImages (optional): Whether to include images in results

  • downloadImages (optional): Whether to download images locally

  • maxImages (optional): Maximum images to extract

  • output (optional): Output directory for downloaded images

scrapeBalanced

Balanced web scraping approach with good coverage and reasonable speed.

Please scrape https://example.com using the balanced mode

Available Parameters:

  • Same as scrapeFocused with different defaults

  • maxScrolls default: 10

  • scrollDelay default: 2000

  • Adds timeout parameter to limit total scraping time (default: 30000ms)

scrapeDeep

Maximum extraction web scraping (slower but thorough).

Please scrape https://example.com using the deep mode with maximum scrolls

Available Parameters:

  • Same as scrapeFocused with different defaults

  • maxScrolls default: 20

  • scrollDelay default: 3000

  • maxImages default: 100

formatResult

Format scraped data into different structured formats (markdown, HTML, JSON).

Format the scraped data as markdown

Available Parameters:

  • data (required): The scraped data to format

  • format (required): Output format - "markdown", "html", or "json"

  • includeImages (optional): Whether to include images in output (default: true)

  • output (optional): File path to save the formatted result

You can also save formatted results to a file by specifying an output path:

Format the scraped data as markdown and save it to "my-results/output.md"

βš™οΈ Configuration

Output Directory

By default, when saving formatted results, files will be saved to ~/prysm-mcp/output/. You can customize this in two ways:

  1. Environment Variables: Set environment variables to your preferred directories:

# Linux/macOS
export PRYSM_OUTPUT_DIR="/path/to/custom/directory"
export PRYSM_IMAGE_OUTPUT_DIR="/path/to/custom/image/directory"

# Windows (Command Prompt)
set PRYSM_OUTPUT_DIR=C:\path\to\custom\directory
set PRYSM_IMAGE_OUTPUT_DIR=C:\path\to\custom\image\directory

# Windows (PowerShell)
$env:PRYSM_OUTPUT_DIR="C:\path\to\custom\directory"
$env:PRYSM_IMAGE_OUTPUT_DIR="C:\path\to\custom\image\directory"
  1. Tool Parameter: Specify output paths directly when calling the tools:

# For general results
Format the scraped data as markdown and save it to "/absolute/path/to/file.md"

# For image downloads when scraping
Please scrape https://example.com and download images to "/absolute/path/to/images"
  1. MCP Configuration: In your MCP configuration file (e.g., .cursor/mcp.json), you can set these environment variables:

{
  "mcpServers": {
    "prysm-scraper": {
      "command": "npx",
      "args": ["-y", "@pinkpixel/prysm-mcp"],
      "env": {
        "PRYSM_OUTPUT_DIR": "${workspaceFolder}/scrape_results",
        "PRYSM_IMAGE_OUTPUT_DIR": "${workspaceFolder}/scrape_results/images"
      }
    }
  }
}

If PRYSM_IMAGE_OUTPUT_DIR is not specified, it will default to a subfolder named images inside the PRYSM_OUTPUT_DIR.

If you provide only a relative path or filename, it will be saved relative to the configured output directory.

Path Handling Rules

The formatResult tool handles paths in the following ways:

  • Absolute paths: Used exactly as provided (/home/user/file.md)

  • Relative paths: Saved relative to the configured output directory (subfolder/file.md)

  • Filename only: Saved in the configured output directory (output.md)

  • Directory path: If the path points to a directory, a filename is auto-generated based on content and timestamp

πŸ—οΈ Development

# Install dependencies
npm install

# Build the project
npm run build

# Run the server locally
node bin/prysm-mcp

# Debug MCP communication
DEBUG=mcp:* node bin/prysm-mcp

# Set custom output directories
PRYSM_OUTPUT_DIR=./my-output PRYSM_IMAGE_OUTPUT_DIR=./my-output/images node bin/prysm-mcp

Running via npx

You can run the server directly with npx without installing:

# Run with default settings
npx @pinkpixel/prysm-mcp

# Run with custom output directories
PRYSM_OUTPUT_DIR=./my-output PRYSM_IMAGE_OUTPUT_DIR=./my-output/images npx @pinkpixel/prysm-mcp

πŸ“‹ License

MIT

πŸ™ Credits

Developed by Pink Pixel

Powered by the Model Context Protocol and Puppeteer

Available Tools

4 tools
formatResultC

Format scraped data into different structured formats (markdown, HTML, JSON)

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe scraped data to format
formatYesThe format to convert the data to
includeImagesNoWhether to include images in the formatted output (default: true)
outputNoFile path to save the formatted result. If not provided, will use the default directory.

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. It states the transformation action but lacks critical behavioral details: whether this is a read-only operation, if it modifies input data, what permissions are needed, how errors are handled, or what the output looks like. The description mentions file saving capability but doesn't clarify default behavior or error conditions.

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 perfectly concise - a single sentence that efficiently communicates the core functionality without unnecessary words. It's front-loaded with the essential information and wastes no space on redundant 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?

For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the relationship with sibling scraping tools, doesn't describe what the formatted output looks like, and provides minimal behavioral context. The tool appears to be part of a scraping workflow, but the description doesn't position it within that 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?

With 100% schema description coverage, the baseline is 3. The description doesn't add meaningful parameter semantics beyond what's already in the schema - it mentions 'format' options but the schema already documents the enum values. No additional context about parameter interactions or usage patterns is 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: 'Format scraped data into different structured formats (markdown, HTML, JSON)'. It specifies the verb ('format'), resource ('scraped data'), and target formats. However, it doesn't explicitly differentiate from sibling scraping tools, which are data collection tools rather than formatting tools.

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 scraped data first), nor does it explain how this tool relates to the sibling scraping tools (scrapeBalanced, scrapeDeep, scrapeFocused) that presumably produce the data this tool formats.

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

scrapeBalancedC

Balanced web scraping approach with good coverage and reasonable speed

ParametersJSON Schema
NameRequiredDescriptionDefault
downloadImagesNoWhether to download images locally
maxImagesNoMaximum number of images to extract
maxScrollsNoMaximum number of scroll attempts (default: 10)
minImageSizeNoMinimum width/height for images in pixels
outputNoOutput directory for downloaded images
pagesNoNumber of pages to scrape (if pagination is present)
scrapeImagesNoWhether to include images in the scrape result
scrollDelayNoDelay between scrolls in ms (default: 2000)
timeoutNoMaximum time in ms for the scrape operation (default: 30000)
urlYesURL of the webpage to scrape

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but provides minimal information. It mentions 'good coverage and reasonable speed' which hints at performance characteristics, but doesn't disclose important behavioral traits like whether it respects robots.txt, what authentication might be needed, rate limiting considerations, error handling, or what the output format looks like. For a scraping tool with 10 parameters, this is inadequate behavioral transparency.

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

Conciseness4/5

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

The description is appropriately concise - a single sentence that gets straight to the point without unnecessary words. However, while it's structurally efficient, it's under-specified rather than truly concise. Every word earns its place, but there aren't enough words to be truly helpful. The front-loading is good but the content is insufficient.

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 complex scraping tool with 10 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'balanced' means operationally, what gets returned (structured data? HTML? images?), error conditions, or performance guarantees. The context signals indicate significant complexity that the description fails to address adequately.

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 adds no parameter-specific information beyond what's already in the schema (which has 100% coverage). While the schema thoroughly documents all 10 parameters with clear descriptions, the tool description doesn't provide additional context about how parameters interact (e.g., relationship between downloadImages and scrapeImages) or usage patterns. With high schema coverage, the baseline is 3, but the description doesn't enhance parameter understanding.

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

Purpose2/5

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

The description 'Balanced web scraping approach with good coverage and reasonable speed' is vague and tautological - it restates the tool name 'scrapeBalanced' without specifying what it actually does. It doesn't clearly state what resource it operates on (web pages) or what specific scraping approach it implements. Compared to siblings like 'scrapeDeep' and 'scrapeFocused', it fails to distinguish itself meaningfully.

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 sibling tools like 'scrapeDeep' and 'scrapeFocused' available, there's no indication of what 'balanced' means in comparison - whether it's a middle ground between depth and speed, or some other trade-off. No explicit when/when-not instructions or alternative recommendations are provided.

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

scrapeDeepC

Maximum extraction web scraping (slower but thorough)

ParametersJSON Schema
NameRequiredDescriptionDefault
downloadImagesNoWhether to download images locally
maxImagesNoMaximum number of images to extract
maxScrollsNoMaximum number of scroll attempts (default: 20)
minImageSizeNoMinimum width/height for images in pixels
outputNoOutput directory for downloaded images
pagesNoNumber of pages to scrape (if pagination is present)
scrapeImagesNoWhether to include images in the scrape result
scrollDelayNoDelay between scrolls in ms (default: 3000)
urlYesURL of the webpage to scrape

TDQS

C2.6/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. It mentions 'slower but thorough' which hints at performance and depth, but doesn't disclose critical behavioral traits such as rate limits, authentication needs, error handling, what 'maximum extraction' includes beyond images, or output format. This leaves significant gaps for a tool with 9 parameters and no output schema.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Maximum extraction web scraping') and adds a key behavioral note ('slower but thorough'). There's no wasted text, though it could be more structured for clarity.

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 (9 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what 'maximum extraction' entails beyond images, how results are returned, error conditions, or performance implications. For a web scraping tool with rich parameters, this leaves too much undefined for effective agent 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%, so the schema fully documents all 9 parameters. The description adds no specific parameter semantics beyond implying image extraction through 'maximum extraction', but this is already covered in the schema. Baseline 3 is appropriate as the schema does the heavy lifting with no added value from the description.

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 performs 'maximum extraction web scraping' which indicates a verb (scraping) and resource (web content), but it's vague about what exactly is extracted beyond images implied by parameters. It distinguishes from siblings by mentioning 'slower but thorough' but doesn't specify how it differs from 'scrapeBalanced' or 'scrapeFocused' in concrete terms.

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 explicit guidance on when to use this tool versus alternatives like 'scrapeBalanced' or 'scrapeFocused'. The phrase 'slower but thorough' implies a trade-off but doesn't specify scenarios where thoroughness is prioritized over speed or what 'thorough' entails compared to sibling tools.

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

scrapeFocusedB

Fast web scraping optimized for speed (fewer scrolls, main content only)

ParametersJSON Schema
NameRequiredDescriptionDefault
downloadImagesNoWhether to download images locally
maxImagesNoMaximum number of images to extract
maxScrollsNoMaximum number of scroll attempts (default: 5)
minImageSizeNoMinimum width/height for images in pixels
outputNoOutput directory for downloaded images
pagesNoNumber of pages to scrape (if pagination is present)
scrapeImagesNoWhether to include images in the scrape result
scrollDelayNoDelay between scrolls in ms (default: 1000)
urlYesURL of the webpage to scrape

TDQS

B3.2/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 mentions 'fewer scrolls' and 'main content only', which gives some context about limitations, but doesn't cover important aspects like error handling, rate limits, authentication needs, or what 'main content' specifically means. The description is insufficient for a mutation 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 extremely concise with just one sentence that efficiently communicates the core value proposition. Every word earns its place, and it's front-loaded with the key information about speed optimization.

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 web scraping tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, how it handles errors, what 'main content' means, or provide sufficient behavioral context for proper 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 all 9 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. The baseline is 3 when 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 tool's purpose as 'Fast web scraping optimized for speed' and specifies it focuses on 'main content only', which distinguishes it from generic scraping. However, it doesn't explicitly differentiate from sibling tools like scrapeBalanced or scrapeDeep beyond the speed optimization hint.

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

Usage Guidelines3/5

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

The description implies usage for speed-focused scraping with limited content extraction, but doesn't explicitly state when to use this tool versus alternatives like scrapeBalanced or scrapeDeep. No guidance on exclusions or prerequisites is provided.

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. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedformatResult
    • First observedscrapeBalanced
    • First observedscrapeDeep
    • First observedscrapeFocused

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: formatResult handles output formatting, while the three scraping tools are well-differentiated by their approach (balanced, deep, and focused). The descriptions explicitly clarify their trade-offs (coverage vs. speed vs. thoroughness), leaving no ambiguity about when to use each.

Naming Consistency4/5

The scraping tools follow a consistent 'scrapeAdjective' pattern (scrapeBalanced, scrapeDeep, scrapeFocused), which is clear and predictable. However, formatResult deviates from this pattern with a verb_noun structure, creating a minor inconsistency in the overall naming scheme.

Tool Count5/5

With 4 tools, this server is well-scoped for web scraping and data formatting. Each tool earns its place by covering distinct aspects of the workflow (three scraping strategies and one formatting tool), avoiding bloat while providing essential functionality for the domain.

Completeness4/5

The toolset covers core scraping operations with multiple strategies and includes formatting capabilities, addressing key needs in the web scraping domain. A minor gap exists in lacking explicit tools for configuration (e.g., setting headers or proxies) or post-processing beyond formatting, but agents can likely work around this with the provided tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

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/pinkpixel-dev/prysm-mcp-server'

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