Skip to main content
Glama
gabrielbelli

pelando-mcp

by gabrielbelli

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PELANDO_LOG_LEVELNostructlog level.INFO
PELANDO_CACHE_PATHNoPath to sqlite cache. Defaults to /data/cache.sqlite in Docker, data/cache.sqlite locally./data/cache.sqlite
PELANDO_USER_AGENTNoSent on every request. Identifies the client truthfully.pelando-mcp/0.1 (+repo url)
PELANDO_RATE_LIMIT_RPSNoMax requests/sec.1.0
PELANDO_RATE_LIMIT_BURSTNoToken-bucket burst.3

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_dealsA

Search deals that Pelando users have posted.

Returns community postings, NOT a catalogue: one merchant per posting, free-text titles, and only products someone chose to post. There is no product database behind this — even mainstream terms can legitimately return nothing.

Pelando's search is token-based and loose ("iphone 16 pro" matches "iPhone 14 Pro ... 16"), so each result carries a relevance block. With drop_irrelevant the weak matches are moved to related rather than deleted, so nothing is hidden from you.

Only include_expired and sort are server-side. Every other filter is applied locally after fetching, so a narrow filter with a small size may return few rows even when more exist upstream.

browse_feedB

Browse Pelando's own feeds, optionally scoped to one community.

community must be one of the 11 canonical slugs — there is no finer taxonomy on the site. For electronics use tech-lover or mundo-gamer. An unknown slug is rejected here rather than sent, because the API silently ignores it and returns the global feed instead.

get_dealB

Fetch one deal by UUID or by slug.

A slug works directly, so a URL the user pasted (pelando.com.br/d/<slug>) can be handed over with just the last path segment.

get_deal_commentsB

Read a deal's comment thread — where the crowd corrects a bad posting.

The thread is the only place a fake discount gets explained; there is no report or flag field in Pelando's data. Note the upstream endpoint has no pagination and returns the whole tree at once, so limit truncates locally and truncated tells you when that happened.

assess_deal_qualityA

Judge whether the community believes a deal is genuine.

This is what Pelando has that a price comparator does not. It reads the crowd's vote (temperature, which goes NEGATIVE when users think a discount is fake or the price was inflated beforehand), the comment reactions, the poster's reputation, the deal's age and status, and any condition declared in the title.

Returns a verdict WITH its evidence attached, never a bare score — present the reasoning to the user rather than the label alone. It judges community sentiment, not merchant truth: it cannot verify that the price is real or still available.

search_storesA

Look up a merchant: its live activity counts and its top coupons.

Matching is loose and substring-based upstream — "amazon" also returns "Amaro" — so results are ranked here by how closely the name matches, but the caller should still check the name before acting on the first row.

promotion_count tells you how many active promotions a store has, but there is no endpoint anywhere that lists them. To see a store's deals, search a product term and filter by store.

get_store_couponsA

Fetch a store's coupon codes.

only_valid_codes drops entries whose code is prose rather than a redeemable code — the field has been seen holding instructions like "Resgatar cupom abaixo do produto".

Coupons expire silently. Every code is reported with the date it was posted so its age is visible; none of them is guaranteed to still work.

list_communitiesA

List Pelando's 11 communities — the site's only browse taxonomy.

There is no category system beside this: deals carry a bare numeric categoryId with no label anywhere in the data. tech-lover and mundo-gamer are the electronics ones.

pingA

Liveness check. Returns server name, version, and runtime config.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct action+resource: search_deals vs browse_feed are separated by query-based vs community-feed retrieval, search_stores vs get_store_coupons split merchant lookup from coupon codes, and get_deal/get_deal_comments/assess_deal_quality are clearly layered. Descriptions explicitly state boundaries and upstream limitations, leaving little room for misselection.

Naming Consistency5/5

Uniform snake_case verb_noun pattern throughout (search_deals, browse_feed, get_deal, get_deal_comments, assess_deal_quality, search_stores, get_store_coupons, list_communities, ping). Verbs are used consistently and predictably for their intent.

Tool Count5/5

Nine tools is well within the ideal 3-15 range and each one maps to a distinct capability (search, browse, fetch, comments, quality, stores, coupons, taxonomy, liveness). No filler or redundant tools.

Completeness4/5

The read-only deal-consumption surface is thorough: discovery (search/browse), retrieval (deal/comments), trust assessment, stores, coupons, and taxonomy are all covered. Minor gaps exist—no direct store-deals listing (only a documented workaround) and no pagination for comments beyond local truncation—but agents can work around these.

Maintenance

ActivitySlowing
ResponsivenessNo issues