Skip to main content
Glama

mcp-server

Server Details

MCP server for Muovi, Argentina's trust-first local services marketplace: find pros, draft tasks.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 50 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Server Listing
@muovi/mcp-server

TDQS

A4.4/5.0

Scored across 8 tools

Disambiguation4/5

The two task-creation tools (muovi_create_task_draft and muovi_create_task_link) have related outcomes but are clearly differentiated by their descriptions: one saves a draft with pre-filled answers, the other just builds a URL. Other tools target distinct resources (professionals, reviews, services, cities), so misselection is unlikely but possible for the task tools.

Naming Consistency5/5

All tools follow a consistent muovi_verb_noun snake_case pattern, making the set predictable and easy to navigate.

Tool Count5/5

8 tools is well-scoped for a marketplace assistant, with each tool serving a clear purpose in the discovery-to-handoff workflow.

Completeness4/5

The core workflows—listing services and cities, searching professionals, fetching details and reviews, getting requirements, and creating task drafts/links—are fully covered. Minor gaps exist, such as no tool to manage or update an existing task, but the server's design intentionally hands off task publication to the user.

Available Tools

8 tools
muovi_create_task_draftCreate task draftAInspect

Save a task draft on Muovi for the person you are helping, and get back a link for them. The person opens the link, reviews the draft, signs in to Muovi and publishes it themselves. This tool publishes nothing and does not notify any professional. To hand over the full request, call muovi_get_service_requirements for the service first, ask the person every required question, and send the answers in slots (keyed by slot key) with location. If a required answer is missing, the result has status: "incomplete", lists the questions still to ask and carries no link: ask them and call again with every slot. If a value is not accepted, the result has status: "invalid_slots" and names each slot. A draft with every required answer opens on a review form with those answers filled in, without asking them again unless Muovi's own check of the request raises a question, and the person confirms the address on a map before publishing. Sending only description still saves a draft, and that link opens Muovi's assistant, which asks the person its questions. To direct the draft to one professional, pass professional_id, the id of any result from muovi_search_professionals: when the person publishes it, the task goes to that professional first for 24 hours and then opens to everyone, unless open_to_others is true, in which case it opens to everyone right away and that professional is still told. Set open_to_others from what the person chose; they can change it on the review form. A ProSite slug in professional_slug is still accepted instead of professional_id. Leave both out for a general request to get offers from several professionals. service_slug comes from muovi_list_services. A link nobody has opened expires 24 hours after it is created. The first person to open it takes the draft, signed in or not, and can reopen the link for up to 7 days, so give it only to that person. Do not include phone numbers, email addresses or other contact details in any text.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotsNoOptional. The person's answers, keyed by slot key from `muovi_get_service_requirements`. Send each value in the slot's `value_format`.
titleNoOptional. A short title for the task, 5 to 80 characters. Left out, Muovi takes it from the description.
locationNoOptional. Where the job is: `neighborhood_slug`, `address`, or both. The address is saved as text; the person confirms the place on the map on Muovi.
zone_textNoOptional. Where the job is, as free text (neighborhood or area), up to 120 characters.
descriptionYesWhat the person needs done, in their words: 20 to 2000 characters.
service_slugYesThe service slug (from `muovi_list_services`), e.g. "electricidad".
budget_amountNoOptional. The person's budget in ARS, as a positive number.
open_to_othersNoOptional, with professional_id. True when the person also wants offers from other professionals right away; false or omitted gives the chosen professional the first 24 hours.
preferred_dateNoRequired with preferred_time "specific_date", otherwise omitted. YYYY-MM-DD, from today up to 90 days ahead (Argentina time).
preferred_timeNoOptional. When the person wants it done. Use "specific_date" together with `preferred_date`.
professional_idNoOptional. The `id` of a professional from `muovi_search_professionals` to direct the draft to. Omit for a general request.
time_preferencesNoOptional. The parts of the day that suit the person.
professional_slugNoOptional. A ProSite slug from an older link, instead of professional_id.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover safety hints (`readOnlyHint=false`, `destructiveHint=false`, `openWorldHint=true`), but the description adds substantial behavioral context beyond them: return statuses (`incomplete`, `invalid_slots`), link expiry after 24 hours unopened and 7-day reopen window, first-opener ownership, professional routing (24-hour head start unless `open_to_others` is true), and a privacy constraint. This is rich, non-contradictory disclosure.

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?

Although long, the description is front-loaded with purpose and each sentence conveys a distinct behavioral rule, edge case, or workflow step. There is no filler or repetition; dense but necessary detail for a 13-parameter tool. Information is arranged logically from draft creation through routing, expiry, and privacy.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so by naming the `incomplete` and `invalid_slots` statuses and explaining the link returned on success. It also covers prerequisites, routing behavior, link lifecycle, and privacy rules. Given the tool's complexity and annotation coverage, an agent has enough context to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the process behind `slots` (keyed by slot key from `muovi_get_service_requirements`, missing answers produce `status: incomplete`), the practical meaning of `professional_id` and `open_to_others` (24-hour exclusivity versus immediate opening), and the fallback to `professional_slug`. Some fields such as `title`, `budget_amount`, and `zone_text` add little beyond their schema descriptions, so it does not reach a full 5.

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 opens with a specific verb and resource: 'Save a task draft on Muovi' and 'get back a link.' It immediately distinguishes this tool from publishing ('This tool publishes nothing and does not notify any professional') and from the full-request workflow that requires calling `muovi_get_service_requirements` first. An agent can identify the tool's role without opening the schema.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance: call `muovi_get_service_requirements` first, ask every required question, send answers in `slots` with `location`; use `professional_id` to direct the draft; omit both `professional_id` and `professional_slug` for a general request. It also states when `description` alone is sufficient. Alternatives and conditions are named rather than left to inference.

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

muovi_get_professionalGet professionalA
Read-only
Inspect

Fetch the full public profile of one Muovi professional by the id from muovi_search_professionals. Returns display name, headline, bio, portfolio image URLs, specialties, city and neighborhoods, services, ratings, verifications, and profile_url, the professional's public profile page on Muovi. Phone, email and WhatsApp are not returned. To start a task for this professional, use muovi_create_task_link or muovi_create_task_draft with this id as professional_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe professional's `id` from `muovi_search_professionals`. A ProSite slug from an older link is also accepted.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful disclosure about the payload — what is returned and, importantly, that phone, email and WhatsApp are NOT returned — but says nothing about failures (invalid id, unknown slug) or whether results are cached. Decent additive context, not rich.

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?

A single dense, front-loaded passage: identification of the resource first, then return contents, then the negative disclosure, then the hand-off to sibling tools. Every sentence carries weight and none is padding.

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

Completeness5/5

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

With no output schema, the description compensates by enumerating return fields and explicitly listing excluded PII, which is exactly what an agent needs to decide whether this call answers the user's question. Combined with the task-creation hand-off, nothing material is missing for a single-parameter read tool.

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 description coverage is 100% and the schema already documents both the search-sourced id and the accepted ProSite slug fallback, so the description's restatement adds little. Baseline 3 is correct when the schema fully carries parameter meaning.

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 specific verb and resource ('Fetch the full public profile of one Muovi professional') and immediately scopes the identity of the resource to an id sourced from muovi_search_professionals. Enumerating the returned fields makes it unambiguous against siblings like muovi_get_reviews.

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

Usage Guidelines5/5

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

Explicitly tells the agent where the required id comes from (muovi_search_professionals) and gives a follow-on routing rule: to start a task, use muovi_create_task_link or muovi_create_task_draft with this id as professional_id. This is when-to-use plus what-to-use-next, nothing left to inference.

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

muovi_get_reviewsGet reviewsA
Read-only
Inspect

Fetch paginated reviews for one Muovi professional by the id from muovi_search_professionals, sorted most-recent first. Each review has a 1-5 rating, an optional title and free-text comment, the author's reduced display name (e.g. "María G." — full surnames are not returned), the author role (client or worker), the service category the review is associated with, and an ISO created_at timestamp. Use this to surface social proof when recommending a professional.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe professional's `id` from `muovi_search_professionals`. A ProSite slug from an older link is also accepted.
limitNoMaximum number of reviews per page (default 20, max 50).
offsetNoZero-based offset into the review list for pagination.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false), so the bar is lower, and the description clears it by disclosing sort order, pagination, and a privacy behavior an agent would otherwise not anticipate (surnames are redacted to 'María G.'). It does not state rate limits or empty-state behavior, but that is minor against the annotation coverage.

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?

Two sentences, front-loaded with the operation and resource, then the derived-`id` routing rule before the field inventory. The field enumeration is long but earns its place because there is no output schema. Minor density cost from listing six fields in a single sentence.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so explicitly: rating range, optional title/comment, reduced author name, author role, service category, and ISO created_at. Combined with the id-sourcing rule and pagination, an agent has everything needed to call and interpret this tool.

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 description coverage is 100%, so `id`, `limit` (default 20, max 50), and `offset` are already fully documented in the schema, and the description adds no syntax beyond that. The only extra nuance, the accepted ProSite slug, is duplicated from the schema rather than expanded. Baseline 3 applies when the schema does the heavy lifting.

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 specific verb and resource ('Fetch paginated reviews for one Muovi professional'), names the ordering (most-recent first), and pins the resource identifier to the sibling tool that produces it. An agent can distinguish this from muovi_get_professional or muovi_search_professionals without opening any schema.

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

Usage Guidelines4/5

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

Gives an explicit use case ('surface social proof when recommending a professional') and ties the `id` to muovi_search_professionals, which routes the agent correctly. It stops short of stating when NOT to use it (e.g., when you only need aggregate rating, which muovi_get_professional may supply), so it is clear context without exclusions.

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

muovi_get_service_requirementsGet service requirementsA
Read-only
Inspect

List the questions Muovi asks for one service, so you can ask the person before calling muovi_create_task_draft. Pass a service_slug from muovi_list_services. Each slot has a key, the question in Spanish (question_es), a type, the accepted options for a choice, a value_format saying what to send, whether it is required, and an ask_if condition when it only applies after another answer. Send the answers back keyed by slot key in the slots argument of muovi_create_task_draft. photo_policy says whether photos help; photos are added by the person on Muovi, not through this server. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_slugYesThe service slug (from `muovi_list_services`), e.g. "plomeria".

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description reinforces it with 'Read-only.' It adds genuinely useful context beyond the annotations: the shape of each returned slot, the `ask_if` conditional applicability, and the boundary that photos are handled by the person on Muovi rather than through this server. It does not discuss pagination or result size, which keeps it short of a 5.

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?

Purpose is front-loaded in the first clause, and every subsequent sentence carries distinct information (parameter source, output fields, feedback path, photo boundary). It is somewhat dense in the enumeration of slot fields, but nothing is redundant.

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

Completeness5/5

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

There is no output schema, so the description correctly carries the burden of describing the return shape: `key`, `question_es`, `type`, `options`, `value_format`, `required`, `ask_if`, and `photo_policy`. It also closes the loop on how answers are consumed by `muovi_create_task_draft`, which is exactly what an agent needs to complete the workflow.

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 description coverage is 100% and the single parameter is fully documented, so the baseline is 3. The description's 'Pass a `service_slug` from `muovi_list_services`' restates the provenance already present in the schema description rather than adding new syntax or format detail.

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 specific verb ('List') and resource ('the questions Muovi asks for one service') and immediately frames the workflow role relative to siblings (`muovi_create_task_draft`, `muovi_list_services`). An agent can tell it apart from the other muovi_* tools without opening the schema.

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

Usage Guidelines5/5

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

Explicitly says when to use it ('so you can ask the person before calling `muovi_create_task_draft`') and where the required input comes from ('Pass a `service_slug` from `muovi_list_services`'). Both the trigger condition and the prerequisite source are named, leaving nothing to inference.

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

muovi_list_citiesList citiesA
Read-only
Inspect

List every Argentine city Muovi serves, with active neighborhoods nested under each. Each city has a stable slug (used as the city parameter on muovi_search_professionals) and a human-readable name. Each neighborhood has its own slug (used as the neighborhood parameter on muovi_search_professionals). Call this when you need to resolve a user's location wording to a Muovi city or neighborhood slug.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, non-destructive), and the description adds real behavioral context: slugs are stable, the response nests neighborhoods under cities, and each entity exposes slug + name. It doesn't mention pagination or what happens for unsupported locations, but for a fixed catalog read that is a minor gap.

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?

Three tight sentences, front-loaded with what is returned and followed by the slug contract and the call condition. No filler; every sentence carries information an agent needs.

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

Completeness5/5

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

No output schema exists, so the description carries the return-shape burden and does so: it names the city fields (slug, name), the nested neighborhood fields, and the stability guarantee. For a zero-param read tool this is complete enough to call and consume correctly.

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

Parameters4/5

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

Zero-parameter tool, so the baseline is 4. The description goes further by explaining that the returned slug fields are the exact values expected by the `city` and `neighborhood` parameters of muovi_search_professionals, which links output semantics to downstream parameter use.

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 specific verb and resource ('List every Argentine city Muovi serves') plus the nesting structure (active neighborhoods under each city). A reader immediately knows this is a location-taxonomy lookup and can distinguish it from siblings like muovi_search_professionals or muovi_list_services.

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

Usage Guidelines5/5

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

Explicitly states the triggering condition: 'Call this when you need to resolve a user's location wording to a Muovi city or neighborhood slug.' It also names the downstream tools that consume the slugs, so the agent knows this is a prerequisite step rather than a terminal call.

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

muovi_list_servicesList servicesA
Read-only
Inspect

List every service category Muovi supports in Argentina — home trades (electricidad, plomería, gas, pintura, carpintería, cerrajería, albañilería, herrería, techista), limpieza, jardinería, aire acondicionado, and moving/hauling: mudanzas (movers) and fletes (light freight/hauling). Every listed professional is identity-verified and reviewed, with on-platform payment and dispute resolution. Each entry has a stable slug (used as the service parameter on muovi_search_professionals and muovi_create_task_link), a human-readable name, an optional description, and a requires_matricula flag indicating whether listed professionals must hold a verified professional license. Call this first when you need to map a user's natural-language request to a Muovi service slug.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds real context beyond them — a stable slug, the requires_matricula license flag, and ecosystem guarantees (identity-verified professionals, on-platform payment, dispute resolution) — but says nothing about auth needs, caching, or rate limits.

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?

Front-loaded with the verb and scope, then return shape, then the usage trigger — good ordering with no boilerplate. The long parenthetical enumeration of Spanish trade names is useful for slug mapping but is the one place the sentence sprawls.

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

Completeness5/5

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

There is no output schema, and the description compensates by naming the fields returned (slug, name, optional description, requires_matricula). Combined with the zero-parameter schema and the sequencing guidance, an agent has everything needed to call this correctly.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description does add cross-tool meaning by explaining that each entry's slug is the value to pass as the `service` parameter on muovi_search_professionals and muovi_create_task_link, which is more than an empty schema conveys.

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?

Specific verb+resource (list every service category Muovi supports) with an explicit geographic scope (Argentina) and an enumerated inventory of the categories returned. It is clearly distinguishable from siblings like muovi_list_cities or muovi_search_professionals, which operate on cities and professionals rather than the service taxonomy.

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

Usage Guidelines5/5

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

Ends with an explicit sequencing rule: 'Call this first when you need to map a user's natural-language request to a Muovi service slug.' It also names the downstream consumers of the returned slug (muovi_search_professionals, muovi_create_task_link), so the agent knows both when to call it and what it enables.

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

muovi_search_professionalsSearch professionalsA
Read-only
Inspect

Find up to 5 Muovi professionals for one service in one barrio. Both service (a slug from muovi_list_services) and neighborhood (a barrio slug from muovi_list_cities) are required: if the person has not said which service they need and in which barrio, ask them before searching. Every professional returned has a coverage area that includes the searched barrio, and match in the response names the service, barrio and city searched: present the results as professionals who work in that barrio. Results list professionals who declare the searched trade first, ordered by review score, with verified identity, background check and matrícula counting toward it; professionals whose registered business is in another trade come last. Each result has one rating and one review_count, and verifications: for each professional, say whether identity, matrícula, background check (antecedentes) and phone are verified. Each result also has up to 3 portfolio image URLs, an id and a profile_url, the professional's public profile page on Muovi; no phone, email or WhatsApp is returned. After showing the results, offer the person two choices: a task for one professional (muovi_create_task_link, or muovi_create_task_draft with professional_id, passing that result's id), or a general request to get offers from several professionals (muovi_create_task_draft without a professional). Use muovi_get_professional with the id for the full profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoOptional. City slug (e.g. "caba"), needed only when a barrio slug exists in more than one city.
serviceYesRequired. Service slug (e.g. "plomeria"), from `muovi_list_services`.
neighborhoodYesRequired. Barrio slug (e.g. "palermo"), from `muovi_list_cities`.
has_matriculaNoWhen true, only return professionals with a verified matrícula on file (electricians, gas fitters, etc.).
verified_identityNoWhen true, only return professionals whose identity Muovi has verified.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses the 5-result cap, ordering rules (declared trade first, then review score, verified identity/background/matrícula weighting, other-trade businesses last), the presence of a match echo, and the privacy fact that no phone, email or WhatsApp is returned. This is behavior an agent cannot infer from structured fields.

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 required-inputs rule is front-loaded and every paragraph carries actionable content, but the middle section on ordering and verification fields is dense and slightly repetitive for a single tool description. Still efficient enough to justify its length given the absence of an output schema.

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

Completeness5/5

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

With no output schema, the description fully documents the return shape (match, rating, review_count, verifications, up to 3 portfolio URLs, id, profile_url) and the next-step workflow, so an agent has everything needed to call the tool and act on the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics: it ties service and neighborhood to their slug-producing tools and to the requirement to ask the user when missing, and explains city's optional disambiguation role implicitly. The has_matricula and verified_identity filters are left to the schema, so it does not fully compensate beyond baseline.

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 opens with a precise verb+resource+scope: find up to 5 professionals for one service in one barrio. It clearly separates this from siblings such as muovi_get_professional (full profile) and muovi_create_task_draft (next step), so an agent can route correctly without reading any schema.

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

Usage Guidelines5/5

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

It states both required inputs and their slug sources, instructs the agent to ask the user before searching when service or barrio is unknown, and explicitly routes post-search follow-ups to muovi_create_task_link, muovi_create_task_draft (with or without professional_id) and muovi_get_professional. Alternative conditions are spelled out rather than implied.

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. 6 tool updates
    • Addedmuovi_create_task_draft
    • Changedmuovi_create_task_link5 fields changed
      • addedInput schema / properties / professional_id
        Added value: +{
        +  "description": "The `id` of a professional from `muovi_search_professionals`.",
        +  "maxLength": 36,
        +  "minLength": 36,
        +  "type": "string"
        +}
      • removedInput schema / properties / professional_slug
        Removed value: -{
        -  "description": "The professional's URL-safe slug (from `muovi_search_professionals` or `muovi_get_professional`).",
        -  "minLength": 1,
        -  "pattern": "^[a-z0-9][a-z0-9.\\-]*$",
        -  "type": "string"
        -}
      • changedInput schema / properties / service_slug / description
        Previous value: -"The service slug to pre-fill in the task flow (from `muovi_list_services`)."New value: +"The service slug to start the task with (from `muovi_list_services`)."
      • changedInput schema / properties / service_slug / pattern
        Previous value: -"^[a-z0-9][a-z0-9.\\-]*$"New value: +"^[a-z0-9][a-z0-9_-]{0,63}$"
      • changedInput schema / required
        Previous value: -[
        -  "professional_slug",
        -  "service_slug"
        -]New value: +[
        +  "professional_id",
        +  "service_slug"
        +]
    • Changedmuovi_get_professional3 fields changed
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "The professional's `id` from `muovi_search_professionals`. A ProSite slug from an older link is also accepted.",
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "description": "The professional's URL-safe slug (e.g. \"juan-p-electricista-caba\"). Obtain from `muovi_search_professionals`.",
        -  "minLength": 1,
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "slug"
        -]New value: +[
        +  "id"
        +]
    • Changedmuovi_get_reviews3 fields changed
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "The professional's `id` from `muovi_search_professionals`. A ProSite slug from an older link is also accepted.",
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "description": "The professional's URL-safe slug. Obtain from `muovi_search_professionals` or `muovi_get_professional`.",
        -  "minLength": 1,
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "slug"
        -]New value: +[
        +  "id"
        +]
    • Addedmuovi_get_service_requirements
    • Changedmuovi_search_professionals10 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City slug (e.g. \"caba\"). Matches `City.slug` in the catalog."New value: +"Optional. City slug (e.g. \"caba\"), needed only when a barrio slug exists in more than one city."
      • changedInput schema / properties / has_matricula / description
        Previous value: -"When true, only return pros with a verified professional matrícula on file (electricians, gas fitters, etc.)."New value: +"When true, only return professionals with a verified matrícula on file (electricians, gas fitters, etc.)."
      • removedInput schema / properties / limit
        Removed value: -{
        -  "description": "Maximum number of results per page (default 20, max 50).",
        -  "maximum": 50,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / min_rating
        Removed value: -{
        -  "description": "Minimum blended average rating, 0-5 inclusive.",
        -  "maximum": 5,
        -  "minimum": 0,
        -  "type": "number"
        -}
      • removedInput schema / properties / min_reviews
        Removed value: -{
        -  "description": "Minimum blended review count.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • changedInput schema / properties / neighborhood / description
        Previous value: -"Neighborhood slug (e.g. \"palermo\"). Matches `Neighborhood.slug` in the catalog."New value: +"Required. Barrio slug (e.g. \"palermo\"), from `muovi_list_cities`."
      • removedInput schema / properties / offset
        Removed value: -{
        -  "description": "Zero-based offset into the result set for pagination.",
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • changedInput schema / properties / service / description
        Previous value: -"Service slug (e.g. \"electricidad\"). Matches `Service.slug` in the catalog."New value: +"Required. Service slug (e.g. \"plomeria\"), from `muovi_list_services`."
      • changedInput schema / properties / verified_identity / description
        Previous value: -"When true, only return pros whose identity has been verified by Muovi."New value: +"When true, only return professionals whose identity Muovi has verified."
      • addedInput schema / required
        Added value: +[
        +  "service",
        +  "neighborhood"
        +]
  2. 6 tool updates
    • First observedmuovi_create_task_link
    • First observedmuovi_get_professional
    • First observedmuovi_get_reviews
    • First observedmuovi_list_cities
    • First observedmuovi_list_services
    • First observedmuovi_search_professionals

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Karrito - the digital catalog builder for WhatsApp sellers in LATAM, enabling AI assistants to manage store operations like products, orders, discounts, reviews, shipping, and analytics.
    30
    13 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for managing Argentine judicial cases (expedientes) from portals like PJN, MEV, CABA, and custom cases, supporting CRUD operations, synchronization, and management of tasks, fees, and alerts.
    24
    14 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Mercado Pago's Official MCP Server offers tools so that developers can easily interact with our API using natural language, which simplifies tasks and product integration. Remotely hosted by Mercadolibre supporting Streamable HTTP Transport. Details on how to connect: https://mcp.mercadopago.com/
    1
    8
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources