mcp-seipro
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-seiproListe os processos da unidade GPF"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-seipro
MCP Server do SEI Pro para o SEI (Sistema Eletrônico de Informações) via API REST mod-wssei v2 + scraper do frontend web (modo híbrido).
116 tools para gerenciar processos, documentos, tramitação, assinatura, blocos, marcadores, acompanhamento, credenciamento, modelos e mais em qualquer instância do SEI. Cobertura completa da API mod-wssei v2 oficial (pengovbr/mod-wssei) mais um scraper HTTP do frontend web que dá ganhos de até 23× em operações de listagem (sei_listar_processos cai de ~14 s para ~600 ms warm).
Instalação
Opção 1: Claude Desktop (extensão com um clique)
Baixe o arquivo seipro.mcpb e abra com duplo-clique. O Claude Desktop instala automaticamente e pede suas credenciais.
Opção 2: PyPI (pip)
pip install mcp-seiproOpção 3: Instalador interativo
git clone https://github.com/sei-pro/mcp-seipro.git
cd mcp-seipro
python3 setup_claude.pyO script pergunta suas credenciais, instala o pacote e configura o Claude Desktop automaticamente.
Related MCP server: pje-mcp-server
Configuração
Variáveis de ambiente
Variável | Obrigatória | Descrição |
| Sim | URL base da API mod-wssei v2 |
| Sim | Usuário para autenticação |
| Sim | Senha para autenticação |
| Sim | Código do órgão |
| Não | Contexto opcional |
| Não |
|
| Não | Idioma do OCR (padrão: |
| Não |
|
Dica: como obter
SEI_URLeSEI_ORGAOdireto pelo SEINa barra lateral do SEI (menu à esquerda), role até o final — você verá um QR Code para o aplicativo móvel. Esse QR Code contém um link com todas as informações necessárias:
https://sei.orgao.gov.br/sei/modulos/wssei/controlador_ws.php/api/v2;siglaorgao: ORGAO;orgao: 0;contexto:
SEI_URL— a URL antes do;(ex:https://sei.orgao.gov.br/sei/modulos/wssei/controlador_ws.php/api/v2)
SEI_ORGAO— o valor apósorgao:(ex:0)Você pode escanear o QR Code com a câmera do celular para copiar o link, ou simplesmente anotar os dados a partir do menu.
Registro no Claude Code
Adicione ao .mcp.json do projeto ou ~/.claude.json (global):
{
"mcpServers": {
"seipro": {
"command": "mcp-seipro",
"env": {
"SEI_URL": "https://sei.orgao.gov.br/sei/modulos/wssei/controlador_ws.php/api/v2",
"SEI_USUARIO": "seu.usuario",
"SEI_SENHA": "sua-senha",
"SEI_ORGAO": "0"
}
}
}
}Registro no Claude Desktop (manual)
Edite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"seipro": {
"command": "mcp-seipro",
"env": {
"SEI_URL": "https://sei.orgao.gov.br/sei/modulos/wssei/controlador_ws.php/api/v2",
"SEI_USUARIO": "seu.usuario",
"SEI_SENHA": "sua-senha",
"SEI_ORGAO": "0"
}
}
}
}Exemplos de uso
Com o MCP SEI Pro configurado, basta conversar com o Claude em linguagem natural:
Consultas
"O que diz o processo 50300.018905/2018-67?"
"Leia o documento SEI 2843449 e me faça um resumo"
"Qual foi o último andamento do processo de Auditoria TCU que está na unidade GPF?"
"Liste para mim os processos da caixa GPF no SEI"
"Quais processos estão atribuídos a mim na unidade SFC?"
Ações
"Crie um despacho no processo 50300.001234/2024-01 aprovando o pedido"
"Tramite o processo 50300.005678/2024-02 para a unidade SFC com prazo de 5 dias"
"Assine todos os documentos do bloco de assinatura 'Contratos Março'"
"Marque o processo como acompanhamento especial com o grupo 'Urgentes'"
"Crie um marcador vermelho chamado 'Pendente Resposta' e aplique no processo"
Análise
"Me dê um resumo dos processos da minha caixa agrupados por tipo"
"Quais processos da unidade GPF estão sem movimentação há mais de 30 dias?"
"Compare o conteúdo dos documentos 2843449 e 2843450"
Tools disponíveis (116)
Sistema e metadados (3)
Tool | Descrição |
| Retorna versão do SEI e do mod-wssei instalado |
| Lista órgãos da instalação do SEI |
| Lista contextos disponíveis para um órgão |
Navegação e contexto (7)
Tool | Descrição |
| Lista unidades acessíveis pelo usuário |
| Troca a unidade ativa |
| Pesquisa unidades por nome/sigla |
| Pesquisa unidades excluindo a atual |
| Pesquisa textos padrão internos da unidade |
| Lista usuários (filtra por unidade ativa e nome) |
| Busca usuários por palavra-chave no órgão |
Processos — consulta (11)
Tool | Descrição |
| Lista caixa da unidade via scraper web (~23× mais rápido que REST). Suporta |
| Pesquisa por texto, descrição, datas, unidade geradora, assunto ou grupo de acompanhamento |
| Híbrido: REST (especificacao, assuntos, interessados, observacoes) + Web (lista de documentos da árvore) em paralelo |
| Resumo agrupado por 17 campos (usa REST direto para flags estruturadas) |
| Lista unidades onde o processo está aberto |
| Consulta quem é responsável pelo processo |
| Verifica se o usuário tem acesso ao processo |
| Lista processos relacionados (mod-wssei 3.0.2+) |
| Histórico de atividades/andamentos via scraper web (~2× mais rápido) |
| Lista interessados do processo |
| Lista histórico de sobrestamentos |
Processos — gestão (13)
Tool | Descrição |
| Cria novo processo (público ou restrito) |
| Altera metadados (nível de acesso, especificação) |
| Tramita para outra(s) unidade(s) — aceita sigla |
| Conclui na unidade atual |
| Reabre processo concluído |
| Confirma recebimento na unidade |
| Atribui a um usuário (aceita nome) |
| Remove atribuição de processo |
| Marca processo como não lido na unidade |
| Sobresta processo (motivo obrigatório) |
| Remove sobrestamento |
| Pesquisa tipos de processo |
| Pesquisa hipóteses legais (restrito/sigiloso) |
Processos — assuntos (2)
Tool | Descrição |
| Pesquisa assuntos disponíveis |
| Sugestões de assunto para um tipo de processo |
Processos sigilosos — credenciamento (4)
Tool | Descrição |
| Lista credenciamentos de acesso ao processo |
| Concede acesso a um usuário |
| Renuncia ao próprio acesso |
| Revoga acesso de um usuário |
Documentos — leitura (8)
Tool | Descrição |
| Árvore completa via scraper web (~10× mais rápido que REST). Aceita protocolo formatado |
| Busca documento pelo número SEI (via Solr) |
| Lista documentos com |
| Lê documento (HTML ou PDF/OCR) em Markdown |
| Baixa documento externo em base64 (max 10MB) |
| Consulta metadados de documento externo |
| Lista assinaturas de um documento |
| Lista blocos de assinatura do documento |
Documentos — escrita (10)
Tool | Descrição |
| Cria documento interno vazio |
| Cria documento externo — upload por |
| Altera metadados de documento interno |
| Altera metadados/arquivo de documento externo |
| Lista seções editáveis de um documento |
| Altera conteúdo HTML (preenche somenteLeitura auto). |
| Assinatura eletrônica |
| Tenta cancelar assinatura via edição |
| Gera hiperlink dinâmico para documento citado |
| Consulta dicionário de 39 estilos CSS do SEI |
Documentos — tipos e modelos (7)
Tool | Descrição |
| Pesquisa tipos de documento (séries) |
| Tipos aplicáveis a documentos externos |
| Tipos de conferência (cópia, original, autenticada) |
| Sugestões de assunto para um tipo de documento |
| Lista grupos de modelos de documento |
| Lista modelos de documento disponíveis |
| Extensões/tamanhos permitidos para upload |
Assinantes (2)
Tool | Descrição |
| Lista cargos/funções para assinatura |
| Lista órgãos disponíveis para assinatura |
Ciência e andamento (3)
Tool | Descrição |
| Dá ciência em documento ou processo |
| Lista ciências registradas |
| Registra andamento/atividade no processo |
Anotação e observação (2)
Tool | Descrição |
| Cria anotação (post-it) individual no processo |
| Cria observação da unidade no processo |
Contatos (2)
Tool | Descrição |
| Pesquisa contatos cadastrados |
| Cria novo contato |
Marcador (8)
Tool | Descrição |
| Cria marcador (lista cores se omitida) |
| Exclui marcador(es) |
| Desativa marcador(es) sem excluir |
| Reativa marcador(es) desativados |
| Adiciona marcador a um processo |
| Lista marcadores disponíveis |
| Consulta marcadores ativos de um processo |
| Histórico de marcadores do processo |
Acompanhamento especial (8)
Tool | Descrição |
| Adiciona acompanhamento especial |
| Altera acompanhamento existente |
| Remove acompanhamento |
| Lista processos acompanhados pelo usuário |
| Lista acompanhamentos da unidade |
| Lista grupos de acompanhamento |
| Cria grupo de acompanhamento |
| Exclui grupo de acompanhamento |
Bloco interno (10)
Tool | Descrição |
| Cria bloco interno |
| Altera descrição do bloco |
| Exclui bloco(s) |
| Conclui bloco(s) |
| Reabre bloco concluído |
| Inclui processo(s) no bloco |
| Remove processo(s) do bloco |
| Lista processos do bloco |
| Cria anotação em processo do bloco |
| Altera anotação do bloco |
Bloco de assinatura (16)
Tool | Descrição |
| Cria bloco (aceita sigla de unidades) |
| Altera descrição do bloco |
| Exclui bloco(s) |
| Conclui bloco(s) |
| Reabre bloco concluído |
| Retorna bloco para unidade de origem |
| Inclui documento(s) no bloco |
| Remove documento(s) do bloco |
| Lista documentos do bloco |
| Disponibiliza bloco para assinatura |
| Cancela disponibilização |
| Pesquisa blocos existentes |
| Assina todos os documentos de um bloco |
| Assina documentos específicos de um bloco |
| Cria anotação em documento do bloco |
| Altera anotação do bloco |
Compatibilidade com versões do SEI
Todos os 116 endpoints funcionam desde o mod-wssei 2.0.0 (SEI 4.0.x), exceto um:
Tool | Versão mínima |
| mod-wssei 3.0.2+ (SEI 5.0.x) |
Tabela de compatibilidade SEI ↔ mod-wssei:
Versão SEI | mod-wssei | Observações |
4.0.x | 2.0.x | Base completa (131 rotas) |
4.1.1 | 2.2.0 | Correções de bugs |
5.0.x | 3.0.1 | Compatibilidade PHP 8.2 |
5.0.x | 3.0.2 | + |
Se algum endpoint falhar com erro inesperado, use sei_versao para verificar a versão do mod-wssei instalada na sua instância do SEI.
Nota: a API mod-wssei v2 não expõe endpoint para cancelar assinatura de documentos em nenhuma versão (verificado até v3.0.2). A função existe no core do SEI (
DocumentoRN::cancelarAssinaturaInternoControlado) mas não está exposta via REST. Osei_cancelar_assinaturausa o workaround de forçar uma edição mínima no documento.
Arquitetura híbrida REST + Web scraper
A maioria das tools usa a REST mod-wssei v2 (estável, oficial, disponível desde SEI 4.0.x). Mas duas operações críticas para latência ganham com um caminho alternativo via scraping HTTP do frontend web do SEI:
Desde jun/2026 o caminho web é opt-in (
SEI_WEB_SCRAPER=1): o login do frontend da ANTAQ virou SSO Microsoft e o scraper não autentica mais. As tools abaixo rodam por REST por padrão; os ganhos medidos valem quando o scraper está ativo e o órgão usa login local.
Tool | Estratégia | Ganho medido |
| Scraper web puro ( | ~14.7 s → ~625 ms (23×) |
| Híbrido: REST | combina dados complementares |
| Scraper web ( | ~12 s → ~1.1 s (10×) |
| Scraper web ( | ~9.7 s → ~1.1 s (10×) |
| Scraper web ( | ~2.5 s → ~1.2 s (2×) |
| Cache in-memory TTL 1h | ~4.2 s → instant |
| Cache in-memory TTL 1h | ~3.0 s → instant |
| Cache in-memory TTL 1h | ~2.6 s → instant |
O scraper:
Mantém uma sessão SIP autenticada persistente (login custa ~3 s, uma vez por conexão MCP).
Reaproveita o
infra_hashcapturado da cadeia de redirects pós-login (válido enquanto a sessão SIP viver).Cacheia o action e os hidden fields do form principal de
procedimento_controlarpara POSTs subsequentes.Re-loga automaticamente se detectar que a sessão expirou.
Funciona com qualquer instância SEI 4.0+/5.0+ que use o módulo
Infrav1.5x+ (a maioria das instalações modernas).
A REST mod-wssei continua sendo o caminho padrão para todas as outras operações e o fallback se o scraper falhar (ex: CAPTCHA após muitas tentativas, 2FA habilitado, mudança de layout no SEI). O método REST de listar_processos permanece disponível em SEIClient.listar_processos — não exposto como tool MCP, mas usado internamente pelo sei_resumo_processos (que precisa dos flags estruturados de status).
Funcionalidades
Resolução automática
Parâmetro | Aceita | Exemplo |
Documento | Número SEI ou id interno |
|
Processo | Protocolo ou IdProcedimento |
|
Unidade | Sigla ou ID |
|
Usuário | Nome ou ID |
|
Leitura universal de documentos
Internos (HTML) → Markdown (tabelas limpas, sem colunas vazias)
PDFs com texto → Markdown via pdfplumber
PDFs escaneados → Markdown via OCR (tesseract, limite 20 páginas)
Estilos CSS do SEI
Despachos: Paragrafo_Numerado_Nivel1 (corpo), âncora SEI no destinatário
Notas Técnicas: Item_Nivel1/2/3/4 (H1/H2/H3/H4), Item_Alinea_Letra (a, b, c), Item_Inciso_Romano (I, II, III)
Regra: toda numeração usa classes CSS, nunca texto manual.
Privacidade e dados restritos
O SEI classifica processos e documentos em três níveis: público (nivelAcesso=0), restrito (1) e sigiloso (2). O MCP usa as credenciais do usuário, então acessa o que o usuário enxergaria no SEI — incluindo restritos. Sigilosos exigem credenciamento prévio no próprio SEI.
Como conteúdo restrito pode trafegar para um provedor LLM (que talvez logue, retenha ou treine modelos com ele), o MCP impõe um gate de consentimento nas duas tools que entregam conteúdo bruto:
sei_ler_documento— markdown/texto/HTML do documentosei_baixar_anexo— base64 do arquivo
Comportamento padrão (mais seguro): se o documento tem nivelAcesso 1 ou 2 e a chamada não trouxe confirmar_acesso_restrito=true, o MCP responde com um JSON estruturado em pt-BR (consentimento_necessario=true, lista de riscos[] cobrindo LGPD/LAI/treinamento de modelos/sigilo funcional, e como_liberar). O conteúdo bruto não é entregue.
Existem duas formas de liberar:
Forma | Escopo | Quando usar |
| Per-call | Decisão pontual do usuário ao usar o LLM |
| Servidor inteiro | Operador do MCP libera previamente |
Em ambos os casos, o conteúdo entregue vem com um disclaimer prefixado lembrando o nível de acesso, a hipótese legal e os riscos.
As demais tools (sei_consultar_processo, sei_consultar_documento_externo, etc.) não bloqueiam metadados — apenas anexam um campo _aviso_acesso quando detectam restrição, para o LLM repassar a informação ao usuário.
O gate trata restrito e sigiloso de forma idêntica. Sigiloso já tem proteção adicional do SEI (credenciamento). Se quiser regras diferentes, abra um issue.
Por que não há um modal nativo de autorização?
O MCP define o protocolo elicitInput justamente para isso — o servidor pede input estruturado e o cliente renderiza UI nativa. O servidor SEI Pro implementa esse caminho desde v0.3.7: quando o cliente declara a capability, o gate aparece como modal/formulário no cliente, fora do alcance do modelo.
Hoje, no entanto, os clientes Anthropic conectados via Streamable HTTP (mcp.seipro.io no claude.ai/Claude Desktop com servidor remoto) não declaram a capability nem respondem aos requests de elicit. O servidor detecta isso e cai no JSON gate textual, que continua sendo a barreira efetiva. Quando esse suporte for ativado nos clientes Anthropic, o caminho de elicit começa a funcionar automaticamente — nada precisa mudar no servidor.
O fluxo "sem elicit" (atual): modelo recebe JSON estruturado de bloqueio → traduz os riscos ao usuário em texto → usuário digita autorização explícita → modelo passa confirmar_acesso_restrito=true na próxima chamada. Funciona bem com modelos grandes (Opus 4.7) e, com as docstrings + instrucao_para_modelo + nao_e_erro_tecnico introduzidos nas versões 0.3.5–0.3.7, também com modelos menores (Haiku 4.5).
Deploy remoto (Railway)
O servidor pode rodar em modo HTTP para uso via Claude no celular, na web ou em qualquer cliente MCP remoto. Cada órgão faz seu próprio deploy — as credenciais do SEI são informadas pelo usuário na tela de login OAuth e nunca ficam armazenadas no servidor.
O que é o Railway
O Railway é uma plataforma de deploy na nuvem que facilita colocar aplicações no ar. Você faz push do código e o Railway cuida de build, domínio, SSL e escalabilidade.
1. Criar conta no Railway
Acesse railway.com e clique em Sign Up
Faça login com GitHub, GitLab ou e-mail
Confirme seu e-mail
2. Instalar o Railway CLI
macOS (Homebrew):
brew install railwaynpm (qualquer plataforma):
npm install -g @railway/cliVerificar instalação:
railway --version3. Autenticar no terminal
railway loginIsso abre o navegador para você autorizar o CLI na sua conta Railway.
4. Clonar o repositório
git clone https://github.com/sei-pro/mcp-seipro.git
cd mcp-seipro5. Criar o projeto no Railway
railway init -n mcp-seiproSe você tiver mais de um workspace, adicione --workspace "Nome do Workspace".
6. Criar o serviço
railway add --service mcp-seipro7. Configurar variáveis de ambiente
O servidor precisa de duas variáveis obrigatórias:
railway variables set \
JWT_SECRET="$(openssl rand -base64 48)" \
BASE_URL="https://SEU-PROJETO.up.railway.app"JWT_SECRET— chave para encriptar os tokens OAuth (gerada automaticamente pelo comando acima)BASE_URL— URL pública do seu servidor (será definida no passo 9)
Nota: as credenciais do SEI (URL, usuário, senha) não ficam no servidor. São informadas pelo usuário na tela de login OAuth e encriptadas dentro do token.
8. Gerar domínio público
railway domainIsso gera uma URL como https://mcp-seipro-production.up.railway.app. Copie essa URL.
Agora atualize a variável BASE_URL com a URL gerada:
railway variables set BASE_URL="https://mcp-seipro-production.up.railway.app"9. Fazer o deploy
railway upAguarde o build finalizar (2-3 minutos na primeira vez). Ao terminar, verifique:
# Deve retornar HTTP 401 (protegido por OAuth)
curl -s -o /dev/null -w "%{http_code}" -X POST https://SEU-PROJETO.up.railway.app/mcpSe retornar 401, o servidor está rodando com autenticação ativa.
10. Conectar no Claude
Acesse claude.ai → Settings → Connectors
Clique em Adicionar conector personalizado
Cole a URL do seu servidor:
https://SEU-PROJETO.up.railway.app/mcpO Claude vai abrir a tela de login do SEI Pro
Preencha a URL da API do SEI, usuário e senha do seu órgão
Clique em Conectar
Pronto! A configuração sincroniza automaticamente com o app mobile e a web.
Como funciona
O servidor detecta automaticamente o ambiente:
Ambiente | Variável | Transporte | Uso |
Local | ausente | stdio | Claude Code / Claude Desktop |
Railway | presente (injetada) | Streamable HTTP + OAuth | Claude mobile / web / remoto |
No modo remoto, as credenciais do SEI são encriptadas dentro do token JWT e nunca armazenadas no servidor. O Dockerfile inclui tesseract-ocr para OCR de PDFs escaneados.
Domínio customizado (opcional)
railway domain --custom mcp.seu-orgao.gov.brConfigure um registro CNAME no DNS do seu órgão apontando para o valor fornecido pelo Railway. O certificado SSL é provisionado automaticamente.
Lembre-se de atualizar a variável BASE_URL:
railway variables set BASE_URL="https://mcp.seu-orgao.gov.br"
railway upAtualizar o servidor
Para atualizar com novas versões do mcp-seipro:
git pull
railway upRequisitos de sistema
Python >= 3.11
Qualquer instância do SEI com módulo mod-wssei v2
Claude Code, Claude Desktop, ou qualquer cliente MCP
Para OCR de PDFs escaneados (opcional):
tesseract-ocretesseract-ocr-porpoppler-utils
Links
Licença
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceMCP server for Brazilian Federal Senate open data (legislators, bills, votes, committees)Last updated33135MIT
- Flicense-qualityDmaintenanceMCP server for integrating with the Brazilian PJE judicial system via MNI and BNP, enabling consultation of legal processes, communications, and precedents.Last updated
- Alicense-qualityBmaintenancePublic MCP server for querying Brazilian court jurisprudence, processes, and communications without authentication. Supports courts like TJSP, TJRS, TJRJ, TJGO, and more via eSAJ, Datajud, and CNJ systems.Last updated1MIT
- Flicense-qualityDmaintenanceServidor MCP para busca e normalização de citações de leis brasileiras em arquivos de texto locais.Last updated1
Related MCP Connectors
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.
MCP server for live, sourced Brazilian public data from the official IBGE APIs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SEI-Pro/mcp-seipro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server