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).
Описание
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).
README
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-seipro
Opção 3: Instalador interativo
git clone https://github.com/sei-pro/mcp-seipro.git
cd mcp-seipro
python3 setup_claude.py
O script pergunta suas credenciais, instala o pacote e configura o Claude Desktop automaticamente.
Configuração
Variáveis de ambiente
| Variável | Obrigatória | Descrição |
|---|---|---|
SEI_URL |
Sim | URL base da API mod-wssei v2 |
SEI_USUARIO |
Sim | Usuário para autenticação |
SEI_SENHA |
Sim | Senha para autenticação |
SEI_ORGAO |
Sim | Código do órgão |
SEI_CONTEXTO |
Não | Contexto opcional |
SEI_VERIFY_SSL |
Não | true (padrão) ou false |
SEI_OCR_LANG |
Não | Idioma do OCR (padrão: por) |
SEI_PERMITIR_RESTRITOS |
Não | false (padrão) ou true. Ver "Privacidade e dados restritos" |
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 |
|---|---|
sei_versao |
Retorna versão do SEI e do mod-wssei instalado |
sei_listar_orgaos |
Lista órgãos da instalação do SEI |
sei_listar_contextos |
Lista contextos disponíveis para um órgão |
Navegação e contexto (7)
| Tool | Descrição |
|---|---|
sei_listar_unidades |
Lista unidades acessíveis pelo usuário |
sei_trocar_unidade |
Troca a unidade ativa |
sei_pesquisar_unidades |
Pesquisa unidades por nome/sigla |
sei_pesquisar_outras_unidades |
Pesquisa unidades excluindo a atual |
sei_pesquisar_textos_padrao |
Pesquisa textos padrão internos da unidade |
sei_listar_usuarios |
Lista usuários (filtra por unidade ativa e nome) |
sei_pesquisar_usuarios |
Busca usuários por palavra-chave no órgão |
Processos — consulta (11)
| Tool | Descrição |
|---|---|
sei_listar_processos |
Lista caixa da unidade via scraper web (~23× mais rápido que REST). Suporta apenas_meus, tipo, filtro |
sei_pesquisar_processos |
Pesquisa por texto, descrição, datas, unidade geradora, assunto ou grupo de acompanhamento |
sei_consultar_processo |
Híbrido: REST (especificacao, assuntos, interessados, observacoes) + Web (lista de documentos da árvore) em paralelo |
sei_resumo_processos |
Resumo agrupado por 17 campos (usa REST direto para flags estruturadas) |
sei_listar_unidades_processo |
Lista unidades onde o processo está aberto |
sei_consultar_atribuicao |
Consulta quem é responsável pelo processo |
sei_verificar_acesso |
Verifica se o usuário tem acesso ao processo |
sei_listar_relacionamentos |
Lista processos relacionados (mod-wssei 3.0.2+) |
sei_listar_atividades |
Histórico de atividades/andamentos via scraper web (~2× mais rápido) |
sei_listar_interessados |
Lista interessados do processo |
sei_listar_sobrestamentos |
Lista histórico de sobrestamentos |
Processos — gestão (13)
| Tool | Descrição |
|---|---|
sei_criar_processo |
Cria novo processo (público ou restrito) |
sei_alterar_processo |
Altera metadados (nível de acesso, especificação) |
sei_enviar_processo |
Tramita para outra(s) unidade(s) — aceita sigla |
sei_concluir_processo |
Conclui na unidade atual |
sei_reabrir_processo |
Reabre processo concluído |
sei_receber_processo |
Confirma recebimento na unidade |
sei_atribuir_processo |
Atribui a um usuário (aceita nome) |
sei_remover_atribuicao |
Remove atribuição de processo |
sei_marcar_nao_lido |
Marca processo como não lido na unidade |
sei_sobrestar_processo |
Sobresta processo (motivo obrigatório) |
sei_remover_sobrestamento |
Remove sobrestamento |
sei_pesquisar_tipos_processo |
Pesquisa tipos de processo |
sei_pesquisar_hipoteses_legais |
Pesquisa hipóteses legais (restrito/sigiloso) |
Processos — assuntos (2)
| Tool | Descrição |
|---|---|
sei_pesquisar_assuntos |
Pesquisa assuntos disponíveis |
sei_sugestao_assuntos_processo |
Sugestões de assunto para um tipo de processo |
Processos sigilosos — credenciamento (4)
| Tool | Descrição |
|---|---|
sei_listar_credenciamentos |
Lista credenciamentos de acesso ao processo |
sei_conceder_credenciamento |
Concede acesso a um usuário |
sei_renunciar_credenciamento |
Renuncia ao próprio acesso |
sei_cassar_credenciamento |
Revoga acesso de um usuário |
Documentos — leitura (8)
| Tool | Descrição |
|---|---|
sei_arvore_processo |
Árvore completa via scraper web (~10× mais rápido que REST). Aceita protocolo formatado |
sei_buscar_documento |
Busca documento pelo número SEI (via Solr) |
sei_listar_documentos |
Lista documentos via scraper web (~10× mais rápido). Aceita protocolo formatado |
sei_ler_documento |
Lê documento (HTML ou PDF/OCR) em Markdown |
sei_baixar_anexo |
Baixa documento externo em base64 (max 10MB) |
sei_consultar_documento_externo |
Consulta metadados de documento externo |
sei_listar_assinaturas |
Lista assinaturas de um documento |
sei_listar_blocos_documento |
Lista blocos de assinatura do documento |
Documentos — escrita (10)
| Tool | Descrição |
|---|---|
sei_criar_documento |
Cria documento interno vazio |
sei_criar_documento_externo |
Cria documento externo com upload de arquivo |
sei_alterar_documento_interno |
Altera metadados de documento interno |
sei_alterar_documento_externo |
Altera metadados/arquivo de documento externo |
sei_listar_secoes |
Lista seções editáveis de um documento |
sei_editar_secao |
Altera conteúdo HTML (preenche somenteLeitura auto) |
sei_assinar_documento |
Assinatura eletrônica |
sei_cancelar_assinatura |
Tenta cancelar assinatura via edição |
sei_gerar_referencia |
Gera hiperlink dinâmico para documento citado |
sei_estilos |
Consulta dicionário de 39 estilos CSS do SEI |
Documentos — tipos e modelos (7)
| Tool | Descrição |
|---|---|
sei_pesquisar_tipos_documento |
Pesquisa tipos de documento (séries) |
sei_pesquisar_tipos_documento_externo |
Tipos aplicáveis a documentos externos |
sei_pesquisar_tipos_conferencia |
Tipos de conferência (cópia, original, autenticada) |
sei_sugestao_assuntos_documento |
Sugestões de assunto para um tipo de documento |
sei_listar_grupos_modelos |
Lista grupos de modelos de documento |
sei_listar_modelos |
Lista modelos de documento disponíveis |
sei_parametros_upload |
Extensões/tamanhos permitidos para upload |
Assinantes (2)
| Tool | Descrição |
|---|---|
sei_listar_assinantes |
Lista cargos/funções para assinatura |
sei_listar_orgaos_assinante |
Lista órgãos disponíveis para assinatura |
Ciência e andamento (3)
| Tool | Descrição |
|---|---|
sei_dar_ciencia |
Dá ciência em documento ou processo |
sei_listar_ciencias |
Lista ciências registradas |
sei_registrar_andamento |
Registra andamento/atividade no processo |
Anotação e observação (2)
| Tool | Descrição |
|---|---|
sei_criar_anotacao |
Cria anotação (post-it) individual no processo |
sei_criar_observacao |
Cria observação da unidade no processo |
Contatos (2)
| Tool | Descrição |
|---|---|
sei_pesquisar_contatos |
Pesquisa contatos cadastrados |
sei_criar_contato |
Cria novo contato |
Marcador (8)
| Tool | Descrição |
|---|---|
sei_criar_marcador |
Cria marcador (lista cores se omitida) |
sei_excluir_marcador |
Exclui marcador(es) |
sei_desativar_marcador |
Desativa marcador(es) sem excluir |
sei_reativar_marcador |
Reativa marcador(es) desativados |
sei_marcar_processo |
Adiciona marcador a um processo |
sei_pesquisar_marcadores |
Lista marcadores disponíveis |
sei_consultar_marcador_processo |
Consulta marcadores ativos de um processo |
sei_historico_marcador_processo |
Histórico de marcadores do processo |
Acompanhamento especial (8)
| Tool | Descrição |
|---|---|
sei_acompanhar_processo |
Adiciona acompanhamento especial |
sei_alterar_acompanhamento |
Altera acompanhamento existente |
sei_remover_acompanhamento |
Remove acompanhamento |
sei_listar_meus_acompanhamentos |
Lista processos acompanhados pelo usuário |
sei_listar_acompanhamentos_unidade |
Lista acompanhamentos da unidade |
sei_listar_grupos_acompanhamento |
Lista grupos de acompanhamento |
sei_criar_grupo_acompanhamento |
Cria grupo de acompanhamento |
sei_excluir_grupo_acompanhamento |
Exclui grupo de acompanhamento |
Bloco interno (10)
| Tool | Descrição |
|---|---|
sei_criar_bloco_interno |
Cria bloco interno |
sei_alterar_bloco_interno |
Altera descrição do bloco |
sei_excluir_bloco_interno |
Exclui bloco(s) |
sei_concluir_bloco_interno |
Conclui bloco(s) |
sei_reabrir_bloco_interno |
Reabre bloco concluído |
sei_incluir_processo_bloco_interno |
Inclui processo(s) no bloco |
sei_retirar_processo_bloco_interno |
Remove processo(s) do bloco |
sei_listar_processos_bloco_interno |
Lista processos do bloco |
sei_anotar_processo_bloco_interno |
Cria anotação em processo do bloco |
sei_alterar_anotacao_bloco_interno |
Altera anotação do bloco |
Bloco de assinatura (16)
| Tool | Descrição |
|---|---|
sei_criar_bloco_assinatura |
Cria bloco (aceita sigla de unidades) |
sei_alterar_bloco_assinatura |
Altera descrição do bloco |
sei_excluir_bloco_assinatura |
Exclui bloco(s) |
sei_concluir_bloco_assinatura |
Conclui bloco(s) |
sei_reabrir_bloco_assinatura |
Reabre bloco concluído |
sei_retornar_bloco_assinatura |
Retorna bloco para unidade de origem |
sei_incluir_documento_bloco_assinatura |
Inclui documento(s) no bloco |
sei_retirar_documentos_bloco_assinatura |
Remove documento(s) do bloco |
sei_listar_documentos_bloco_assinatura |
Lista documentos do bloco |
sei_disponibilizar_bloco_assinatura |
Disponibiliza bloco para assinatura |
sei_cancelar_disponibilizacao_bloco |
Cancela disponibilização |
sei_pesquisar_blocos_assinatura |
Pesquisa blocos existentes |
sei_assinar_bloco |
Assina todos os documentos de um bloco |
sei_assinar_documentos_bloco |
Assina documentos específicos de um bloco |
sei_anotar_documento_bloco_assinatura |
Cria anotação em documento do bloco |
sei_alterar_anotacao_bloco_assinatura |
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 |
|---|---|
sei_listar_relacionamentos |
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 | +relacionamentos, +dataHora em assinaturas |
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 |
|---|---|---|
sei_listar_processos |
Scraper web puro (procedimento_controlar.php em modo Detalhada) |
~14.7 s → ~625 ms (23×) |
sei_consultar_processo |
Híbrido: REST /processo/consultar/{id} + scraper arvore_montar.php em paralelo |
combina dados complementares |
sei_arvore_processo |
Scraper web (arvore_montar.php) |
~12 s → ~1.1 s (10×) |
sei_listar_documentos |
Scraper web (arvore_montar.php) |
~9.7 s → ~1.1 s (10×) |
sei_listar_atividades |
Scraper web (procedimento_consultar_historico.php) |
~2.5 s → ~1.2 s (2×) |
pesquisar_tipos_processo |
Cache in-memory TTL 1h | ~4.2 s → instant |
listar_unidades_usuario |
Cache in-memory TTL 1h | ~3.0 s → instant |
pesquisar_marcadores |
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 | sei_ler_documento("2843449") |
| Processo | Protocolo ou IdProcedimento | sei_criar_anotacao(processo="50300.018905/2018-67") |
| Unidade | Sigla ou ID | sei_enviar_processo(unidades_destino="SFC") |
| Usuário | Nome ou ID | sei_atribuir_processo(usuario="Karina") |
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 |
|---|---|---|
confirmar_acesso_restrito=true na chamada |
Per-call | Decisão pontual do usuário ao usar o LLM |
SEI_PERMITIR_RESTRITOS=true (env var) |
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 railway
npm (qualquer plataforma):
npm install -g @railway/cli
Verificar instalação:
railway --version
3. Autenticar no terminal
railway login
Isso 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-seipro
5. Criar o projeto no Railway
railway init -n mcp-seipro
Se você tiver mais de um workspace, adicione --workspace "Nome do Workspace".
6. Criar o serviço
railway add --service mcp-seipro
7. 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 domain
Isso 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 up
Aguarde 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/mcp
Se 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/mcp - O 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 PORT |
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.br
Configure 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 up
Atualizar o servidor
Para atualizar com novas versões do mcp-seipro:
git pull
railway up
Requisitos 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
- SEI Pro — Extensão de navegador para o SEI
- PyPI
- Repositório
- Railway — Plataforma de deploy na nuvem
Licença
MIT
Установка Seipro
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/SEI-Pro/mcp-seiproFAQ
Seipro MCP бесплатный?
Да, Seipro MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Seipro?
Нет, Seipro работает без API-ключей и переменных окружения.
Seipro — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Seipro в Claude Desktop, Claude Code или Cursor?
Открой Seipro на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Seipro with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
