mcp-server
Server Details
Read-only MCP server for Muovi, Argentina's trust-first local services marketplace (6 tools).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- muovi-latam/mcp-server
- GitHub Stars
- 1
- Server Listing
- @muovi/mcp-server
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: listing cities and services, searching professionals, fetching a single professional's detail, fetching reviews, and generating a deep-link URL. There is no overlap—search is for discovery, get_professional for detail, and create_task_link is a pure formatter.
All tool names follow the same pattern: 'muovi_' prefix + verb_noun (create_task_link, get_professional, get_reviews, list_cities, list_services, search_professionals). Consistent snake_case and verb usage makes the toolset highly predictable.
With 6 tools, the server is well-scoped for its domain—discovering and booking service professionals. Each tool covers a necessary step in the workflow, and there are no redundant or extraneous tools.
The toolset covers the full user journey: resolving location (list_cities), mapping services (list_services), finding professionals (search_professionals), viewing details (get_professional), checking reviews (get_reviews), and linking to task creation (create_task_link). No obvious gaps exist for the stated purpose.
Available Tools
6 toolsmuovi_create_task_linkCreate task deep-linkARead-onlyIdempotentInspect
Build the canonical Muovi deep-link that opens the on-platform task creation flow pre-filled with a specific professional and service. Returns a URL of the form https://muovi.com.ar/p/{slug}?create_task=1&service={service-slug}. This is a pure formatter — it makes no network call and creates no task. After running it, surface the URL to the user so they can complete the booking on Muovi. Muovi never lets agents create tasks server-side; the consumer always sees the on-platform flow to confirm details.
| Name | Required | Description | Default |
|---|---|---|---|
| service_slug | Yes | The service slug to pre-fill in the task flow (from `muovi_list_services`). | |
| professional_slug | Yes | The professional's URL-safe slug (from `muovi_search_professionals` or `muovi_get_professional`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: it explains the tool is a pure formatter with no network call and no task creation, aligning with readOnlyHint and idempotentHint. It also clarifies the user-facing flow.
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?
The description is slightly long but every sentence is relevant and adds clarity. It front-loads the main purpose and includes important caveats. Could be slightly more concise, but still effective.
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 tool with two parameters and no output schema, the description is complete. It covers what the tool does, how to use the result, and the constraints (no server-side creation). The annotations further support the description.
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% with descriptions for both parameters. The description adds value by indicating the source of each slug (from specific tools) and embedding them in the URL format, though it doesn't add much beyond the schema.
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 builds a deep-link for task creation prefilled with professional and service. It distinguishes itself by specifying it is a pure formatter that makes no network call and creates no task, setting it apart from other tools that might perform actions.
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 context that the URL should be surfaced to the user to complete the booking on Muovi, as agents cannot create tasks server-side. While it doesn't explicitly mention alternatives, the context is clear enough for proper use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
muovi_get_professionalGet professionalARead-onlyInspect
Fetch the full public profile for a single Muovi-verified professional by slug. Returns display name, headline, bio, portfolio image URLs, specialties, city + neighborhoods, services, ratings, verifications, and the canonical profile_url. The profile_url is the only sanctioned contact channel — phone, email, and whatsapp are never returned. Append ?create_task=1&service={slug} to profile_url (or use muovi_create_task_link) to deep-link a user into the on-platform task creation flow targeted at this pro.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The professional's URL-safe slug (e.g. "juan-p-electricista-caba"). Obtain from `muovi_search_professionals`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description adds critical behavioral details: it lists the returned fields, explicitly states that phone/email/whatsapp are never returned, and defines the profile_url as the only contact channel. This informs the agent of data limitations and usage constraints.
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?
The description is efficient and well-structured: it opens with a clear purpose sentence, then lists return fields, followed by a behavioral note and a usage tip. No redundant words, and critical info appears early.
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?
Despite lacking an output schema, the description comprehensively enumerates all expected return fields and explains how to use the profile_url for task creation, referencing a sibling tool. It covers the main use case end-to-end, making it self-contained for an 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?
The single parameter 'slug' is well-described in the schema with an example and sourcing advice. The tool description repeats this sourcing advice (obtain from muovi_search_professionals) but adds minimal new semantic meaning beyond the schema, which already provides 100% 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?
The description clearly states the tool 'Fetch the full public profile for a single Muovi-verified professional by slug,' specifying the action, resource, and input. It lists the returned data fields, distinguishing it from sibling tools like muovi_search_professionals (which returns lists) and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises obtaining the slug from muovi_search_professionals and contrasts with muovi_create_task_link for deep-linking, providing clear when-to-use guidance. However, it does not explicitly state when not to use this tool (e.g., for reviews or lists), though the purpose implicitly covers that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
muovi_get_reviewsGet reviewsARead-onlyInspect
Fetch paginated reviews for a single Muovi-verified professional, 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 never 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The professional's URL-safe slug. Obtain from `muovi_search_professionals` or `muovi_get_professional`. | |
| limit | No | Maximum number of reviews per page (default 20, max 50). | |
| offset | No | Zero-based offset into the review list for pagination. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond annotations, such as the sorting order (most-recent first), the non-return of full surnames, and the structure of each review (rating, title, comment, author role, etc.). This provides rich transparency that annotations alone do not capture.
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?
The description is concise with three sentences, each serving a distinct purpose: state the action, detail the return data, and suggest usage. No wasted words; front-loaded with the core function.
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 no output schema, the description compensates by fully explaining the return structure (rating, title, comment, author name format, role, service category, timestamp). Missing details like error responses or pagination specifics are acceptable given the openWorldHint and readOnlyHint.
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%, so baseline is 3. The description adds no additional meaning for parameters beyond what the schema already provides (e.g., source for slug, pagination limits). The description focuses on output, not parameter details.
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 fetches paginated reviews for a single Muovi-verified professional, sorted most-recent first. It distinctively separates this from sibling tools like muovi_get_professional and muovi_search_professionals by focusing on reviews.
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 a specific use case ('surface social-proof when recommending a professional'), offering clear context for when to use the tool. However, it does not explicitly state when not to use it or compare with alternatives, leaving some gap in exclusive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
muovi_list_citiesList citiesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. Description adds value by specifying the structure (nested neighborhoods, slug/name pairs) and linking to other tools, but does not contradict 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?
Three sentences, front-loaded with purpose, followed by specific details and usage guidance. 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?
For a parameterless tool, description fully explains output (cities with neighborhoods, slugs) and usage context, sufficient for an agent to select and invoke correctly.
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; baseline score of 4 applied. Description does not need to add parameter meaning, but it clarifies the output format which indirectly supports parameter usage for other tools.
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?
Description clearly states it lists Argentine cities with nested neighborhoods, specifying slugs for use in other tools, which distinguishes it from siblings like muovi_search_professionals.
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 describes when to use: 'Call this when you need to resolve a user's location wording to a Muovi city or neighborhood slug.' 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.
muovi_list_servicesList servicesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and open-world. The description adds behavioral context: professionals are identity-verified and reviewed, payments on-platform, and the requires_matricula flag indicates licensing requirements. No contradiction with 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?
The description is a single paragraph that efficiently conveys purpose, details, and usage guidance. It is front-loaded with the main action and every sentence adds information, though slightly lengthy.
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?
Despite no output schema, the description adequately explains the return structure (fields and their meanings). It does not cover pagination or ordering, but for a list of categories this is likely sufficient.
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 exist (schema coverage 100%), so baseline is 3. The description adds value by detailing the output fields (slug, name, description, requires_matricula), which is useful beyond the empty schema.
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 all service categories in Argentina, enumerates them with examples, and explicitly distinguishes from sibling tools by positioning it as the first call to map user requests to service slugs.
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 explicitly tells when to use this tool: 'Call this first when you need to map a user's natural-language request to a Muovi service slug.' It also explains the purpose of the slug for use in other tools, providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
muovi_search_professionalsSearch professionalsARead-onlyInspect
Search for verified service professionals in Argentina by service type, city, neighborhood, verification status, minimum rating, and minimum review count. Returns a paginated list of professionals with display name, headline, ratings, verifications, and a profile_url that is the only sanctioned contact channel (no phone/email/whatsapp is ever returned). Use this for discovery; use muovi_get_professional for the full detail payload.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City slug (e.g. "caba"). Matches `City.slug` in the catalog. | |
| limit | No | Maximum number of results per page (default 20, max 50). | |
| offset | No | Zero-based offset into the result set for pagination. | |
| service | No | Service slug (e.g. "electricidad"). Matches `Service.slug` in the catalog. | |
| min_rating | No | Minimum blended average rating, 0-5 inclusive. | |
| min_reviews | No | Minimum blended review count. | |
| neighborhood | No | Neighborhood slug (e.g. "palermo"). Matches `Neighborhood.slug` in the catalog. | |
| has_matricula | No | When true, only return pros with a verified professional matrícula on file (electricians, gas fitters, etc.). | |
| verified_identity | No | When true, only return pros whose identity has been verified by Muovi. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and openWorldHint. The description adds that results are paginated, lists returned fields, and clarifies that no phone/email/whatsapp is ever returned and that profile_url is the only sanctioned contact channel. No contradiction with 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?
Just two sentences: first sentence covers purpose, filters, and output; second sentence gives usage guidance and contact channel. Every word earns its place with no redundancy.
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 9 parameters, no output schema, and no enums, the description covers the essential purpose, filters, return fields, pagination, and usage guidance. It is complete for an agent to decide when and how to use this tool.
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%, so baseline is 3. The description adds value by summarizing the filter parameters and mentioning the return fields, providing a holistic understanding beyond individual schema descriptions.
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 verb 'Search', the resource 'verified service professionals', and the scope 'in Argentina by service type, city, neighborhood, verification status, minimum rating, and minimum review count.' It also distinguishes from sibling 'muovi_get_professional' by specifying discovery vs. detail payload.
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 states when to use this tool ('Use this for discovery') and when to use the alternative ('use muovi_get_professional for the full detail payload'). Also notes the only sanctioned contact channel and that phone/email/whatsapp are never returned.
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.
6 tool updates
- First observed
muovi_create_task_link - First observed
muovi_get_professional - First observed
muovi_get_reviews - First observed
muovi_list_cities - First observed
muovi_list_services - First observed
muovi_search_professionals
Related MCP Connectors
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Read-only MCP server for turva.dev's published service catalog, pricing and contact details. Five tools return JSON, including dated agent-readiness and security evidence with verification links. Connect over Streamable HTTP without an API key. The server answers questions about turva.dev and does not scan other websites or run audits.
Authenticated, read-only field-service workspace tools for FieldRobin businesses.
Read-only developer, date, finance, and text utilities. Authless remote MCP server by Clean.tools.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for the Ploomes CRM API, providing 49 tools to query contacts, deals, products, and other business data using natural language.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceRead-only MCP server exposing Flowsery analytics and AI-detected issues via 17 GET tools, enabling natural language queries in compatible clients.MIT
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server for the NuMetric.work accounting/POS/ERP platform, exposing 38 tools to query live business data such as financial statements, invoices, taxes, projects, inventory, and documents. It enables AI assistants to answer from real accounting data without any create, edit, or delete capabilities.MIT
- AlicenseNot gradedqualityAmaintenanceEnables querying Xubio accounting data (clients, invoices, products, balances) through natural language by exposing 52 read-only API endpoints as MCP tools.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.