@joinmassive/mcp-server
OfficialAllows searching Google and retrieving structured results including organic listings, AI overview, and people also ask.
Allows querying the Perplexity AI chatbot for answers with sources.
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., "@@joinmassive/mcp-serverFetch https://news.ycombinator.com and summarize the top stories."
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.
@joinmassive/mcp-server
Official MCP server for the Massive Web Render API. Give your AI agents real-time web access — fetch any URL, search Google, query AI chatbots — with JS rendering, captcha solving, and 195+ country geo-targeting handled automatically.
Quickstart (Claude Desktop)
Option A — One-click install (.mcpb)
Download the latest
massive-mcp-X.Y.Z.mcpbfrom GitHub Releases.Open the file with Claude Desktop (or drag-drop into Settings → Extensions).
Paste your Massive API token when prompted. Token is stored in your OS keychain.
Option B — npx + config snippet
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"massive": {
"command": "npx",
"args": ["-y", "@joinmassive/mcp-server"],
"env": { "MASSIVE_TOKEN": "your-token-here" }
}
}
}Restart Claude Desktop.
Related MCP server: The Web MCP
Quickstart (Claude Code)
One command, works across all your projects:
claude mcp add massive --scope user -e MASSIVE_TOKEN=your-token-here -- npx -y @joinmassive/mcp-serverThen /mcp in any Claude Code session to confirm it's connected. Drop --scope user to scope it to the current project only.
Other MCP clients
The same JSON snippet works for any MCP-compatible client. Drop it into the client's config file:
Client | Config path |
Cursor |
|
Continue |
|
Cody |
|
Windsurf |
|
VS Code (MCP) |
|
If npx isn't on the client's PATH, swap to a direct binary path: "command": "node", "args": ["/absolute/path/to/dist/index.js"].
Getting an API token
Sign in at dashboard.joinmassive.com → Developer → API Keys.
Tools
web_fetch
Fetch any URL. Returns Markdown by default (best for LLMs).
Arg | Type | Default | Notes |
| string (required) | — | |
|
|
| |
| string (ISO 3166-1 alpha-2) | — | |
| string | — | |
| string | — | ISO 3166-2 (e.g. |
| string | — | Device emulation name |
| integer (0–365) | — | Days the cached result is reused. |
|
|
| Anti-bot evasion strength. Multipliers: |
Example prompt: "Use the Massive MCP server to fetch https://news.ycombinator.com and summarise the top stories."
web_search
Google search results, parsed into structured JSON.
Arg | Type | Default |
| string | — |
| string (ISO) | — |
| string | — |
| string | — |
| number | 10 |
| integer (0–365) | — |
| string | — |
| string | — |
Returns: { organic, ai_overview, people_also_ask, query }.
Example shape:
{
"query": "best espresso machines 2026",
"organic": [
{ "title": "...", "url": "https://...", "snippet": "..." }
],
"ai_overview": { "answer": "...", "sources": [{ "domain": "wirecutter.com", "url": "https://..." }] },
"people_also_ask": [
{ "question": "What is the best espresso machine for beginners?", "answer": "" }
]
}Example prompt: "Use web_search to find recent reviews of espresso machines and return the top 3 organic results plus the AI overview."
ai_chat_completion
Chatbot answer with sources.
Arg | Type | Default |
| string | — |
|
|
|
| string (ISO) | — |
| string | — |
| string | — |
| integer (0–365) | — |
| string | — |
| string | — |
| string | — |
Returns: { completion, sources, model, subqueries? }.
account_status
No args. Returns { credits_remaining }. Useful to warn the user before they run out of credits. Free — does not consume credits.
Pricing & cost control
Credit costs (live reference: https://joinmassive.com/pricing):
Endpoint | Base cost | Notes |
| 1 credit | Multipliers — |
| 1 credit | No multipliers |
| 1 credit | No multipliers |
| Free | — |
Worked example: web_fetch with difficulty=medium costs 1 × 2 = 2 credits.
Tips for keeping costs down
Cache:
expiration(days) reuses recent results. Default1. Setexpiration=0only when freshness matters (prices, scores, weather).Difficulty: start with default
low. Bump tomedium/highonly if the low attempt fails.Check first: call
account_status(free) before launching a batch.
Resources
This server exposes three read-only reference documents at docs:// URIs. They show up in your MCP client as attachable references:
URI | Contents |
| Credit costs and multipliers (same as the table above, inline in your client) |
| 190+ countries, subdivision/city format, examples |
| What's new in each release |
In Claude Desktop: open the Connectors panel and pick the resource from this server. In Claude Code: type @ and search by name. The model does not auto-read these — they're for you to browse.
Troubleshooting
"MASSIVE_TOKEN env var is not set"
Confirm the env block in your Claude Desktop config has the token. Restart Claude Desktop.
"Massive endpoint is autoscaling, please retry" A 503 from upstream. The server already retried once; wait ~10s and try again.
"403 Forbidden — the request was rejected (likely captcha or invalid token)" Either the target site rejected our captcha solver, or the token is invalid. Re-check the token at the dashboard.
No tools appear in Claude Desktop
Settings → Developer → check the MCP server logs. The most common cause is command: "npx" not being on Claude Desktop's PATH. Run which npx in Terminal — if it's under Homebrew (/opt/homebrew/bin), Claude Desktop's PATH won't include it. As a workaround, use a direct path: "command": "node", "args": ["/absolute/path/to/dist/index.js"]. Or install the .mcpb bundle (Option A above), which sidesteps PATH issues entirely.
Contributing
Issues and PRs welcome at github.com/joinmassive/mcp-server.
License
MIT. See LICENSE.
Available Tools
4 toolsaccount_statusAccount statusA
Returns the user's remaining credit balance. Free; does not consume credits.
| 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 the tool is free and non-consuming, which is key behavioral info. It does not detail return format or errors, but for a simple read-only operation this is sufficient.
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 sentence that front-loads the purpose and adds a key behavioral trait. No wasted words, 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?
For a tool with no parameters, no output schema, and low complexity, the description is nearly complete. It specifies what is returned (remaining credit balance) and that it's free. Could mention data type or user association, but not critical.
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?
There are zero parameters, so schema coverage is 100%. The description adds no parameter info because none exist. Baseline score of 4 is appropriate as per guidelines.
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 returns the user's remaining credit balance. It distinguishes from siblings (e.g., ai_chat_completion, web_fetch) by being a status query with no parameters and no credits consumed.
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 notes that the tool is free and does not consume credits, implying it can be used without cost concerns. It does not explicitly state when not to use it, but the context is clear for a simple balance check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_chat_completionAI chat completionA
Get a chatbot answer (ChatGPT, Gemini, Perplexity, or Copilot) with structured sources.
Cost: 1 credit base. No multipliers. Use expiration=0 for fresh answers; default expiration=1 (day) reuses cached responses. Localize with country, subdivision, city, language, display, device.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Prompt for the chatbot | |
| model | No | Which chatbot to query | chatgpt |
| country | No | ISO 3166-1 alpha-2 country code | |
| city | No | City name for geo-targeting | |
| subdivision | No | ISO 3166-2 subdivision code (e.g. 'TN' for Tennessee). Case-insensitive. Ignored if `city` is set. | |
| expiration | No | Days the cached result is reused (0 = always live; default 1). | |
| language | No | Conversation language. Common name (e.g. 'spanish'), two-letter ISO code (e.g. 'es'), or Google code. Case-insensitive. | |
| display | No | UI display language. Same format as `language`. | |
| device | No | Device emulation name (e.g. 'iphone-15'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond having no annotations, the description discloses cost (1 credit base), no multipliers, caching behavior (expiration), and localization features. It does not detail rate limits or authentication requirements, but the provided information is sufficient for basic understanding.
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, using short sentences and bullet-like lists to convey key points. It avoids redundancy and is well-organized for quick consumption, though it could be slightly more structured.
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 9 parameters and no output schema, the description covers most aspects (model, caching, localization) but omits details on the output format beyond 'structured sources'. It meets minimum viability but leaves some ambiguity about return value structure.
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 covers 100% of parameters with individual descriptions, but the tool description adds value by explaining expiration semantics, localization context, and cost implications. This enrichment goes beyond the schema's baseline.
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 gets a chatbot answer from specific models (ChatGPT, Gemini, Perplexity, Copilot) and mentions structured sources. This distinct purpose is well-differentiated from sibling tools like 'account_status', 'web_fetch', and 'web_search'.
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 guidance on using expiration for fresh vs cached responses and mentions localization parameters. However, it does not explicitly contrast with sibling tools or state when not to use this tool, though the distinct purpose makes such guidance less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_fetchWeb fetchA
Fetch any URL through Massive. Returns Markdown by default (best for LLM consumption); also supports rendered HTML and raw HTML. Handles JS rendering, captcha solving, and 195+ country geo-targeting.
Cost: 1 credit base. Multipliers stack:
difficulty=medium → 2×
difficulty=high → premium (higher multiplier; use only if low fails)
Geo-targeting (country/city) does not currently change cost.
Use expiration=0 for always-live data (prices, scores). Default expiration=1 (day) reuses cached results. Live pricing: https://joinmassive.com/pricing
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch (must be a valid http(s) URL) | |
| format | No | Output format. 'markdown' is best for LLM consumption. | markdown |
| country | No | ISO 3166-1 alpha-2 country code (e.g. 'US', 'DE') | |
| city | No | City name for geo-targeting | |
| subdivision | No | ISO 3166-2 subdivision code (e.g. 'TN' for Tennessee). Case-insensitive. Ignored if `city` is set. | |
| device | No | Device emulation name (e.g. 'iphone-15') | |
| expiration | No | Days the cached result is reused (0 = always live; default 1). | |
| difficulty | No | Anti-bot evasion strength. Multipliers: low=1×, medium=2×, high=premium (further multiplier). Use higher only if low fails. | low |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses key behaviors: default output format, JS rendering, captcha solving, geo-targeting, cost structure (base 1 credit, multipliers for difficulty), caching via expiration, and a link to live pricing. No destructive behavior is indicated, which is consistent with a fetch 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 compact yet comprehensive; it uses bullet-style formatting for cost multipliers to improve readability. Every sentence provides essential information without 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?
Given the 8 parameters, 1 required, and no output schema, the description sufficiently covers what the tool returns (Markdown by default, with alternatives), how caching works, cost implications, and anti-bot handling. It is complete enough for an agent to invoke the tool correctly without additional information.
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%, and the description adds significant value beyond the schema: it explains why Markdown is best for LLM, how difficulty multipliers work, that expiration=0 ensures live data, and that geo-targeting parameters (country/city) do not change cost. It also clarifies that subdivision is ignored when city is set.
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 specific verb+resource: 'Fetch any URL through Massive.' It clearly states the primary function and distinguishes from sibling tools like web_search, which searches the web rather than fetches specific URLs.
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 explicit guidance on format selection (Markdown best for LLM), difficulty escalation (start low, use higher if low fails), and expiration settings (0 for live data). It also explains cost multipliers. It could explicitly mention when not to use this tool (e.g., use web_search for general queries), but the context is sufficient for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchWeb searchA
Google search results parsed into structured JSON. Returns organic results, AI overview (if present), and 'people also ask' questions.
Cost: 1 credit base. No multipliers. Use expiration=0 for always-live results; default expiration=1 (day) reuses cached SERPs. Localize with country, subdivision, city, language, display.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (max 255 chars) | |
| country | No | ISO 3166-1 alpha-2 country code | |
| city | No | City name for geo-targeting | |
| subdivision | No | ISO 3166-2 subdivision code (e.g. 'TN' for Tennessee). Case-insensitive. Ignored if `city` is set. | |
| max_results | No | Max organic results to return (default 10) | |
| expiration | No | Days the cached result is reused (0 = always live; default 1). | |
| language | No | Search language. Common name (e.g. 'spanish'), two-letter ISO code (e.g. 'es'), or Google code. Case-insensitive. | |
| display | No | UI display language. Same format as `language`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses cost (1 credit base, no multipliers), caching behavior via the expiration parameter, and localization options. It does not mention rate limits or error handling, but given the lack of annotations, it provides significant behavioral insight.
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 brief and well-structured: outputs, cost, caching advice, localization. Every sentence adds value with no redundant or vague statements.
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 output structure, cost, caching, and localization. It does not mention error responses or pagination limits beyond max_results, but given the tool's simplicity and the schema's clarity, it is sufficiently complete.
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%, baseline 3. The description adds value by explaining how to use expiration (0 for always-live, default reuses cached SERPs) and highlighting localization parameters (country, subdivision, city, language, display). This context goes beyond the schema descriptions.
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 performs Google search and returns structured JSON results including organic results, AI overview, and 'people also ask' questions. It distinguishes from siblings (account_status, ai_chat_completion, web_fetch) as the only search-specific tool.
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 usage tips for localization and caching but does not explicitly compare to sibling tools like web_fetch or state when to use this vs other approaches. The guidance is implicit rather than explicit.
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
v0.2.1- First observed
account_status - First observed
ai_chat_completion - First observed
web_fetch - First observed
web_search
TDQS
Each tool has a clearly distinct purpose: account_status for credit balance, ai_chat_completion for chatbot responses, web_fetch for fetching URLs, and web_search for search results. No overlap.
All tools use snake_case and follow a verb_noun pattern: account_status, ai_chat_completion, web_fetch, web_search. Naming is uniform and predictable.
With 4 tools, the server is well-scoped for its purpose of providing access to various Massive services. Not too few, not too many.
The tool set covers the core functionalities: account info, AI chat, web fetch, and search. A minor gap is the lack of a tool for user profile or usage history beyond credits, but the current set is sufficient for typical use.
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
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
Live web access for agents: scrape, SERP search, crawl/map, 74 collectors, datasets, proxies.
Web intelligence for AI agents: fetch, render, extract, research. x402 micropayments, no API keys.
The web capability layer for AI agents: render, extract, DNS, SSL, WHOIS & more via x402.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables LLMs and AI agents to access real-time web data, search websites, and navigate the web without getting blocked. Includes 5,000 free monthly requests and supports web scraping, browser automation, and bypassing geo-restrictions.608,7541MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to access real-time web data through search, markdown scraping, and browser automation while bypassing anti-bot protections. It provides tools for web research, e-commerce monitoring, and data extraction from across the globe.48,7545MIT
- AlicenseAqualityFmaintenanceEnables AI agents to crawl, scrape, search, and automate browsers with anti-bot bypass, providing fast web access via 22 tools.22503MIT
- FlicenseBqualityBmaintenanceEnables AI agents to browse and extract data from any public website via Bright Data's cloud infrastructure, handling proxy rotation, CAPTCHA solving, and JavaScript rendering.57-
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/joinmassive/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server