pelando-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., "@pelando-mcpsearch for deals on smart TVs"
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.
pelando-mcp
MCP server for pelando.com.br, the Brazilian community deal board. It answers the question a price comparator structurally cannot: did the crowd believe this discount?
Pelando's temperature score goes negative when users judge a deal fake or the price inflated before the "promotion". No other Brazilian price source exposes that, and — as of August 2026 — no other MCP server exposes Pelando at all.
See PLAN.md for the full design, the reconnaissance behind it, and the source-selection
decision.
What it is, and what it is not
This is a community deal reader, not a price comparator. Pelando has no product catalogue —
verified four ways, see PLAN.md §2 — so the
server does not pretend otherwise:
It can tell you | It cannot tell you |
What users posted, at what price, from which store | What a product costs on a shelf right now |
Whether the crowd upvoted or downvoted it | Every store selling product X, with prices |
What the comment thread says is wrong with it | A 30/90-day price curve |
Coupon codes and which store has active deals | Product specs, or anything about a product nobody posted |
Coverage is exactly what the community posts. Even mainstream terms legitimately return nothing:
iphone 16 pro currently has zero live promotions against ~99 archived ones. That is a real
answer, not a failure.
Related MCP server: mcp-brazil-marketplaces
Tools
Tool | Purpose |
| Free-text deal search. Weak matches are demoted to |
| Pelando's own feeds, optionally scoped to a community ( |
| One deal by UUID or slug — a pasted |
| The comment thread, where a bad posting gets corrected. |
| The point of the project. The crowd's verdict, with its evidence. |
| Merchant lookup: live promotion counts and top coupons. |
| Literal redeemable codes, with prose masquerading as codes filtered out. |
| The 11 communities — the site's only taxonomy. |
| Liveness. |
assess_deal_quality
Every signal is already in payloads we fetch, so it costs at most one extra request. Real output, against a live deal:
{
"title": "[REEMBALADO] GeForce RTX 5070 OC 12GB",
"verdict": "crowd_rejected",
"temperature": -229,
"price": 4129.0,
"store_name": "Terabyte",
"warnings": [
"Negative temperature (-229). On Pelando that usually means users judged the discount fake,
the price inflated beforehand, or the listing misleading.",
"The title declares this as 'reembalado'. Do not compare it against new-unit prices."
]
}It returns a verdict with its evidence attached, never a bare score. A score invites the calling model to quote it as fact; evidence invites it to explain, and lets you disagree.
Quick start (local, venv)
Requires Python ≥ 3.12.
python3 -m venv venv
./venv/bin/pip install -e ".[dev]"
./venv/bin/pytest -m "not live" # offline, runs against checked-in fixtures
./venv/bin/pelando-mcp # runs the MCP server over stdioEnd-to-end check against the live site:
./venv/bin/python scripts/verify_all_tools.py # writes to data/verify/Docker
Multi-arch images (linux/amd64, linux/arm64) are published on every push to main:
docker pull ghcr.io/gabrielbelli/pelando-mcp:latest
docker run --rm -i -v pelando-mcp-data:/data ghcr.io/gabrielbelli/pelando-mcp:latestOr build locally:
docker compose build
docker compose run --rm pelando-mcpA named volume holds the sqlite cache at /data/cache.sqlite.
Run this from home, not from a cloud host. Cloudflare fronts Pelando and blocks datacentre IP ranges outright — a 403 interstitial on every request,
robots.txtincluded, no matter how honest the User-Agent is. Measured: the identical client returns 200 from a residential connection and 403 from a GitHub Actions runner. So the image is fine on a laptop, home server or NAS, and will not work on a VPS. Treat that as a constraint to respect rather than a puzzle to route around with a proxy — see Politeness.
Wiring into Claude
Docker (recommended)
{
"mcpServers": {
"pelando": {
"command": "docker",
"args": ["run", "--rm", "-i", "-v", "pelando-mcp-data:/data", "ghcr.io/gabrielbelli/pelando-mcp:latest"]
}
}
}Local venv
{
"mcpServers": {
"pelando": {
"command": "/absolute/path/to/pelando-mcp/venv/bin/pelando-mcp"
}
}
}Configuration
Variable | Default | Purpose |
|
| Sent on every request. See below. |
|
| Max requests/sec. |
|
| Token-bucket burst. |
|
| sqlite cache. |
|
| structlog level. |
Politeness, and why Pelando
Pelando was chosen on compliance grounds as much as data grounds. Zoom, Buscapé, Bondfaro, Mercado
Livre and Hardmob all name ClaudeBot / Claude-User / Anthropic-AI under Disallow: / —
Zoom's under a heading reading "Bloqueio de Scrapers de Inteligência Artificial (Proteção do
catálogo e dados de preço)". Pelando's robots.txt is Allow: /, with disallows confined to
logged-in pages, and its Terms of Use carry no anti-crawler clause.
Practically, that means:
The User-Agent identifies us truthfully rather than impersonating Chrome. Cloudflare blocks bot UA strings — including
python-httpx, our own library — but an honest self-identifying UA returns 200. If this server ever becomes a nuisance, the operator can email us instead of blocking us. Don't replace it with a browser string.Cloudflare also blocks by IP range, not only by UA. Datacentre ranges get a 403 interstitial however honest the UA is, which is why this runs from a home connection and why the live contract tests are not in CI. A residential proxy would defeat that block; we don't ship one.
1 req/s, concurrency 1, with aggressive sqlite caching. Measured headroom is much larger; that is not a reason to use it.
robots.txtis fetched at startup and paths are actually evaluated against it.The merchant's own link is surfaced, never Pelando's affiliate redirect. A tool that presents itself as neutral should not silently monetise your click for a third party.
No login, no writes, no background polling, no bulk crawling.
Layout
src/pelando_mcp/
├── server.py # MCPServer entry, registers tools
├── client.py # httpx async, honest UA, token bucket, retries, robots, cache
├── api.py # typed calls; validates params the API would silently ignore
├── models.py # pydantic v2 — nullability mirrors observed live payloads
├── normalise.py # condition detection + relevance filtering
├── quality.py # the crowd-verdict heuristic
└── tools/ # MCP tool registrations
tests/
└── fixtures/ # real captured JSON + HTML for offline parser tests
scripts/
└── verify_all_tools.pyNotes
Data comes from an undocumented internal JSON API. It has no contract and no deprecation policy, so
pytest -m livehits the real endpoints and fails on schema drift. A scraper does not break loudly — it starts returning "no deals found" and lies to you. Run it by hand every so often, from home; if the edge blocks the network it skips rather than fails, because a 403 says nothing about the schema.Deal
statusis maintained by users and moderators, not verified against the merchant. An "active" deal can be long dead at the shop.Titles are free text.
[REEMBALADO],usadoandopen boxare detected and flagged; a silent title is reported asunknowncondition, never as new.Prices are BRL, exclude frete unless
free_shippingis true, and0is a real price (free games).
Licence
BSD 2-Clause — see LICENSE.
This server cannot be installed
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 Servers
- Flicense-qualityDmaintenanceMCP server for Prelo, the Brazilian literary releases aggregator. Enables searching the catalog by month, publisher, or author.
- AlicenseAqualityAmaintenanceMCP server to search and retrieve public ads from OLX Brasil and Mercado Livre Brasil with automatic anti-bot bypass.4MIT
- AlicenseAqualityCmaintenanceMCP server for Brazilian marketplace product search across Mercado Livre, Shopee, and AliExpress, with automatic x402 micropayments.4195MIT
- Flicense-qualityBmaintenanceMCP server that provides access to Brazilian public and commercial data, including CNPJ company info, government procurement (PNCP) searches, and FIPE vehicle pricing, with optional alert registration for new tenders.
Related MCP Connectors
Gamedeals MCP — wraps CheapShark API (game deal aggregator, no auth required)
MCP server for live, sourced Brazilian public data from the official IBGE APIs.
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
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/gabrielbelli/pelando-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server