Skip to main content
Glama
jayozer

Outscraper MCP Server

by jayozer

Outscraper MCP Server

PyPI version Python 3.10+

A streamlined Model Context Protocol (MCP) server that provides access to Outscraper's Google Maps data extraction services. This server implements 2 essential tools for extracting Google Maps data with high reliability.

πŸš€ Features

Google Maps Data Extraction

  • πŸ—ΊοΈ Google Maps Search - Search for businesses and places with detailed information

  • ⭐ Google Maps Reviews - Extract customer reviews from any Google Maps place

Advanced Capabilities

  • Data Enrichment - Enhance results with additional contact information via enrichment parameter

  • Multi-language Support - Search and extract data in different languages

  • Regional Filtering - Target specific countries/regions for localized results

  • Flexible Sorting - Sort reviews by relevance, date, rating, etc.

  • Time-based Filtering - Filter reviews by date using cutoff parameter

  • High Volume Support - Handles async processing for large requests automatically

Related MCP server: OneSearch MCP Server

πŸ“¦ Installation

To install the Outscraper MCP server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install outscraper-mcp --client claude

Installing via PyPI

# Using pip
pip install outscraper-mcp

# Using uv (recommended)
uv add outscraper-mcp

# Using uvx for one-time execution
uvx outscraper-mcp

Manual Installation

git clone https://github.com/jayozer/outscraper-mcp
cd outscraper-mcp

# Using uv (recommended)
uv sync

# Using pip
pip install -e .

πŸ”§ Configuration

Get Your API Key

  1. Sign up at Outscraper

  2. Get your API key from the profile page

Set Environment Variable

export OUTSCRAPER_API_KEY="your_api_key_here"

Or create a .env file:

OUTSCRAPER_API_KEY=your_api_key_here

πŸ› οΈ Client Configuration

Claude Desktop

Add to your claude_desktop_config.json:

Via Smithery (Automatic):

{
  "mcpServers": {
    "outscraper": {
      "command": "npx",
      "args": ["-y", "@smithery/cli", "run", "outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Via Local Installation:

{
  "mcpServers": {
    "outscraper": {
      "command": "uvx",
      "args": ["outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Via Manual Installation:

{
  "mcpServers": {
    "outscraper": {
      "command": "uv",
      "args": ["run", "python", "-m", "outscraper_mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Cursor AI

Automatic Installation with UVX (Recommended):

{
  "mcpServers": {
    "outscraper": {
      "command": "uvx",
      "args": ["outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Manual Installation:

{
  "mcpServers": {
    "outscraper": {
      "command": "outscraper-mcp",
      "env": {
        "OUTSCRAPER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Note for Cursor Users: The configuration file is typically located at:

  • macOS: ~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Windows: %APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

  • Linux: ~/.config/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

πŸ› οΈ Tools Reference

Search for businesses and places on Google Maps

# Parameters:
query: str              # Search query (e.g., 'restaurants brooklyn usa')
limit: int = 20         # Number of results (max: 400)
language: str = "en"    # Language code
region: str = None      # Country/region code (e.g., 'US', 'GB')
drop_duplicates: bool = False  # Remove duplicate results
enrichment: List[str] = None   # Additional services ['domains_service', 'emails_validator_service']

google_maps_reviews

Extract reviews from Google Maps places

# Parameters:
query: str              # Place query, place ID, or business name
reviews_limit: int = 10 # Number of reviews per place (0 for unlimited)
limit: int = 1          # Number of places to process
sort: str = "most_relevant"  # Sort order: 'most_relevant', 'newest', 'highest_rating', 'lowest_rating'
language: str = "en"    # Language code
region: str = None      # Country/region code
cutoff: int = None      # Unix timestamp for reviews after specific date

πŸš€ Running the Server

Development & Testing

# FastMCP Inspector - Web-based testing dashboard
fastmcp dev outscraper_mcp/server.py

# Then open your browser to: http://127.0.0.1:6274
# Interactive testing of Google Maps tools with real-time responses

Stdio Transport (Default)

# Via PyPI installation
outscraper-mcp

# Via uv
uv run python -m outscraper_mcp

# Via manual installation
python -m outscraper_mcp

HTTP Transport

from outscraper_mcp import mcp

if __name__ == "__main__":
    mcp.run(transport="streamable-http", host="127.0.0.1", port=8000)

πŸ’‘ Usage Examples

Example 1: Find Restaurants and Get Reviews

# 1. Search for restaurants
results = google_maps_search(
    query="italian restaurants manhattan nyc",
    limit=5,
    language="en",
    region="US"
)

# 2. Get reviews for a specific place
reviews = google_maps_reviews(
    query="ChIJrc9T9fpYwokRdvjYRHT8nI4",  # Place ID from search results
    reviews_limit=20,
    sort="newest"
)

Example 2: Lead Generation with Enrichment

# Find businesses with enhanced contact information
businesses = google_maps_search(
    query="digital marketing agencies chicago",
    limit=20,
    enrichment=["domains_service", "emails_validator_service"]
)

# Get detailed reviews for sentiment analysis
for business in businesses:
    if business.get('place_id'):
        reviews = google_maps_reviews(
            query=business['place_id'],
            reviews_limit=10,
            sort="newest"
        )

Example 3: Market Research

# Research competitors in specific area
competitors = google_maps_search(
    query="coffee shops downtown portland",
    limit=50,
    region="US"
)

# Analyze recent customer feedback
recent_reviews = google_maps_reviews(
    query="coffee shops downtown portland",
    reviews_limit=100,
    sort="newest"
)

πŸ”„ Integration with MCP Clients

This server is compatible with any MCP client, including:

πŸ“Š Rate Limits & Pricing

  • Check Outscraper Pricing for current rates

  • API key usage is tracked per request

  • Consider implementing caching for frequently accessed data

πŸ› Troubleshooting

Common Issues

  1. Import Error: Make sure you've installed the package correctly

    pip install --upgrade outscraper-mcp
  2. API Key Error: Verify your API key is set correctly

    echo $OUTSCRAPER_API_KEY
  3. No Results: Check if your query parameters are valid

  4. Rate Limits: Implement delays between requests if needed

Enable Debug Logging

import logging
logging.basicConfig(level=logging.DEBUG)

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests

  5. Submit a pull request

πŸ“„ License

Experimental Software License - see LICENSE file for details.

Notice: This software is experimental and free to use for all purposes. Created by Jay Ozer.


Built with Blu Goldens

Available Tools

2 tools
google_maps_reviewsB
Extract reviews from Google Maps places using Outscraper

Args:
    query: Place query, place ID, or business name (e.g., 'ChIJrc9T9fpYwokRdvjYRHT8nI4', 'Memphis Seoul brooklyn usa')
    reviews_limit: Number of reviews to extract per place (default: 10, 0 for unlimited)
    limit: Number of places to process (default: 1)
    sort: Sort order for reviews ('most_relevant', 'newest', 'highest_rating', 'lowest_rating')
    language: Language code (default: 'en')
    region: Country/region code (e.g., 'US', 'GB', 'DE')
    cutoff: Unix timestamp to get only reviews after this date

Returns:
    Formatted reviews data with place information and individual reviews
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
reviews_limitNo
limitNo
sortNomost_relevant
languageNoen
regionNo
cutoffNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'Extract reviews' and 'Returns: Formatted reviews data', which implies a read-only operation, but doesn't disclose critical behavioral traits like rate limits, authentication needs, data freshness, or potential costs. For a tool with 7 parameters and no annotations, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, Args, Returns) and uses bullet-like formatting. It's appropriately sized for a 7-parameter tool, with each sentence adding value. Minor improvements could include more front-loaded context, but overall it's efficient and readable.

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 the tool's complexity (7 parameters, no annotations, no output schema), the description is partially complete. It excels in parameter semantics but lacks behavioral context (e.g., rate limits, errors) and output details beyond 'Formatted reviews data'. For a data extraction tool, more output structure guidance would help, but the parameter coverage raises it above minimal viability.

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 description provides detailed parameter semantics in the 'Args' section, explaining each parameter's purpose with examples (e.g., 'query: Place query, place ID, or business name'). With 0% schema description coverage, this fully compensates by adding meaning beyond the bare schema. However, it doesn't cover all nuances (e.g., exact format for 'cutoff' as Unix timestamp).

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Extract reviews from Google Maps places using Outscraper.' It specifies the verb ('extract'), resource ('reviews from Google Maps places'), and method ('using Outscraper'). However, it doesn't explicitly differentiate from its sibling 'google_maps_search', which likely searches for places rather than extracting reviews.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions the sibling tool 'google_maps_search' in the context signals, but the description itself offers no explicit when/when-not instructions or comparisons. Usage is implied through the purpose statement but lacks actionable guidance.

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

TDQS

B3.4/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: google_maps_reviews extracts reviews from specific places, while google_maps_search finds businesses and places based on queries. There is no overlap in functionality - one is for retrieving existing reviews, the other is for discovering places.

Naming Consistency5/5

Both tools follow the exact same naming pattern: google_maps_ followed by a descriptive action (reviews, search). The naming is perfectly consistent and immediately communicates what each tool does within the Google Maps/Outscraper domain.

Tool Count2/5

With only 2 tools, this server feels significantly under-scoped for what appears to be a Google Maps data extraction service. While the two tools cover basic search and review extraction, there are likely many other Google Maps operations that would be valuable (business details, photos, directions, etc.).

Completeness2/5

For a Google Maps data extraction server, the surface is severely incomplete. While search and review extraction are useful starting points, there's no coverage for getting detailed business information, extracting photos, retrieving directions, accessing opening hours, or other common Google Maps operations. Agents will hit dead ends trying to perform comprehensive Google Maps tasks.

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
    A
    maintenance
    A Model Context Protocol server that provides Google Maps API integration, allowing users to search locations, get place details, geocode addresses, calculate distances, obtain directions, and retrieve elevation data through LLM processing capabilities.
    7
    1,992
    428
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides access to Outscraper's data extraction services for business intelligence, location data, and reviews across platforms like Google Maps, Amazon, and Yelp. It enables AI assistants to perform comprehensive web scraping tasks including contact information retrieval and geolocation services.
    6
    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/jayozer/outscraper-mcp'

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