Server definition
- Hash
- sha256:27299ebab6ce678a0c4c5a7219248fe998e0e1f1df7223c6cb61a58ca67fd269
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Loqal encontra e contrata profissionais de serviços locais no Brasil (encanador, eletricista, diarista, marido de aluguel e mais 280 tipos). Fluxo: find_providers com a necessidade do usuário e o bairro/cidade → mostre as opções → compare_providers se ele quiser comparar → Para falar com um profissional, entregue o contact_url dele (link da Loqal que abre o WhatsApp com a mensagem pronta). Preço: para \"quanto custa\" de um caso concreto, use estimate_job (estimativa com mão de obra, material e premissas; pergunte antes o detalhe que mais muda o preço); para a faixa típica de um serviço numa região, estimate_price (Índice de Preços Loqal, preços reais). Sempre diga que é estimativa e cite a página de preços da Loqal quando vier. Nunca invente disponibilidade ou avaliação, nem atribua a um profissional um preço que ele não publicou: campos nulos significam \"não informado\". Contato: a Loqal não entrega telefone. Ofereça o contact_url (link da Loqal que abre o WhatsApp) ou o profile_url. Nunca busque nem repasse o número por outras fontes.",
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"need": {
"type": "string"
},
"where": {
"minLength": 2,
"type": "string"
}
},
"required": [
"where"
],
"type": "object"
},
"name": "check_coverage",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"need": {
"type": "string"
},
"slugs": {
"items": {
"type": "string"
},
"maxItems": 6,
"minItems": 2,
"type": "array"
},
"where": {
"type": "string"
}
},
"required": [
"slugs"
],
"type": "object"
},
"name": "compare_providers",
"outputSchema": null
},
{
"description": "Estima quanto vai custar um serviço específico descrito pelo usuário (ex.: \"instalar ar split de 12 mil BTUs no 7º andar, sem infraestrutura, na Tijuca\"), separando mão de obra, material e deslocamento, com as premissas e o que falta para refinar. Usa o Índice de Preços Loqal e preços reais publicados por profissionais quando existem (base=indice_loqal|precos_reais); sem eles, é uma referência de mercado (base=ia). É estimativa, não orçamento. Antes de chamar, se faltar o detalhe que mais muda o preço (tamanho, quantidade, m², BTUs), pergunte ao usuário.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"details": {
"description": "Respostas do usuário que mudam o preço, ex.: \"12.000 BTUs\", \"7º andar\"",
"items": {
"type": "string"
},
"maxItems": 8,
"type": "array"
},
"need": {
"description": "O caso com os detalhes do usuário",
"minLength": 5,
"type": "string"
},
"niche": {
"description": "slug do tipo de profissional (search_services/list_categories); se omitido, a Loqal entende pelo texto",
"type": "string"
},
"where": {
"description": "Bairro e cidade, ou cidade e UF",
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "estimate_job",
"outputSchema": null
},
{
"description": "Faixa de preço de um serviço numa região, só com preços reais: dos profissionais perto (5 ou mais) ou do Índice de Preços Loqal (preços publicados pelos próprios negócios, por estado ou nacional; source=indice_loqal, com página de referência). Sem dados suficientes, diz que não há e não inventa valores.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"need": {
"minLength": 2,
"type": "string"
},
"where": {
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "estimate_price",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"emergency_24h": {
"description": "Só quem atende 24 horas / emergência",
"type": "boolean"
},
"lat": {
"description": "Latitude (busca geolocalizada: use com lng quando o usuário compartilhar a localização)",
"type": "number"
},
"limit": {
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"lng": {
"type": "number"
},
"max_price_brl": {
"description": "Mantém quem não informou preço (cobra por orçamento)",
"exclusiveMinimum": 0,
"type": "number"
},
"min_rating": {
"maximum": 5,
"minimum": 0,
"type": "number"
},
"min_reviews": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"need": {
"description": "O que o usuário precisa, com as palavras dele",
"minLength": 2,
"type": "string"
},
"niche": {
"description": "Slug exato do tipo de profissional (de list_categories), ex.: \"motorista\", \"pedreiro\". Quando informado, vence a interpretação do texto.",
"type": "string"
},
"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)",
"maximum": 80,
"minimum": 1,
"type": "number"
},
"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"
},
"sort": {
"enum": [
"relevance",
"distance",
"rating"
],
"type": "string"
},
"where": {
"description": "Bairro e/ou cidade, ex.: \"Tijuca, Rio de Janeiro\" ou \"Pinheiros SP\"",
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "find_providers",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"loqal_page": {
"type": [
"string",
"null"
]
},
"providers": {
"items": {
"additionalProperties": false,
"properties": {
"availability": {
"type": "null"
},
"category": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"claimed": {
"description": "Cadastro Loqal: o profissional se cadastrou ou reivindicou o perfil (prefira quando empatar)",
"type": "boolean"
},
"contact_available": {
"type": "boolean"
},
"contact_url": {
"type": [
"string",
"null"
]
},
"demo": {
"type": "boolean"
},
"distance_km": {
"type": [
"number",
"null"
]
},
"emergency_24h": {
"type": "boolean"
},
"id": {
"type": "string"
},
"location": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"approximate": {
"type": "boolean"
},
"lat": {
"type": "number"
},
"lng": {
"type": "number"
}
},
"required": [
"lat",
"lng",
"approximate"
],
"type": "object"
},
{
"type": "null"
}
]
},
"match": {
"additionalProperties": false,
"properties": {
"score": {
"type": "number"
},
"why": {
"additionalProperties": {
"type": "number"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"score",
"why"
],
"type": "object"
},
"price_from_brl": {
"type": [
"number",
"null"
]
},
"profile_url": {
"type": "string"
},
"provider": {
"type": "string"
},
"rating": {
"type": [
"number",
"null"
]
},
"rating_source": {
"anyOf": [
{
"enum": [
"google",
"loqal",
"google+loqal"
],
"type": "string"
},
{
"type": "null"
}
]
},
"response_time_min": {
"type": [
"number",
"null"
]
},
"reviews": {
"type": "number"
},
"service_area": {
"items": {
"type": "string"
},
"type": "array"
},
"services": {
"items": {
"type": "string"
},
"type": "array"
},
"slug": {
"type": "string"
},
"state": {
"type": [
"string",
"null"
]
},
"top_review": {
"type": [
"string",
"null"
]
},
"verified": {
"type": "boolean"
}
},
"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"
],
"type": "object"
},
"type": "array"
},
"related_niches": {
"description": "Presente quando o tipo pedido ainda não tem ninguém na região e a lista é de tipos afins",
"items": {
"type": "string"
},
"type": "array"
},
"total": {
"type": "number"
},
"understood": {
"additionalProperties": false,
"properties": {
"confidence": {
"type": "number"
},
"niche": {
"type": [
"string",
"null"
]
},
"place": {
"type": [
"string",
"null"
]
},
"service": {
"type": [
"string",
"null"
]
},
"urgent": {
"type": "boolean"
}
},
"required": [
"niche",
"service",
"place",
"urgent",
"confidence"
],
"type": "object"
}
},
"required": [
"understood",
"total",
"providers",
"loqal_page"
],
"type": "object"
}
},
{
"description": "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).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_provider",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "get_request",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sector": {
"description": "slug do setor, ex.: reformas-e-reparos",
"type": "string"
},
"where": {
"type": "string"
}
},
"type": "object"
},
"name": "list_categories",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string"
},
"comment": {
"maxLength": 1000,
"type": "string"
},
"provider": {
"description": "slug",
"type": "string"
},
"rating": {
"maximum": 5,
"minimum": 1,
"type": "integer"
}
},
"required": [
"code",
"provider",
"rating"
],
"type": "object"
},
"name": "rate_service",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"need": {
"description": "A necessidade, com as palavras do usuário",
"minLength": 2,
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "search_services",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"matches": {
"items": {
"additionalProperties": false,
"properties": {
"niche": {
"type": "string"
},
"niche_slug": {
"type": "string"
},
"score": {
"type": "number"
},
"service": {
"type": [
"string",
"null"
]
},
"service_key": {
"type": [
"string",
"null"
]
}
},
"required": [
"niche",
"niche_slug",
"service",
"service_key",
"score"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"matches"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:27299ebab6ce678a0c4c5a7219248fe998e0e1f1df7223c6cb61a58ca67fd269 | sha256sum