999md-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PASSWORD | No | Password typed on the consent page | |
| CLIENT_ID | No | OAuth client id, 999md-claude-connector by default | 999md-claude-connector |
| SITE_LANG | No | Language of titles, options and descriptions: ru or ro | ru |
| TOKEN_SECRET | No | Token signing key | |
| CLIENT_SECRET | No | OAuth client secret | |
| REDIRECT_URIS | No | Comma-separated allowed callbacks, Claude.ai's by default |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Search 999.md ads by text, category and filters. Returns a page of short ad cards (price, location, date, seller login, first photo, link) plus total count and paging info. |
| get_adA | Full ad: description, all characteristics, amenities, exact location with coordinates, seller's phone numbers and profile, photo and video links, dates. Photo links are text only; to actually look at the photos use the photos tool. |
| photosA | EXPENSIVE: returns the ad's photos as images you can see, ~550 tokens each (compact, long side 768 px) and ~1500 each with full_resolution. They stay in the conversation context for the rest of the chat. Call only when the look matters and the text of get_ad cannot answer: renovation and condition of a flat, body damage on a car, what exactly is being sold. Pick 1-3 finalists first; never call it for every ad of a search page. Page with offset instead of raising limit. |
| get_filtersA | Filters available in a subcategory, with the feature ids and option ids that search accepts. kind='options' -> pass option_ids; 'range' -> min/max (+unit); 'flag' -> feature_id alone. Features with depends_on_feature (city after region, model after brand) need get_options. |
| get_optionsA | Options of one feature, typically a dependent one: cities of a region, sectors of a city, models of a brand. Use the returned ids in search filters. |
| categoriesA | 999.md category tree with live ad counts. No arguments: top-level categories. With category: its subcategories. With query: where ads matching the text live, biggest first. |
| seller_adsB | A seller's profile (registered since, verified, business plan) and their active ads. Handy to tell a private person from an agency or reseller. |
| price_statsA | 999.md's own price estimate over matching ads: median, average, min, max and sample size. Prefer the median: min/max and the average are skewed by mistyped prices. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool has a fairly distinct role: search finds ads, get_ad returns full detail, photos renders images, seller_ads profiles a seller, price_stats gives pricing, and categories/get_filters/get_options handle taxonomy and filter metadata. The main soft spot is the filter trio (get_filters vs get_options vs categories), though descriptions clarify their separation.
Names are readable and mostly noun/verb-noun, but conventions are mixed: get_ad, get_filters, get_options use a get_ prefix while search, photos, seller_ads, price_stats, categories do not. There is a discernible pattern but it is not applied uniformly.
Eight tools is well-scoped for a classifieds browsing server, with each tool covering a distinct and necessary capability. Nothing feels redundant or missing at the count level.
Read/browse coverage is thorough: search, full ad detail, photos, seller info, pricing stats, category tree and filter metadata. Only write operations (posting/managing ads) are absent, which is likely out of scope for this browsing-oriented server.