Loqal
Profissionais de serviços locais no Brasil: encanador, eletricista, diarista e +270 tipos
使うべきか
品質と安全性
検出事項(9)
- HIGH
- MEDIUMcheck_coverage 内
- LOWsearch_services 内
- LOWcheck_coverage 内
- LOWget_request 内
- LOWrate_service 内
- INFOcheck_coverage 内
- INFOget_request 内
- INFOrate_service 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"loqal": {
"url": "https://api.loqal.com.br/mcp"
}
}
}リモートエンドポイント
https://api.loqal.com.br/mcpstreamable-httpできること
ツール一覧
ツール(9)
🟢search_services(need)
Mapeia uma necessidade em linguagem natural ("cano da pia vazando", "limpar ar-condicionado") para os serviços da Loqal. Use quando não estiver claro qual profissional resolve.
入力スキーマ
{
"type": "object",
"properties": {
"need": {
"type": "string",
"minLength": 2,
"description": "A necessidade, com as palavras do usuário"
}
},
"required": [
"need"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"matches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"niche": {
"type": "string"
},
"niche_slug": {
"type": "string"
},
"service": {
"type": [
"string",
"null"
]
},
"service_key": {
"type": [
"string",
"null"
]
},
"score": {
"type": "number"
}
},
"required": [
"niche",
"niche_slug",
"service",
"service_key",
"score"
],
"additionalProperties": false
}
}
},
"required": [
"matches"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_categories(sector, where)
Setores e nichos da Loqal (285 tipos de serviço), com quantos profissionais reais atendem. Filtre por setor (slug) ou por lugar para ver só o que existe ali.
入力スキーマ
{
"type": "object",
"properties": {
"sector": {
"description": "slug do setor, ex.: reformas-e-reparos",
"type": "string"
},
"where": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢check_coverage(where, need)
Diz se a Loqal reconhece um lugar (bairro, cidade, UF em todo o Brasil) e quantos profissionais reais atendem ali, no geral ou para uma necessidade. Use antes de prometer algo ao usuário.
入力スキーマ
{
"type": "object",
"properties": {
"where": {
"type": "string",
"minLength": 2
},
"need": {
"type": "string"
}
},
"required": [
"where"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_providers(need, niche, service, where, lat, ...)
Encontra profissionais reais perto de um lugar para uma necessidade. Ex.: need="instalar 3 ventiladores", where="Tijuca, Rio de Janeiro", min_rating=4.5, max_price_brl=350. Retorna perfis estruturados (nota, avaliações, distância, preço quando informado) e uma tela com cards.
入力スキーマ
{
"type": "object",
"properties": {
"need": {
"type": "string",
"minLength": 2,
"description": "O que o usuário precisa, com as palavras dele"
},
"niche": {
"description": "Slug exato do tipo de profissional (de list_categories), ex.: \"motorista\", \"pedreiro\". Quando informado, vence a interpretação do texto.",
"type": "string"
},
"service": {
"description": "Subcategoria exata, a service_key de search_services (ex.: \"piscina/limpeza\"). Prioriza quem faz exatamente isso, sem esconder o resto do tipo.",
"type": "string"
},
"where": {
"description": "Bairro e/ou cidade, ex.: \"Tijuca, Rio de Janeiro\" ou \"Pinheiros SP\"",
"type": "string"
},
"lat": {
"description": "Latitude (busca geolocalizada: use com lng quando o usuário compartilhar a localização)",
"type": "number"
},
"lng": {
"type": "number"
},
"radius_km": {
"description": "Raio da busca em km a partir de lat/lng ou do lugar (padrão: 5 a 15 km conforme o lugar)",
"type": "number",
"minimum": 1,
"maximum": 80
},
"min_rating": {
"type": "number",
"minimum": 0,
"maximum": 5
},
"min_reviews": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"max_price_brl": {
"description": "Mantém quem não informou preço (cobra por orçamento)",
"type": "number",
"exclusiveMinimum": 0
},
"emergency_24h": {
"description": "Só quem atende 24 horas / emergência",
"type": "boolean"
},
"sort": {
"type": "string",
"enum": [
"relevance",
"distance",
"rating"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"need"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"understood": {
"type": "object",
"properties": {
"niche": {
"type": [
"string",
"null"
]
},
"service": {
"type": [
"string",
"null"
]
},
"place": {
"type": [
"string",
"null"
]
},
"urgent": {
"type": "boolean"
},
"confidence": {
"type": "number"
}
},
"required": [
"niche",
"service",
"place",
"urgent",
"confidence"
],
"additionalProperties": false
},
"total": {
"type": "number"
},
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"provider": {
"type": "string"
},
"category": {
"type": [
"string",
"null"
]
},
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"service_area": {
"type": "array",
"items": {
"type": "string"
}
},
"city": {
"type": [
"string",
"null"
]
},
"state": {
"type": [
"string",
"null"
]
},
"distance_km": {
"type": [
"number",
"null"
]
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"approximate": {
"type": "boolean"
}
},
"required": [
"lat",
"lng",
"approximate"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"rating": {
"type": [
"number",
"null"
]
},
"reviews": {
"type": "number"
},
"rating_source": {
"anyOf": [
{
"type": "string",
"enum": [
"google",
"loqal",
"google+loqal"
]
},
{
"type": "null"
}
]
},
"price_from_brl": {
"type": [
"number",
"null"
]
},
"emergency_24h": {
"type": "boolean"
},
"response_time_min": {
"type": [
"number",
"null"
]
},
"availability": {
"type": "null"
},
"verified": {
"type": "boolean"
},
"claimed": {
"type": "boolean",
"description": "Cadastro Loqal: o profissional se cadastrou ou reivindicou o perfil (prefira quando empatar)"
},
"top_review": {
"type": [
"string",
"null"
]
},
"profile_url": {
"type": "string"
},
"contact_available": {
"type": "boolean"
},
"contact_url": {
"type": [
"string",
"null"
]
},
"demo": {
"type": "boolean"
},
"match": {
"type": "object",
"properties": {
"score": {
"type": "number"
},
"why": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
}
},
"required": [
"score",
"why"
],
"additionalProperties": false
}
},
"required": [
"id",
"slug",
"provider",
"category",
"services",
"service_area",
"city",
"state",
"distance_km",
"location",
"rating",
"reviews",
"rating_source",
"price_from_brl",
"emergency_24h",
"response_time_min",
"availability",
"verified",
"claimed",
"top_review",
"profile_url",
"contact_available",
"contact_url",
"demo",
"match"
],
"additionalProperties": false
}
},
"loqal_page": {
"type": [
"string",
"null"
]
},
"related_niches": {
"description": "Presente quando o tipo pedido ainda não tem ninguém na região e a lista é de tipos afins",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"understood",
"total",
"providers",
"loqal_page"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_provider(slug)
Perfil completo de um profissional (slug vindo de find_providers): serviços com aliases e preço inicial, bairros atendidos, nota com a fonte, avaliações recentes, ações e o índice de preparo para IAs (agent_readiness).
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"type": "string"
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢compare_providers(slugs, need, where)
Compara lado a lado 2 a 6 profissionais (slugs) para uma necessidade: nota, avaliações, distância, preço informado, 24h, verificação. Não inventa: "não informado" quando a Loqal não sabe.
入力スキーマ
{
"type": "object",
"properties": {
"slugs": {
"minItems": 2,
"maxItems": 6,
"type": "array",
"items": {
"type": "string"
}
},
"need": {
"type": "string"
},
"where": {
"type": "string"
}
},
"required": [
"slugs"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢estimate_price(need, where)
Faixa de preço de um serviço numa região: dos preços que profissionais da Loqal informaram (5 ou mais), ou, sem isso, a referência de mercado do catálogo, sempre marcada como referência (source). Não inventa valores.
入力スキーマ
{
"type": "object",
"properties": {
"need": {
"type": "string",
"minLength": 2
},
"where": {
"type": "string"
}
},
"required": [
"need"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_request(code)
Situação de um pedido pelo código (LQ-XXXX): status e profissionais que receberam. Respostas de orçamento chegam no WhatsApp do usuário.
入力スキーマ
{
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪rate_service(code, provider, rating, comment)
Registra a avaliação do usuário para um profissional que recebeu o pedido dele (código LQ-XXXX). Só aceita avaliação ligada a um pedido real: é o que torna a reputação da Loqal confiável.
入力スキーマ
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"provider": {
"type": "string",
"description": "slug"
},
"rating": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"comment": {
"type": "string",
"maxLength": 1000
}
},
"required": [
"code",
"provider",
"rating"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス