Joomil — Swiss Classifieds MCP
Server Details
Search Swiss classifieds on Joomil.ch — top marketplace in French-speaking Switzerland since 2007.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- Valmo-Sarl/joomil-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 5 of 5 tools scored.
All five tools have clearly distinct purposes: getting cantons, getting categories, getting a single classified, searching classifieds, and suggesting filters. No two tools overlap in functionality.
All tool names follow a consistent verb_noun snake_case pattern (get_cantons, get_categories, get_classified, search_classifieds, suggest_filters), making the set predictable and easy to navigate.
With 5 tools, the server is well-scoped for querying a classifieds marketplace. Each tool covers a necessary operation without excess or deficiency.
The tool set provides comprehensive read operations (listing metadata, searching, fetching details, and filter suggestion). A minor gap might be the lack of a dedicated tool for retrieving vendor information directly, but overall the surface is adequate for browsing classifieds.
Available Tools
5 toolsget_cantonsARead-onlyInspect
List the Swiss cantons supported by Joomil's canton filter. Returns the exact name value to pass to search_classifieds, plus a readable French label. Call this before filtering by canton — the API values are non-obvious (e.g. 'Bern' not 'Berne', 'Geneve' not 'Genève' or 'Geneva').
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| cantons | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds value beyond annotations by explaining the return format (exact name and readable French label) and why the API values are non-obvious, e.g., 'Bern' not 'Berne'. No contradiction with readOnlyHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each essential. Front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and presence of an output schema, the description fully covers what the tool does, what it returns, and why it's needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters present; schema coverage is 100% trivially. Baseline 4 for 0 parameters. Description explains output semantics well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists Swiss cantons supported by Joomil's canton filter, distinguishing it from sibling tools like get_categories, get_classified, and search_classifieds by its specific preparatory role for filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: 'Call this before filtering by canton' and provides context about non-obvious API values. Lacks explicit when-not-to-use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_categoriesARead-onlyInspect
List active categories of the Joomil.ch marketplace. Returns a flat list with parent_id for hierarchy reconstruction. Omit parent_id for all categories, use parent_id=0 for root categories only, or pass a specific ID to get direct children of that category.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | No | Filter to direct children of this category ID. Omit for all categories. Use 0 for root categories only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| categories | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. The description adds that it returns a flat list with parent_id for hierarchy reconstruction, and explains filtering behavior, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, followed by concise parameter usage instructions. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and output schema present, the description covers purpose, usage, return format, and parameter options completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for parent_id, so the description's additional usage examples (omit, 0, specific ID) enrich the schema without adding fundamentally new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active categories of the Joomil.ch marketplace, which distinguishes it from siblings like get_cantons, get_classified, search_classifieds, and suggest_filters. The verb 'list' and resource 'categories' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific guidance on when to omit parent_id (all categories), use 0 (root only), or pass a specific ID (direct children). This directly helps the agent decide parameter values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_classifiedARead-onlyInspect
Get full details of a single classified ad on Joomil.ch by its numeric ID. Returns complete description, all images URLs, category breadcrumb (full_path), vendor info (name, certified status, pro company), expiry date and boost level. Use search_classifieds first to find relevant listing IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric listing ID — visible in the URL and in search_classifieds results |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| boost | Yes | |
| price | Yes | |
| title | Yes | |
| images | Yes | |
| seller | Yes | |
| category | Yes | |
| location | Yes | |
| created_at | Yes | |
| expires_at | Yes | |
| description | Yes | |
| has_picture | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; description adds comprehensive list of returned details (images, vendor info, etc.) without contradicting annotations. No further behavioral traits needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first covers purpose and return fields, second provides usage guidance. Front-loaded and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple single-parameter tool with output schema present, description adequately covers return fields and usage hint. No gaps for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides parameter description; description adds practical context on where to find the ID (URL, search results), enhancing usability beyond schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get full details of a single classified ad' with specific resource (classified ad) and verb (get). Lists return fields and distinguishes from sibling search_classifieds which is for finding IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises use search_classifieds first to obtain the ID, providing clear context for when to invoke this tool. Lacks explicit exclusions but sufficient for the task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_classifiedsARead-onlyInspect
Search classified ads on Joomil.ch — Switzerland's leading French-speaking classifieds marketplace (since 2007). Returns a paginated list of public listings with title, description (truncated to 300 chars), price, location, category and vendor info. All parameters are optional — call with no arguments to browse the latest listings. Use get_classified to fetch full details of a specific listing.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Full-text search query (searches title and description) | |
| sort | No | Sort order: recent (newest first, default), price_asc, price_desc, views | |
| limit | No | Results per page (1–50, default 20) | |
| canton | No | Swiss canton filter — strict enum. Use get_cantons for the official list. WARNING: values are API-specific (e.g. 'Bern' not 'Berne', 'Geneve' not 'Genève'/'Geneva'). Supported: Geneve, Vaud, Valais, Fribourg, Neuchatel, Jura, Bern, Argovie, Zurich, Lucerne, Bale-Ville, Etranger. | |
| cat_id | No | Category ID filter — includes subcategories automatically. Use get_categories to browse available categories. | |
| offset | No | Pagination offset. Use next_offset from previous response to get next page. | |
| location | No | City name or postal code (NPA) — partial match | |
| price_max | No | Maximum price in CHF (inclusive) | |
| price_min | No | Minimum price in CHF (inclusive) |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| offset | Yes | |
| results | Yes | |
| has_more | Yes | |
| next_offset | Yes | |
| filtered_out | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, confirming no destructive mutations. Description adds valuable behavioral traits: paginated returns, description truncation to 300 chars, and API-specific canton formatting with a warning about value discrepancies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two to three sentences that cover purpose, return structure, parameter optionality, and sibling tool references. No filler; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 optional parameters and an output schema, the description sufficiently covers key behaviors: return fields, parameter roles, and pagination. It references siblings for complementary tasks, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description enhances semantics by explaining that all parameters are optional, pointing to sibling tools for canton and category lists, and noting that offset should use next_offset from previous responses.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool searches classified ads on Joomil.ch, specifying the site's geography and niche. Distinguishes from sibling get_classified by noting that this returns a paginated list with truncated descriptions, while get_classified fetches full details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using get_classified for full details of a specific listing. Mentions all parameters are optional, enabling browsing with no arguments. Provides context for canton values (use get_cantons) and category filtering (use get_categories).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_filtersARead-onlyInspect
Infer search_classifieds filters from a natural-language query. Use this before search_classifieds when the user mentions a category, location, canton or price in free text. Returns a ready-to-use filters object, a category confidence score and warnings for uncertain matches.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language search request, e.g. 'appartement 3 pièces à Sion' or 'Tesla Model 3 moins de 25000 CHF'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| filters | Yes | |
| category | Yes | |
| warnings | Yes | |
| next_step | Yes | |
| confidence | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint and destructiveHint annotations, description discloses return object shape (filters, confidence score, warnings) and behavior on uncertain matches. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states core function, second adds usage guidance and return structure. No redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given single parameter, output schema, and sibling tools, description fully covers when and how to use. Includes sufficient behavioral and return info for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already provides example. Description does not add new parameter-level detail beyond the purpose, meeting baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it infers filters from natural-language query. Includes specific examples (category, location, canton, price) and distinguishes from sibling search_classifieds tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use before search_classifieds when user mentions specific entities in free text. Provides clear context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!