Skip to main content
Glama
joinmassive

@joinmassive/mcp-server

Official
by joinmassive

@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)

  1. Download the latest massive-mcp-X.Y.Z.mcpb from GitHub Releases.

  2. Open the file with Claude Desktop (or drag-drop into Settings → Extensions).

  3. 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-server

Then /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

~/.cursor/mcp.json

Continue

~/.continue/config.json (under mcpServers)

Cody

~/Library/Application Support/com.sourcegraph.cody/mcp.json (macOS)

Windsurf

~/.codeium/windsurf/mcp_config.json

VS Code (MCP)

~/.config/Code/User/settings.json (under chat.mcp.servers)

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

url

string (required)

format

"markdown" | "rendered" | "raw"

"markdown"

country

string (ISO 3166-1 alpha-2)

city

string

subdivision

string

ISO 3166-2 (e.g. "TN"). Ignored if city is set.

device

string

Device emulation name

expiration

integer (0–365)

Days the cached result is reused. 0 = always live (good for prices, scores).

difficulty

"low" | "medium" | "high"

"low"

Anti-bot evasion strength. Multipliers: medium=2×, high=premium.

Example prompt: "Use the Massive MCP server to fetch https://news.ycombinator.com and summarise the top stories."

Google search results, parsed into structured JSON.

Arg

Type

Default

query (required, ≤ 255 chars)

string

country

string (ISO)

city

string

subdivision

string

max_results

number

10

expiration

integer (0–365)

language

string

display

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

prompt (required, ≤ 2047 chars)

string

model

"chatgpt" | "gemini" | "perplexity" | "copilot"

"chatgpt"

country

string (ISO)

city

string

subdivision

string

expiration

integer (0–365)

language

string

display

string

device

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

web_fetch

1 credit

Multipliers — difficulty=medium → 2×, difficulty=high → premium

web_search

1 credit

No multipliers

ai_chat_completion

1 credit

No multipliers

account_status

Free

Worked example: web_fetch with difficulty=medium costs 1 × 2 = 2 credits.

Tips for keeping costs down

  • Cache: expiration (days) reuses recent results. Default 1. Set expiration=0 only when freshness matters (prices, scores, weather).

  • Difficulty: start with default low. Bump to medium / high only 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

docs://massive/pricing

Credit costs and multipliers (same as the table above, inline in your client)

docs://massive/geotargeting

190+ countries, subdivision/city format, examples

docs://massive/changelog

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 tools
account_statusAccount statusA

Returns the user's remaining credit balance. Free; does not consume credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesPrompt for the chatbot
modelNoWhich chatbot to querychatgpt
countryNoISO 3166-1 alpha-2 country code
cityNoCity name for geo-targeting
subdivisionNoISO 3166-2 subdivision code (e.g. 'TN' for Tennessee). Case-insensitive. Ignored if `city` is set.
expirationNoDays the cached result is reused (0 = always live; default 1).
languageNoConversation language. Common name (e.g. 'spanish'), two-letter ISO code (e.g. 'es'), or Google code. Case-insensitive.
displayNoUI display language. Same format as `language`.
deviceNoDevice emulation name (e.g. 'iphone-15').

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch (must be a valid http(s) URL)
formatNoOutput format. 'markdown' is best for LLM consumption.markdown
countryNoISO 3166-1 alpha-2 country code (e.g. 'US', 'DE')
cityNoCity name for geo-targeting
subdivisionNoISO 3166-2 subdivision code (e.g. 'TN' for Tennessee). Case-insensitive. Ignored if `city` is set.
deviceNoDevice emulation name (e.g. 'iphone-15')
expirationNoDays the cached result is reused (0 = always live; default 1).
difficultyNoAnti-bot evasion strength. Multipliers: low=1×, medium=2×, high=premium (further multiplier). Use higher only if low fails.low

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

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 updatesv0.2.1
    • First observedaccount_status
    • First observedai_chat_completion
    • First observedweb_fetch
    • First observedweb_search

TDQS

A4.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose of providing access to various Massive services. Not too few, not too many.

Completeness4/5

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

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

  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    60
    8,754
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    4
    8,754
    5
    MIT

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/joinmassive/mcp-server'

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