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 via scraper web (~10× mais rápido). Aceita protocolo formatado |
| 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 com upload de arquivo |
| 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:
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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