Prysm MCP Server
The Prysm MCP Server enables AI assistants to scrape web content with high accuracy and flexibility.
Multiple Scraping Modes: Supports focused (speed), balanced (default), and deep (thorough) modes
Content Analysis: Analyzes URLs to determine optimal scraping approach
Format Options: Outputs results as markdown, HTML, or JSON
Image Handling: Extracts and optionally downloads images with configurable limits
Smart Scrolling: Configures behavior for single-page applications with adjustable parameters
Responsive Design: Adapts to different website layouts and structures
File Management: Saves formatted results to customizable directories
Customization: Configure settings via environment variables, tool parameters, or MCP configuration
Integration Support: Works with AI assistants via the Model Context Protocol
Allows formatting scraped web content into structured markdown, with support for including images and saving formatted results to files
Uses Puppeteer to perform web scraping with capabilities like smart scrolling for single-page applications and content analysis to determine optimal scraping approaches
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., "@Prysm MCP Serverscrape https://news.ycombinator.com using balanced mode"
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.
π 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 buildIntegration 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 modeAvailable Parameters:
url(required): URL to scrapemaxScrolls(optional): Maximum number of scroll attempts (default: 5)scrollDelay(optional): Delay between scrolls in ms (default: 1000)scrapeImages(optional): Whether to include images in resultsdownloadImages(optional): Whether to download images locallymaxImages(optional): Maximum images to extractoutput(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 modeAvailable Parameters:
Same as
scrapeFocusedwith different defaultsmaxScrollsdefault: 10scrollDelaydefault: 2000Adds
timeoutparameter 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 scrollsAvailable Parameters:
Same as
scrapeFocusedwith different defaultsmaxScrollsdefault: 20scrollDelaydefault: 3000maxImagesdefault: 100
formatResult
Format scraped data into different structured formats (markdown, HTML, JSON).
Format the scraped data as markdownAvailable Parameters:
data(required): The scraped data to formatformat(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:
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"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"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-mcpRunning 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 toolsformatResultC
Format scraped data into different structured formats (markdown, HTML, JSON)
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The scraped data to format | |
| format | Yes | The format to convert the data to | |
| includeImages | No | Whether to include images in the formatted output (default: true) | |
| output | No | File path to save the formatted result. If not provided, will use the default directory. |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| downloadImages | No | Whether to download images locally | |
| maxImages | No | Maximum number of images to extract | |
| maxScrolls | No | Maximum number of scroll attempts (default: 10) | |
| minImageSize | No | Minimum width/height for images in pixels | |
| output | No | Output directory for downloaded images | |
| pages | No | Number of pages to scrape (if pagination is present) | |
| scrapeImages | No | Whether to include images in the scrape result | |
| scrollDelay | No | Delay between scrolls in ms (default: 2000) | |
| timeout | No | Maximum time in ms for the scrape operation (default: 30000) | |
| url | Yes | URL of the webpage to scrape |
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 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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| downloadImages | No | Whether to download images locally | |
| maxImages | No | Maximum number of images to extract | |
| maxScrolls | No | Maximum number of scroll attempts (default: 20) | |
| minImageSize | No | Minimum width/height for images in pixels | |
| output | No | Output directory for downloaded images | |
| pages | No | Number of pages to scrape (if pagination is present) | |
| scrapeImages | No | Whether to include images in the scrape result | |
| scrollDelay | No | Delay between scrolls in ms (default: 3000) | |
| url | Yes | URL of the webpage to scrape |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| downloadImages | No | Whether to download images locally | |
| maxImages | No | Maximum number of images to extract | |
| maxScrolls | No | Maximum number of scroll attempts (default: 5) | |
| minImageSize | No | Minimum width/height for images in pixels | |
| output | No | Output directory for downloaded images | |
| pages | No | Number of pages to scrape (if pagination is present) | |
| scrapeImages | No | Whether to include images in the scrape result | |
| scrollDelay | No | Delay between scrolls in ms (default: 1000) | |
| url | Yes | URL of the webpage to scrape |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
formatResult - First observed
scrapeBalanced - First observed
scrapeDeep - First observed
scrapeFocused
TDQS
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.
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.
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.
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
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Zenrows MCP server β Fetch, Extract, Batch, and Browser Sessions for AI coding assistants
A Model Context Protocol server for Wix AI tools
Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabiliβ¦
Related MCP Servers
- AlicenseAqualityBmaintenanceA production-ready Model Context Protocol server that enables language models to leverage AI-powered web scraping capabilities, offering tools for transforming webpages to markdown, extracting structured data, and executing AI-powered web searches.899MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows LLMs to interact with web content through standardized tools, currently supporting web scraping functionality.1MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI assistants to perform advanced web scraping, crawling, searching, and data extraction through the Firecrawl API.940,139MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI assistants to securely fetch and extract readable text content from web pages through a standardized interface.1MIT
Appeared in Searches
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/pinkpixel-dev/prysm-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server