API e servidor MCP

Conecte a sua IA ou o seu sistema ao DevSkin Licitações: busque licitações, leia editais, veja as exigências e analise os documentos com a sua própria IA.

  • MCP (Model Context Protocol): https://api-licitacoes.devskin.com/mcp
  • API REST: https://api-licitacoes.devskin.com/api/v1

1. Token de acesso

No painel, em Configurações → API e MCP (administradores), crie um token por integração. Ele começa com lic_api_, aparece uma única vez e dá acesso apenas aos dados da empresa em que foi criado.

PermissãoO que permite
Somente leituraBuscar licitações; consultar editais já lidos, requisitos, pré-análise, texto, análises existentes, documentos do cofre e a lei.
Leitura e escritaTudo acima, mais: trazer edital do PNCP, enviar texto ou arquivo para análise, acompanhar licitação e pedir análise por IA (consome a cota da empresa).

Envie o token em Authorization: Bearer lic_api_… (ou no cabeçalho x-api-key). Limite: 120 chamadas por minuto por token. O token deixa de valer se for revogado ou se o usuário que o criou for desativado. Guarde-o como uma senha.

2. Conectar por MCP

Servidor remoto com transporte Streamable HTTP, sem estado: cada POST leva uma mensagem JSON-RPC 2.0 e recebe a resposta em JSON. Não há sessão nem fluxo SSE. Versões de protocolo aceitas: 2025-06-18, 2025-03-26 e 2024-11-05.

Claude Code

claude mcp add --transport http licitacoes https://api-licitacoes.devskin.com/mcp \
  --header "Authorization: Bearer lic_api_SEU_TOKEN"

Clientes com MCP por HTTP e cabeçalhos (Cursor e outros)

O nome das chaves varia entre clientes e versões — confira a documentação do seu.

{
  "mcpServers": {
    "licitacoes": {
      "type": "http",
      "url": "https://api-licitacoes.devskin.com/mcp",
      "headers": { "Authorization": "Bearer lic_api_SEU_TOKEN" }
    }
  }
}

Clientes que só aceitam servidores locais (stdio)

Use a ponte mcp-remote:

{
  "mcpServers": {
    "licitacoes": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api-licitacoes.devskin.com/mcp", "--header", "Authorization: Bearer lic_api_SEU_TOKEN"]
    }
  }
}

Agente próprio (SDK oficial do MCP, TypeScript)

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const transport = new StreamableHTTPClientTransport(new URL('https://api-licitacoes.devskin.com/mcp'), {
  requestInit: { headers: { Authorization: 'Bearer lic_api_SEU_TOKEN' } },
});
const client = new Client({ name: 'minha-ia', version: '1.0.0' });
await client.connect(transport);

const { tools } = await client.listTools();
const r = await client.callTool({ name: 'buscar_licitacoes', arguments: { texto: 'notebook', limite: 5 } });
console.log(r.structuredContent);

Direto em JSON-RPC

curl -X POST https://api-licitacoes.devskin.com/mcp \
  -H "Authorization: Bearer lic_api_SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"valores_legais_vigentes","arguments":{}}}'

O resultado de cada ferramenta vem em result.structuredContent (objeto) e, como texto JSON, em result.content[0].text. Erros de uso voltam com isError: true e a mensagem, para a IA se corrigir.

Fluxo recomendado para analisar um edital

  1. buscar_licitacoes — encontra a licitação (ou use obter_licitacao com o número de controle do PNCP).
  2. ler_edital_do_pncp — a plataforma baixa edital, termo de referência e anexos, extrai o texto e roda a análise por regras. Devolve o documentoId. (Se o documento é seu, use enviar_texto_para_analise ou o upload da API REST.)
  3. obter_requisitos — tudo o que o edital exige — habilitação, declarações, proposta, documentos técnicos — com item do edital, fase e situação de cada documento no cofre da empresa.
  4. obter_pre_analise — prazos, valores, garantias, modo de disputa e pontos de atenção com a base legal.
  5. obter_texto_edital / buscar_trechos_edital — a sua IA lê o texto integral em fatias, ou só os trechos sobre um assunto, e faz a própria análise.
  6. obter_analise_ia — opcional: o parecer da IA da plataforma, se já tiver sido gerado (solicitar_analise_ia gera e consome cota).

As etapas 1 a 5 não consomem a cota de IA da plataforma: são busca, regras e leitura de texto. Só solicitar_analise_ia consome.

3. API REST

MétodoCaminhoO que faz
GET/api/v1/toolsLista as ferramentas com o esquema de entrada.
POST/api/v1/tools/{nome}Executa a ferramenta. O corpo JSON são os parâmetros; a resposta é o resultado.
POST/api/v1/editais/uploadEnvia PDF, DOCX ou ZIP (multipart, campo file, até 40 MB). Exige token de escrita. Devolve o documentoId.
curl -X POST https://api-licitacoes.devskin.com/api/v1/tools/buscar_licitacoes \
  -H "Authorization: Bearer lic_api_SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "texto": "notebook", "ufs": ["SP"], "limite": 5 }'
curl -X POST https://api-licitacoes.devskin.com/api/v1/editais/upload \
  -H "Authorization: Bearer lic_api_SEU_TOKEN" \
  -F "[email protected]" \
  -F "titulo=Pregão 12/2026 — Prefeitura"

Erros

Na API REST: { "error": "mensagem", "code": "CODIGO" } com o status HTTP abaixo.

HTTPCódigoQuando
401UNAUTHENTICATEDToken ausente, inválido, revogado, ou o usuário que o criou foi desativado.
403SCOPE_REQUIREDA ferramenta altera dados ou consome IA e o token é somente leitura.
400VALIDATION_ERRORParâmetro ausente ou inválido (a mensagem diz qual).
404NOT_FOUND / UNKNOWN_TOOLLicitação, documento ou ferramenta não encontrados nesta empresa.
422EDITAL_SEM_TEXTOO arquivo é digitalizado (imagem) ou ilegível: não há texto para analisar.
402AI_BUDGET_EXCEEDED / AI_NOT_INCLUDEDCota mensal de IA esgotada ou plano sem IA (só em solicitar_analise_ia).
429RATE_LIMITEDMais de 120 chamadas por minuto com o mesmo token.
502PNCP_UNAVAILABLEO PNCP não respondeu ao baixar o edital; tente de novo.

4. Referência das ferramentas

buscar_licitacoes

Busca contratações públicas na base espelhada do PNCP (Lei 14.133/2021) por texto do objeto, UF, modalidade, valor e situação. Devolve um resumo de cada licitação com o id usado nas outras ferramentas.

ParâmetroTipoObrigatórioDescrição
textotextonãoPalavras do objeto (ex.: "notebook", "material de limpeza").
ufslista de textosnãoSiglas das UFs.
modalidadeslista de inteirosnãoCódigos de modalidade do PNCP: 6=Pregão - Eletrônico, 7=Pregão - Presencial, 8=Dispensa, 4=Concorrência - Eletrônica, 5=Concorrência - Presencial, 9=Inexigibilidade, 12=Credenciamento, 1=Leilão - Eletrônico, 13=Leilão - Presencial, 2=Diálogo Competitivo, 3=Concurso, 10=Manifestação de Interesse, 11=Pré-qualificação.
situacaotextonãoPadrão: abertas (recebendo propostas agora). Valores: abertas, encerradas, todas.
valorMinnúmeronãoValor estimado mínimo, em reais.
valorMaxnúmeronãoValor estimado máximo, em reais.
paginainteironãoPágina (padrão 1).
limiteinteironãoItens por página, até 25 (padrão 10).

obter_licitacao

Detalhes de uma licitação: dados gerais, itens (descrição, quantidade, valor estimado, benefício ME/EPP) e arquivos publicados no PNCP (edital, termo de referência, anexos). Informe o id ou o número de controle do PNCP ("CNPJ-1-SEQ/ANO").

ParâmetroTipoObrigatórioDescrição
idtextonãoId da licitação (devolvido por buscar_licitacoes).
numeroControlePncptextonãoNúmero de controle do PNCP, ex.: 63025530000104-1-003836/2026.

ler_edital_do_pncp · exige token de escrita

Baixa do PNCP o edital de uma licitação junto com termo de referência e anexos, extrai o texto e roda a pré-análise por regras (sem custo de IA). Devolve o documentoId usado pelas ferramentas de análise. Com "sequencial", lê só aquele arquivo.

ParâmetroTipoObrigatórioDescrição
licitacaoIdtextosimId da licitação.
sequencialinteironãoOpcional: número do arquivo (ver obter_licitacao → arquivos).

enviar_texto_para_analise · exige token de escrita

Envia o texto de um documento que você já tem (edital, termo de referência, aviso) para a plataforma analisar por regras: identificação, prazos, valores, exigências de habilitação, documentos técnicos e pontos de atenção. Sem custo de IA. Para arquivos PDF/DOCX/ZIP use o upload da API REST.

ParâmetroTipoObrigatórioDescrição
titulotextosimNome para identificar o documento.
textotextosimTexto integral do documento (até 3 milhões de caracteres).

listar_editais

Lista os editais já lidos pela empresa (do PNCP, enviados ou colados), com documentoId, páginas, quantidade de pontos de atenção e se já existe análise por IA.

ParâmetroTipoObrigatórioDescrição
paginainteironãoPágina (20 por página).

obter_pre_analise

Resultado da pré-análise por regras de um edital: identificação (modalidade, número, critério de julgamento, modo de disputa), datas, valores, campos-chave (prazo de entrega, vigência, pagamento, garantias, visita técnica, amostra, consórcio...) cada um com o trecho do edital, e os pontos de atenção com a base legal.

ParâmetroTipoObrigatórioDescrição
documentoIdtextosimId do documento.

obter_requisitos

Lista explícita de tudo o que o edital exige da empresa — habilitação jurídica, fiscal e trabalhista, econômico-financeira e técnica, declarações, documentos da proposta, documentos técnicos do objeto (catálogos, certificações, laudos, registros, declaração do fabricante, amostra) e o exigido para contratar — com item do edital, fase e a situação de cada documento no cofre da empresa: OK, VENCE_ANTES (da sessão), VENCIDO, FALTA ou A_PREPARAR.

ParâmetroTipoObrigatórioDescrição
documentoIdtextosimId do documento.

obter_texto_edital

Devolve o texto extraído do edital (e anexos), em fatias, para a sua IA ler e analisar por conta própria. Use "inicio" para continuar de onde parou; "total" diz o tamanho completo em caracteres.

ParâmetroTipoObrigatórioDescrição
documentoIdtextosimId do documento.
iniciointeironãoPosição inicial em caracteres (padrão 0).
tamanhointeironãoQuantidade de caracteres, de 1.000 a 60.000 (padrão 30.000).

buscar_trechos_edital

Encontra no edital os trechos mais relevantes para uma pergunta ou assunto (busca BM25, sem IA) — útil para a sua IA responder sobre um ponto específico sem ler o documento inteiro.

ParâmetroTipoObrigatórioDescrição
documentoIdtextosimId do documento.
consultatextosimPergunta ou termos (ex.: "atestado de capacidade técnica quantitativo mínimo").
quantidadeinteironãoQuantos trechos, até 12 (padrão 6).

obter_analise_ia

Devolve a análise profunda feita pela IA da plataforma para o edital, se já existir: resumo executivo, recomendação (participar ou não), requisitos detalhados, especificações técnicas, prazos, riscos, cláusulas questionáveis, perguntas de esclarecimento e checklist. Não consome cota. Se não existir, informa o status.

ParâmetroTipoObrigatórioDescrição
documentoIdtextosimId do documento.

solicitar_analise_ia · exige token de escrita

Pede à IA da plataforma a análise profunda do edital. CONSOME a cota mensal de IA da empresa (cerca de 70 a 100 mil tokens por edital; o resultado fica guardado e não é cobrado de novo). Roda em segundo plano: consulte o resultado com obter_analise_ia.

ParâmetroTipoObrigatórioDescrição
documentoIdtextosimId do documento.

listar_documentos_empresa

Lista os documentos de habilitação guardados pela empresa (certidões, atestados, balanço, contrato social...) com validade e situação (válido, vencendo, vencido). Não devolve o arquivo.

Sem parâmetros.

listar_licitacoes_acompanhadas

Lista as licitações que a empresa acompanha (funil de Gerenciar Licitações), com etapa, data da sessão, valores e pendências do checklist de documentos.

ParâmetroTipoObrigatórioDescrição
etapatextonãoFiltra por etapa. Valores: TRIAGEM, ANALISE, PROPOSTA, DISPUTA, HABILITACAO, GANHA, PERDIDA, DESISTENCIA, SUSPENSA.

acompanhar_licitacao · exige token de escrita

Coloca uma licitação no funil da empresa (etapa Triagem). Em segundo plano a plataforma lê o edital e os anexos e monta o checklist de documentos exigidos (sem custo de IA).

ParâmetroTipoObrigatórioDescrição
licitacaoIdtextosimId da licitação.

consultar_lei_14133

Busca artigos da Lei nº 14.133/2021 (Lei de Licitações e Contratos) por assunto ou número ("art. 75"). Devolve o texto dos artigos. Atenção: os valores em reais do texto original foram atualizados por decreto — use valores_legais_vigentes.

ParâmetroTipoObrigatórioDescrição
consultatextosimAssunto ou artigo (ex.: "prazo para impugnar edital", "art. 75").

valores_legais_vigentes

Tabela dos valores da Lei 14.133/2021 atualizados pelo decreto em vigor (dispensa de licitação por valor, grande vulto etc.), com a norma e a data de vigência.

Sem parâmetros.

5. Custos e limites

  • Busca, leitura de edital, pré-análise, requisitos, texto e consulta à lei rodam por algoritmos e não gastam a cota de IA.
  • solicitar_analise_ia gasta cerca de 70 a 100 mil tokens da cota mensal da empresa por edital. O resultado fica guardado: pedir de novo o mesmo edital não cobra outra vez.
  • Arquivos: PDF, DOCX ou ZIP até 40 MB. PDF digitalizado (imagem) não tem texto extraível — não há OCR.
  • enviar_texto_para_analise: até 3 milhões de caracteres por chamada (corpo JSON de até 5 MB).
  • A base de licitações é a do PNCP; ler um edital depende de o PNCP estar respondendo.
  • O servidor MCP oferece apenas ferramentas (sem recursos nem prompts).