@muovi/mcp-server-hosted
Registry code: 2fba99bd320d4144
Muovi marketplace tools. Call `muovi_list_services` and `muovi_list_cities` first to discover slugs, then `muovi_search_professionals`, which needs both a service and a barrio and returns up to 5 professionals per page: if the person has not said which service and which barrio, ask them. Every tool is read-only except `muovi_create_task_draft`, which saves a task draft and returns a link: the person opens it, reviews the draft, signs in and publishes the task themselves, so do not tell them a task was published. Before saving a draft, call `muovi_get_service_requirements` for the service and…
- endpoint
- https://mcp.muovi.com.ar/
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is @muovi/mcp-server-hosted live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is @muovi/mcp-server-hosted free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does @muovi/mcp-server-hosted have?
- 8 tools: muovi_create_task_link, muovi_get_service_requirements, muovi_get_professional, muovi_create_task_draft, muovi_get_reviews, muovi_search_professionals, muovi_list_cities, muovi_list_services.
- Is @muovi/mcp-server-hosted safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.6%· all time 99.6%
last good check
of 8 tools
- degraded → live
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- used for
- find home service professionals in argentina
- read professional reviews
- draft a task for a professional
- list served cities and services
- takes → gives
- text → data
- tools
- 7 reads1 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
muovi_list_cities reads open 20h ago
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.
{ "type": "object", "properties": {}, "additionalProperties": false }arguments 5 linesmuovi_list_services reads open 20h ago
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.
{ "type": "object", "properties": {}, "additionalProperties": false }arguments 5 linesmuovi_create_task_link reads unknown never probed
Build a link that opens Muovi's own task creation for one professional and one service: pass the `id` of a result from `muovi_search_professionals` as `professional_id`, and a service slug from `muovi_list_services`. Any professional in the search results can be picked. When the person publishes the task, it goes to that professional first for 24 hours and then opens to everyone; on the form the person can choose to also receive offers from other professionals right away. The link opens Muovi's task form, not the professional's ProSite. This tool makes no network call and saves nothing: give the URL to the person, who completes the task on Muovi.
{ "type": "object", "required": [ "professional_id", "service_slug" ], "properties": { "service_slug": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$", "minLength": 1, "description": "The service slug to start the task with (from `muovi_list_services`)." }, "professional_id": { "type": "string", "maxLength": 36, "minLength": 36, "description": "The `id` of a professional from `muovi_search_professionals`." } }, "additionalProperties": false }arguments 22 linesmuovi_get_service_requirements reads unknown 11h ago
List the fields Muovi takes for one service, to read 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. Collect every `required` slot, asking one question per message and waiting for the answer before asking the next. A draft whose `urgency` is `flexible` is complete without the date. The other slots are optional: do not ask them as a list; when what the person has told you, at any point in the conversation, gives an optional slot's value, send it in `slots` as well as writing it in `description`. Also ask what a professional would need to quote this specific job, skip anything the person already said, and write those details into the `description` of `muovi_create_task_draft`; no list of job questions is prescribed. Send the answers back keyed by slot `key` in the `slots` argument of `muovi_create_task_draft`. The person confirms the address on Muovi's map after opening the draft link. `photo_policy` says whether photos help; photos are added by the person on Muovi, not through this server. Read-only.
{ "type": "object", "required": [ "service_slug" ], "properties": { "service_slug": { "type": "string", "minLength": 1, "description": "The service slug (from `muovi_list_services`), e.g. \"plomeria\"." } }, "additionalProperties": false }arguments 14 linesmuovi_get_professional reads unknown 20h ago
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. When presenting the professional, name only the checks Muovi has verified among identity, matrícula, background check (antecedentes) and phone, and never say that one is missing or not verified. To start a task for this professional, use `muovi_create_task_link` or `muovi_create_task_draft` with this `id` as `professional_id`.
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "The professional's `id` from `muovi_search_professionals`. A ProSite slug from an older link is also accepted." } }, "additionalProperties": false }arguments 14 linesmuovi_create_task_draft changes data unknown never probed
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 and collect the required fields it lists, asking one question per message and waiting for the answer before asking the next. A draft whose `urgency` is `flexible` is complete without the date. Also ask what a professional would need to quote this specific job, skip anything the person already said, and write those details into `description`; no list of job questions is prescribed. Send the answers in `slots` (keyed by slot key) with `location`. Do not ask the optional slots as a list; when what the person has told you, at any point in the conversation, gives an optional slot's value, send it in `slots` as well as writing it in `description`. If a required answer is missing, the result has `status: "incomplete"`, lists the questions still to ask and carries no link: ask them one per message and call again with every answer. 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 assistant has a question of its own for the person, and the person confirms the address on Muovi's map after opening the link, 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.
{ "type": "object", "required": [ "service_slug", "description" ], "properties": { "slots": { "type": "object", "description": "Optional. The person's answers, keyed by slot key from `muovi_get_service_requirements`. Send each value in the slot's `value_format`.", "additionalProperties": true }, "title": { "type": "string", "description": "Optional. A short title for the task, 5 to 80 characters. Left out, Muovi takes it from the description." }, "location": { "type": "object", "properties": { "address": { "type": "string", "description": "A street address as text, 3 to 200 characters." }, "city_slug": { "type": "string", "description": "Optional, with neighborhood_slug. A city slug from `muovi_list_cities`." }, "neighborhood_slug": { "type": "string", "description": "A neighborhood slug from `muovi_list_cities`." } }, "description": "Optional. 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.", "additionalProperties": false }, "zone_text": { "type": "string", "description": "Optional. Where the job is, as free text (neighborhood or area), up to 120 characters." }, "description": { "type": "string", "minLength": 1, "description": "What the person needs done, in their words, with the job details a professional would need to quote it: 20 to 2000 characters." }, "service_slug": { "type": "string", "minLength": 1, "description": "The service slug (from `muovi_list_services`), e.g. \"electricidad\"." }, "budget_amount": { "type": "number", "description": "Optional. The person's budget in ARS, as a positive number." }, "open_to_others": { "type": "boolean", "description": "Optional, 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_date": { "type": "string", "description": "Required with preferred_time \"specific_date\", otherwise omitted. YYYY-MM-DD, from today up to 90 days ahead (Argentina time)." }, "preferred_time": { "enum": [ "flexible", "this_week", "next_week", "specific_date" ], "type": "string", "description": "Optional. When the person wants it done. Use \"specific_date\" together with `preferred_date`." }, "professional_id": { "type": "string", "description": "Optional. The `id` of a professional from `muovi_search_professionals` to direct the draft to. Omit for a general request." }, "time_preferences": { "type": "array", "items": { "enum": [ "morning", "midday", "afternoon", "evening" ], "type": "string" }, "description": "Optional. The parts of the day that suit the person." }, "professional_slug": { "type": "string", "description": "Optional. A ProSite slug from an older link, instead of professional_id." } }, "additionalProperties": false }arguments 95 linesmuovi_get_reviews reads unknown 11h ago
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.
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "The professional's `id` from `muovi_search_professionals`. A ProSite slug from an older link is also accepted." }, "limit": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Maximum number of reviews per page (default 20, max 50)." }, "offset": { "type": "integer", "minimum": 0, "description": "Zero-based offset into the review list for pagination." } }, "additionalProperties": false }arguments 25 linesmuovi_search_professionals reads unknown 11h ago
Find up to 5 Muovi professionals per page 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 a matrícula or diploma counting toward it; professionals whose registered business is in another trade come last. Each result has a `display_name`, a `headline`, a photo (`avatar_url`), one `rating` and one `review_count`, `verifications`, 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. Where the client shows Muovi's card view, each professional's photo and portfolio images appear in it. Do not write images or image markdown: write a short text summary of each professional with the name, the headline, the rating with its review count and a link to `profile_url`, leaving out a field that is empty; for each professional, name only the checks Muovi has verified among identity, matrícula, background check (antecedentes) and phone, and never say that one is missing or not verified. 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). When the person asks for more professionals and `pagination.has_more` is true, call again with the same arguments and the next `page` (up to 3). When `has_more` is false there is no next page: do not say Muovi has no more professionals; offer a general request (`muovi_create_task_draft` without a professional) so other professionals can send offers. Never state how many professionals exist. Use `muovi_get_professional` with the `id` for the full profile.
{ "type": "object", "required": [ "service", "neighborhood" ], "properties": { "city": { "type": "string", "minLength": 1, "description": "Optional. City slug (e.g. \"caba\"), needed only when a barrio slug exists in more than one city." }, "page": { "type": "integer", "maximum": 3, "minimum": 1, "description": "Optional. 1 (default), 2 or 3: the next 5 professionals of the same search. Pass the next page only when the previous response had `pagination.has_more` true." }, "service": { "type": "string", "minLength": 1, "description": "Required. Service slug (e.g. \"plomeria\"), from `muovi_list_services`." }, "neighborhood": { "type": "string", "minLength": 1, "description": "Required. Barrio slug (e.g. \"palermo\"), from `muovi_list_cities`." }, "has_matricula": { "type": "boolean", "description": "When true, only return professionals with a verified matrícula on file (electricians, gas fitters, etc.)." }, "verified_identity": { "type": "boolean", "description": "When true, only return professionals whose identity Muovi has verified." } }, "additionalProperties": false }arguments 39 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id2fba99bd320d4144.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/2fba99bd320d4144/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/2fba99bd320d4144?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.