Skip to main content
Glama
Savastane

Keplaca Scraper MCP

by Savastane
README.md
# Keplaca Scraper (keplacas-mcp)

Este projeto é uma ferramenta de linha de comando que expõe um serviço de scraping de dados de veículos através do Model-Context Protocol (MCP). A ferramenta busca informações no site [keplaca.com](https://www.keplaca.com) utilizando uma placa de veículo brasileira como entrada.

## Funcionalidades

- **Scraping de Dados Veiculares**: Obtém informações detalhadas de um veículo, como marca, modelo, ano, cor e chassi, a partir de sua placa.
- **Servidor MCP**: Implementa um servidor MCP, permitindo que qualquer cliente compatível utilize a funcionalidade de scraping como uma ferramenta.
- **Automação com Puppeteer**: Utiliza o Puppeteer para controlar um navegador headless, garantindo que o conteúdo dinâmico do site seja carregado antes da extração dos dados.

## Pré-requisitos

- [Node.js](https://nodejs.org/)
- [npm](https://www.npmjs.com/) (geralmente instalado com o Node.js)

## Instalação

1. Clone este repositório:
   ```bash
   git clone <URL_DO_REPOSITORIO>
   cd keplacas-mcp
   ```

2. Instale as dependências do projeto:
   ```bash
   npm install
   ```

## Uso

O projeto pode ser executado de duas formas:

### 1. Modo de Desenvolvimento

Para executar o servidor em modo de desenvolvimento com hot-reload, utilize:

```bash
npm run dev
```

Este comando iniciará o servidor MCP, que ficará aguardando por requisições de um cliente.

### 2. Build para Produção

Para compilar o código TypeScript para JavaScript, execute:

```bash
npm run build
```

Os arquivos compilados serão salvos no diretório `dist/`. Após o build, você pode iniciar o servidor usando o arquivo principal gerado:

```bash
node dist/index.js
```

## Ferramenta Exposta: `scrape_plate_data`

O servidor expõe uma única ferramenta via MCP.

- **Nome**: `scrape_plate_data`
- **Descrição**: Busca dados de um veículo a partir de uma placa brasileira no site keplaca.com.
- **Input**:
  - `plate` (string): O número da placa a ser consultada (ex: `NZQ4477`).
- **Output**: Um objeto JSON contendo os dados do veículo, como:
  ```json
  {
    "marca": "TOYOTA",
    "modelo": "COROLLA XEI20FLEX",
    "ano": "2012",
    "anoModelo": "2013",
    "cor": "PRETA",
    "cilindrada": "1986",
    "potencia": "153",
    "combustivel": "Álcool/Gasolina",
    "chassi": "***********12345",
    "motor": "********",
    "passageiros": "5",
    "uf": "SP",
    "municipio": "SAO PAULO"
  }
  ```

## Dependências Principais

- **[@modelcontextprotocol/sdk](https://www.npmjs.com/package/@modelcontextprotocol/sdk)**: Para a implementação do servidor MCP.
- **[Puppeteer](https://pptr.dev/)**: Para automação e scraping da web.
- **[TypeScript](https://www.typescriptlang.org/)**: Para tipagem estática e funcionalidades modernas de JavaScript.