Spider 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., "@Spider MCPsearch for latest AI developments in news from past week"
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.
Spider MCP - Web Search Crawler Service
A web search MCP service based on pure crawler technology, built with Node.js.
Features
❌ No Official API Required: Completely based on crawler technology, no dependency on third-party official APIs
🔍 Intelligent Search: Supports Bing web and news search
📰 News Search: Built-in news search with time filtering
🕷️ Pure Crawler: No official API dependency, uses Puppeteer for web scraping
🚀 High Performance: Supports batch web scraping
📊 Health Monitoring: Complete health check and metrics monitoring
📝 Structured Logging: Uses Winston for structured logs
🔒 Anti-Detection: Supports User-Agent rotation and other anti-bot measures
🔗 Smart URL Cleaning: Automatically cleans promotional parameters while preserving essential information
Related MCP server: AnyCrawl MCP Server
Tech Stack
Node.js (>= 18.0.0)
Express.js - Web framework
Puppeteer - Browser automation
Cheerio - HTML parsing
Axios - HTTP client
Winston - Logging
@modelcontextprotocol/sdk - MCP protocol support
Quick Start
1. Install dependencies
npm installor use pnpm
pnpm install2. Download Puppeteer browser
npx puppeteer browsers install chrome3. Environment configuration
Copy and configure the environment variables file:
cp .env.example .envEdit the .env file according to your needs.
4. Start the service
Development mode:
npm run devProduction mode:
npm startThe service will start at http://localhost:3000.
MCP Tools
web_search
Unified search tool supporting both web and news search:
Web Search:
searchType: "web"News Search:
searchType: "news"with time filteringNote:
searchTypeis a required parameter and must be explicitly specified
Usage Examples:
# Web search
Use web_search tool to search "Node.js tutorial" with searchType set to web, return 10 results
# News search
Use web_search tool to search "tech news" with searchType set to news, return 5 results from past 24 hoursOther Tools
get_webpage_content: Get webpage content and convert to specified formatget_webpage_source: Get raw HTML source code of webpagebatch_webpage_scrape: Batch scrape multiple webpages
MCP Configuration
Chatbox Configuration
Create mcp-config.json file in Chatbox:
{
"mcpServers": {
"spider-mcp": {
"command": "node",
"args": ["src/mcp/server.js"],
"env": {
"NODE_ENV": "production"
},
"description": "Spider MCP - Web search and webpage scraping tools",
"capabilities": {
"tools": {}
}
}
}
}Other MCP Clients
{
"mcpServers": {
"spider-mcp": {
"command": "node",
"args": ["path/to/spider-mcp/src/mcp/server.js"]
}
}
}Important Notes
Anti-bot Measures: This service uses various techniques to avoid detection, but still needs to comply with robots.txt and terms of use
Rate Limiting: It's recommended to control request frequency reasonably to avoid putting pressure on target websites
Legal Compliance: Please ensure compliance with local laws and website terms of use when using this service
Resource Consumption: Puppeteer will start Chrome browser, please pay attention to memory and CPU usage
URL Cleaning: Automatically cleans promotional parameters but may affect some special link functionality
Development
Project Structure
spider-mcp/
├── src/
│ ├── index.js # Main entry file
│ ├── mcp/
│ │ └── server.js # MCP server
│ ├── routes/ # Route definitions
│ │ ├── search.js # Search routes
│ │ └── health.js # Health check routes
│ ├── services/ # Business logic
│ │ └── searchService.js # Search service
│ └── utils/ # Utility functions
│ └── logger.js # Logging utility
├── logs/ # Log files directory
├── tests/ # Test files
├── package.json # Project configuration
├── .env.example # Environment variables example
├── mcp-config.json # MCP configuration example
└── README.md # Project documentationLicense
MIT License
Contributing
Issues and Pull Requests are welcome!
Available Tools
4 toolsbatch_webpage_scrapeC
Batch scrape multiple webpages with concurrent processing support.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | List of webpage URLs to scrape, up to 20. | |
| maxConcurrent | No | Maximum concurrency |
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 mentions 'concurrent processing support' but fails to detail critical aspects like rate limits, error handling, authentication needs, or what the tool returns (e.g., content, metadata). This leaves significant gaps in understanding how the tool behaves in practice.
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 directly states the tool's purpose and key feature (concurrent processing) without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured for quick comprehension.
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 of a batch scraping tool with no annotations and no output schema, the description is insufficient. It lacks details on output format, error behavior, performance constraints, and how it differs from siblings. For a tool that likely involves network operations and concurrency, more context is needed to ensure safe and effective 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 input schema fully documents both parameters (urls and maxConcurrent). The description adds no additional semantic details beyond what the schema provides, such as URL format requirements or concurrency implications. Baseline score of 3 is appropriate as the schema handles parameter documentation adequately.
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 ('batch scrape') and resource ('multiple webpages'), specifying concurrent processing support, which distinguishes it from single-page scraping tools. However, it does not explicitly differentiate from sibling tools like get_webpage_content or get_webpage_source, which may also involve webpage retrieval, leaving some ambiguity in sibling 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?
The description provides no guidance on when to use this tool versus alternatives, such as get_webpage_content for single pages or web_search for search-based retrieval. It mentions concurrent processing but does not specify scenarios where batch processing is preferred over individual calls, offering minimal usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webpage_contentC
Fetch webpage content and convert to specified format. Supports Markdown, HTML, and plain text.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the webpage to scrape. Must be a valid HTTP/HTTPS link. | |
| format | No | Output format: markdown (default), html, text | markdown |
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 mentions fetching and converting content but lacks critical details such as authentication requirements, rate limits, error handling, or whether it performs web scraping with potential restrictions. This leaves significant gaps in understanding 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 extremely concise with two sentences that directly state the tool's function and supported formats, with no wasted words. It's front-loaded and efficiently communicates the core purpose without unnecessary elaboration.
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 lack of annotations and output schema, the description is incomplete for a web scraping tool. It doesn't address behavioral aspects like permissions, limitations, or response structure, which are crucial for proper usage. The high schema coverage doesn't compensate for these missing contextual elements.
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 both parameters thoroughly. The description adds minimal value by listing the supported formats but doesn't provide additional semantic context beyond what's in the schema, such as examples or edge cases for the URL parameter.
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 with specific verbs ('fetch', 'convert') and resources ('webpage content'), and identifies the supported output formats. However, it doesn't explicitly differentiate from sibling tools like 'get_webpage_source' or 'web_search', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'batch_webpage_scrape' or 'get_webpage_source'. It mentions supported formats but doesn't explain scenarios where one format might be preferred over another or when to choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webpage_sourceB
Fetch the raw HTML source code and page information of a webpage.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the webpage to get source from. Must be a valid HTTP/HTTPS link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't mention error handling, timeouts, authentication needs, rate limits, or what 'page information' includes. The description is minimal beyond the basic 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?
Single sentence, front-loaded with the core purpose, zero wasted words. Every part of the description earns its place by specifying what's fetched and from where.
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 simple single-parameter tool with no annotations and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details about return format, error conditions, or behavioral traits that would help an agent use it effectively.
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 the single 'url' parameter thoroughly. The description adds no additional parameter context beyond what's in the schema, 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 clearly states the specific action ('Fetch'), resource ('raw HTML source code and page information'), and target ('webpage'). It distinguishes from potential siblings by specifying 'raw HTML source code' rather than processed content or search results.
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 guidance on when to use this tool versus alternatives like 'get_webpage_content' or 'batch_webpage_scrape'. The description implies it's for raw source code, but doesn't clarify use cases or exclusions compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchB
Perform web or news search using Bing search engine. Supports both general web search and news search modes.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, e.g., Node.js tutorial, tech news, political updates, etc. | |
| searchType | Yes | Search type: web (general web search), news (news search) - required | |
| maxResults | No | Maximum number of results | |
| timeFilter | No | Time filter (only valid for news search): past 1 hour, 24 hours, 7 days, 30 days | past_24_hours |
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 mentions the search engine (Bing) and modes (web/news), but lacks critical details such as rate limits, authentication requirements, result format, pagination, or any constraints beyond what's in the schema. For a search tool with zero annotation coverage, this is insufficient.
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 concise and front-loaded in a single sentence, efficiently stating the core functionality. Every word earns its place, with no redundant information. It could be slightly improved by adding a brief second sentence for behavioral context, but it's well-structured as is.
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 complexity (search with multiple modes and parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., search results format, links, snippets) or address behavioral aspects like error handling. This leaves significant gaps for an AI agent to use the tool effectively.
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 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'Bing search engine' and 'general web search and news search modes,' but doesn't provide additional semantic context for parameters like query formulation tips or timeFilter applicability. Baseline 3 is appropriate 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: 'Perform web or news search using Bing search engine.' It specifies the action (search), resource (web/news), and engine (Bing). However, it doesn't explicitly differentiate from sibling tools like 'batch_webpage_scrape' or 'get_webpage_content', which appear to be for retrieving specific pages rather than searching.
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 context by mentioning 'general web search and news search modes,' but it doesn't provide explicit guidance on when to use this tool versus the sibling tools. There's no mention of alternatives or exclusions, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The tools are mostly distinct with clear purposes: batch scraping, content fetching, source fetching, and web searching. However, get_webpage_content and get_webpage_source could be confused as both fetch webpage data, though their descriptions clarify content vs. source distinctions.
All tool names follow a consistent snake_case pattern with clear verb_noun structure (e.g., batch_webpage_scrape, get_webpage_content). The naming is uniform and predictable across all four tools.
With 4 tools, this server is well-scoped for web-related tasks. Each tool serves a distinct function in scraping, fetching, and searching, making the count appropriate without being too sparse or bloated.
The toolset covers core web operations: scraping, content retrieval, and searching. A minor gap exists in lacking tools for advanced processing (e.g., parsing or data extraction), but the provided tools support basic to intermediate workflows effectively.
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
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Scrape, crawl and search the web for AI agents via MCP.
Web search, news, page retrieval, sitemaps, and trending topics through Search1API.
Search the web and extract clean, readable text from webpages. Process multiple URLs at once to sp…
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables web searching and content scraping through Google Custom Search API. Provides tools to search the internet, extract webpage content, and automatically scrape search results for comprehensive information gathering.3
- AlicenseNot gradedqualityCmaintenanceEnables web scraping and crawling capabilities for LLM clients, supporting single-page scraping, multi-page website crawling, and web search with multiple engines (Playwright, Cheerio, Puppeteer) and flexible output formats including markdown, HTML, text, and screenshots.146MIT
- AlicenseNot gradedqualityDmaintenanceEnables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.13MIT
- AlicenseAqualityCmaintenanceProvides Bing Chinese search and webpage crawling tools, enabling AI assistants to fetch real-time web information without API keys.237468MIT
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/yc9yc/spider-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server