Skip to main content
Glama

OLX MCP Server

Why search for e-waste in your area by yourself if Claude can do it for you?

100% AI slop.

Features

  • 🌍 Multi-Domain Support: Search across 5 OLX domains (Portugal, Poland, Bulgaria, Romania, Ukraine)

  • 🔍 Search Listings: Search with filters for category, location, price range, and sorting

  • 📋 Listing Details: Get detailed information about specific listings including seller info

  • 🎭 Browser Automation: Reliable web scraping using Playwright

Related MCP server: letgo-mcp

Installation

📋 Claude Desktop Configuration

  1. Locate your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the OLX MCP server to your configuration:

{
  "mcpServers": {
    "olx-mcp": {
      "command": "npx",
      "args": ["olx-mcp"]
    }
  }
}
  1. Restart Claude Desktop to load the new configuration.

🔄 Alternative: Global Installation

If you prefer to install globally:

npm install -g olx-mcp

Then use this config:

{
  "mcpServers": {
    "olx-mcp": {
      "command": "olx-mcp"
    }
  }
}

📦 Development: From Source

git clone https://github.com/l-margiela/olx-mcp.git
cd olx-mcp
npm install
npm run build

Use this config for development:

{
  "mcpServers": {
    "olx-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/olx-mcp/dist/index.js"]
    }
  }
}

Usage

Once configured, you can use the following tools in your MCP client:

Search Listings

Search for listings on any supported OLX domain with various filters:

Can you search for "apartments" in "Lisboa" on OLX Portugal with a maximum price of 1000 euros?
Search for "telefon" in "warszawa" on OLX Poland with prices between 100-500 PLN?

Parameters:

  • domain (required): OLX domain ('olx.pt', 'olx.pl', 'olx.bg', 'olx.ro', 'olx.ua')

  • query (optional): Search term

  • category (optional): Category filter

  • location (optional): Location filter

  • minPrice (optional): Minimum price

  • maxPrice (optional): Maximum price

  • page (default: 1): Page number

  • limit (default: 20): Items per page

  • sortBy (default: 'relevance'): Sort order ('relevance', 'date', 'price-asc', 'price-desc')

Listing Details

Get detailed information about a specific listing from any supported domain:

Can you get the details for listing "ABC123" from OLX Portugal?
Show me details for listing "XYZ789" from OLX Poland including images?

Parameters:

  • domain (required): OLX domain ('olx.pt', 'olx.pl', 'olx.bg', 'olx.ro', 'olx.ua')

  • listingId (required): The ID of the listing

  • includeImages (default: true): Include the listing's gallery image URLs

  • includeSellerInfo (default: true): Include seller information

Development

Scripts

  • npm run build - Build the TypeScript project

  • npm run dev - Run in development mode with hot reload

  • npm start - Run the built server

  • npm test - Run tests (when available)

  • npm run clean - Clean build artifacts

Releasing

Releases are automated. Pushing a v* tag triggers .github/workflows/release.yml, which runs the full CI pipeline, publishes to npm (with provenance), and creates the GitHub Release:

npm version patch   # or minor/major; creates the version commit + v-tag
git push origin main --follow-tags

Do not run npm publish manually — CI publishes on the tag push, so a local publish always fails with "cannot publish over previously published versions". Verify with gh run list (green "Release" run) and gh release view vX.Y.Z.

Troubleshooting

MCP Inspector

For debugging MCP communication, you can use the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

License

MIT License - see LICENSE file for details.

Available Tools

2 tools
getListingDetailsA

Get detailed information about a specific OLX listing from any supported domain (olx.pt, olx.pl, olx.bg, olx.ro, olx.ua) including description, seller info, and images

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
listingIdYes
includeImagesNo
includeSellerInfoNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description shoulders the burden. It discloses what data is returned (description, seller info, images) and that any supported domain works, but does not mention operational traits such as network dependence, potential failures for removed listings, rate limiting, or auth. For a non-mutating lookup this is adequate but not richly transparent.

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?

Single longish sentence with no filler. Each segment adds info: the resource, the domain scope, and the return contents. It could be shortened, but no sentence is redundant.

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?

With no output schema or annotations, the description gives a high-level overview of return content but not enough detail for an agent to predict response shape, error cases, or exact prerequisites (e.g., a valid existing listing ID). The presence of the sibling searchListings is noted via context but not integrated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning: 'specific listing' implies the listingId param, the parenthetical enumerates domain values, and 'description, seller info, and images' hints at what includeImages and includeSellerInfo control. It does not explain the boolean toggles explicitly or the listingId pattern, so it only partially compensates for the lack of schema descriptions.

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?

States a clear verb ('Get') and resource ('detailed information about a specific OLX listing'), enumerates supported domains, and names the kind of content returned. This contrasts with sibling searchListings, which would be for finding listings rather than inspecting one.

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

Usage Guidelines3/5

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

The description implies use when one wants details on a single known listing, but it does not state explicit conditions, prerequisites (e.g., listing ID format), or when to prefer searchListings. Because the sibling's purpose is left to inference, guidance is only implicit.

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

searchListingsC

Search for listings on OLX domains (olx.pt, olx.pl, olx.bg, olx.ro, olx.ua) with various filters including query, category, location, and price range

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
queryNo
domainYes
sortByNorelevance
categoryNo
locationNo
maxPriceNo
minPriceNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only states 'Search for listings' and lists filters, without revealing pagination behavior, response format, rate limits, or any side effects. It is not misleading but lacks essential behavioral context.

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 a single sentence, front-loaded with the core action. It is fairly concise, though slightly run-on due to the enumeration of filters and domains, which could be restructured for readability without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, no output schema, and no annotations, the description is too sparse. It omits that domain is required, does not mention the valid enum values, does not address pagination limits or sorting, and gives no indication of the response structure. This leaves significant gaps for an agent to correctly use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions query, category, location, and price range, which map partially to schema properties. However, it does not clarify that domain is required, nor does it mention pagination (page, limit) or sortBy. With 0% schema description coverage, this partial compensation is insufficient.

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 searches for listings on specific OLX domains with filters, which is a specific verb+resource. It distinguishes itself from sibling getListingDetails by focusing on search rather than fetching details of a single listing.

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?

No explicit guidance on when to use this tool versus the sibling getListingDetails. The description implies general search usage but does not state when to choose this over alternatives or what scenarios it is suitable for.

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.

  1. 1 tool updatev1.0.14
    • ChangedgetListingDetails2 fields changed
      • changedInput schema / properties / includeImages / default
        Previous value: -falseNew value: +true
      • addedInput schema / properties / listingId / pattern
        Added value: +"^[A-Za-z0-9._-]+$"
  2. 2 tool updatesv1.0.9
    • First observedgetListingDetails
    • First observedsearchListings

TDQS

A3.5/5.0

Scored across 2 tools

Disambiguation5/5

searchListings and getListingDetails have clearly distinct purposes: one discovers listings, the other retrieves details for a specific listing. There is no overlap in their functionality.

Naming Consistency5/5

Both tool names follow a consistent camelCase verb_noun pattern: searchListings and getListingDetails. The naming style is uniform and predictable.

Tool Count4/5

With only 2 tools, the server is minimal but well-scoped for a read-only OLX listing lookup service. Slightly thin but each tool covers an essential step in the workflow.

Completeness4/5

The server covers the core read-only lifecycle: finding listings and then viewing details. Missing operations like category browsing or seller info could be gaps, but the essential search-to-detail path is complete.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides browser automation, AI-powered analysis, visual processing, web scraping, automated test generation, and DevTools analysis capabilities. Supports multiple AI providers (OpenAI, Anthropic, Google, Ollama) for intelligent web interaction and data extraction.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search and monitor Dutch and Belgian classifieds (Marktplaats and 2dehands) for listings, seller profiles, and categories.
    5
    2
    MIT