Church Website Editor

Edite seu site da igreja com ChatGPT ou Claude

Documentação

Servidor MCP Church Website Editor

Um servidor Model Context Protocol que permite a um assistente de IA editar o site de uma igreja operando diretamente em seu repositório GitHub. Grava commits no branch padrão e faz deploy automático para produção via Vercel em cerca de 30 segundos. 25 ferramentas, GitHub-OAuth com escopo para os repositórios do próprio chamador.

Procurando a versão em linguagem simples? Veja o guia do pastor.

Conexão

Endpoint

https://www.elijahdesent.com/api/mcp

Transporte

Streamable HTTP (sem estado)

Servidor

elijahdesent-crm v0.10.0

Autenticação

OAuth 2.1 — identidade via GitHub

Metadados de autorização

/.well-known/oauth-authorization-server

Metadados de recurso protegido

/.well-known/oauth-protected-resource

O endpoint anuncia OAuth 2.1 com registro dinâmico de clientes; os documentos de descoberta acima permitem que um cliente MCP compatível negocie o fluxo automaticamente. Os tokens estão vinculados à conta GitHub que tem acesso ao repositório da igreja, então cada chamada tem escopo para os repositórios que o chamador já possui.

Adicionar como conector remoto

{
  "mcpServers": {
    "church-website-editor": {
      "url": "https://www.elijahdesent.com/api/mcp"
    }
  }
}

A maioria dos clientes (Claude, modo desenvolvedor do ChatGPT, Perplexity) adiciona pela interface de conector — veja o passo a passo de configuração. Na primeira conexão, o cliente abre um login do GitHub para autorizar.

Convenções

  • repo aceita um name simples — o servidor preenche o owner GitHub do chamador. Use owner/name apenas para outra organização.
  • Cada gravação bem-sucedida é um commit no branch padrão. A Vercel faz deploy automático no push; não há etapa separada de deploy.
  • Prefira replace_in_file para edições. edit_file substitui o arquivo inteiro e é protegido contra apagamentos parciais de conteúdo (allow_shrink para sobrescrever).
  • Ferramentas de leitura nunca alteram; ferramentas de commit enviam para o repositório; ferramentas de status apenas relatam o estado.

Ferramentas

Conexão e descoberta

Estabeleça identidade e encontre os repositórios e sites que o chamador pode acessar.

connection_status status

Confirme que o chamador está autenticado e que o vínculo com o GitHub está ativo. Use para diagnosticar falhas de autenticação.

Sem parâmetros.

Retorna Usuário autenticado, estado do vínculo com o GitHub e o(s) site(s) da igreja conectado(s) à conta.

list_my_sites status

Liste a(s) igreja(s) vinculada(s) ao chamador no CRM, com seus domínios ativos.

Sem parâmetros.

Retorna Matriz de { church, domain }.

list_repos read

Liste os repositórios GitHub que o chamador pode acessar. Com escopo do owner por padrão.

ParâmetroTipoDescrição
filterstringSubstring para filtrar nomes de repositórios (ex.: 'batista').

Retorna Matriz de { name, description, default_branch, private }.

get_repo_info read

Relate as versões de framework de um repositório para que as edições sigam suas convenções. Chame antes de qualquer edição de código não trivial.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.

Retorna Versões de Next.js / React / Tailwind, uso de TypeScript e roteador (app vs pages).

Leitura de conteúdo

Navegue pela árvore, leia arquivos, pesquise e faça inventário de imagens ativas. Tudo somente leitura.

list_pages read

Liste o conteúdo de um diretório. Caminho vazio lista a raiz do repositório.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
pathstringCaminho do diretório; string vazia para a raiz do repositório (padrão).
refstringBranch, tag ou SHA. Padrão: branch padrão do repositório.

Retorna Matriz de { name, type: 'file' | 'dir' }.

read_file read

Leia o conteúdo UTF-8 completo de um arquivo. Sempre leia antes de editar.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
path reqstringCaminho do arquivo dentro do repositório.
refstringBranch, tag ou SHA. Padrão: branch padrão do repositório.

Retorna Conteúdo completo do arquivo.

list_photos read

Faça inventário de arquivos de imagem com suas URLs ativas exatas. Chame antes de apontar uma página para uma foto para evitar erros de digitação em imagens quebradas.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
folderstringPasta para listar. Padrão: 'public' (imagens servidas pelo site).
refstringBranch, tag ou SHA. Padrão: branch padrão do repositório.

Retorna Matriz de imagens com caminho no repositório e URL ativa.

Gravação de conteúdo

Cada gravação bem-sucedida é um commit no branch padrão, que faz deploy automático para produção via Vercel (~30s).

replace_in_file commit

Edição direcionada — substitua texto exato. Preferida para mudanças pequenas; toca apenas no que você especificar.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
path reqstringCaminho do arquivo dentro do repositório.
old_string reqstringTexto exato a encontrar, incluindo espaços. Adicione contexto para torná-lo único.
new_string reqstringTexto de substituição.
message reqstringMensagem de commit em linguagem simples.
branchstringBranch para commit. Padrão: branch padrão.
replace_allbooleanSubstituir todas as ocorrências. Padrão: falso (deve corresponder exatamente uma vez).

Retorna Confirmação de commit.

edit_file commit

Crie um novo arquivo ou substitua o conteúdo COMPLETO de um arquivo. Tem proteção contra redução para evitar apagamentos parciais de conteúdo.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
path reqstringCaminho do arquivo dentro do repositório.
content reqstringNovo conteúdo completo do arquivo (UTF-8).
message reqstringMensagem de commit em linguagem simples.
branchstringBranch para commit. Padrão: branch padrão.
allow_shrinkbooleanSobrescrever a proteção que rejeita gravações que removem >20 linhas E <60% do tamanho anterior.

Retorna Confirmação de commit, ou rejeição se a proteção contra redução for acionada.

upload_photo commit

Adicione uma foto/vídeo. Chamado sem data\, retorna um link de upload de uso único; imagens pequenas fazem commit no repositório, vídeos e arquivos grandes são roteados automaticamente para armazenamento hospedado.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
path reqstringLocal de salvamento solicitado. A ferramenta detecta se o repositório serve public/ ou sua raiz e corrige o caminho automaticamente.
message reqstringMensagem de commit em linguagem simples.
datastringAvançado — bytes de imagem em base64. Omita para obter um link de upload.
branchstringBranch para commit. Padrão: branch padrão.

Retorna Um link de upload de uso único (padrão), ou confirmação de commit quando data\ for fornecido.

get_uploaded_photo_url read

Resolva onde um upload foi parar depois que o usuário usou o link de upload_photo.

ParâmetroTipoDescrição
token reqstringO link de upload (https://.../u/<token>) ou o token simples.

Retorna HOSTED (URL de armazenamento permanente), COMMITTED (caminho ativo no repositório) ou PENDING (ainda não enviado).

Histórico e desfazer

Inspecione commits e reverta mudanças de forma não destrutiva.

list_recent_changes read

Liste commits recentes, do mais novo ao mais antigo.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
pathstringLimite a commits que tocam neste arquivo/diretório.
limitintegerQuantos retornar, 1–50. Padrão: 15.

Retorna Matriz de { SHA curto, hora, autor, mensagem }.

show_change read

Obtenha a mensagem, os arquivos tocados e o diff de um commit.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
sha reqstringSHA do commit (completo ou curto).

Retorna Patch por arquivo com linhas adicionadas/removidas.

revert_change commit

Desfaça um commit criando um novo commit que restaura o estado anterior. O commit original permanece no histórico.

ParâmetroTipoDescrição
repo reqstringRepositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador.
sha reqstringSHA do commit a reverter.
branchstringBranch para aplicar a reversão. Padrão: branch padrão.

Retorna Confirmação do commit de reversão.

Deploy

Confirme que as edições chegaram à produção.

check_deploy_status status

Verifique se edições recentes foram publicadas. Descobre automaticamente o(s) site(s) do chamador pelo acesso ao GitHub.

ParâmetroTipoDescrição
repostringRestringir a um repositório. Omita para verificar todos os sites do chamador.

Retorna Estado de deploy por site; em falha, as últimas linhas da saída do build.

Domínios personalizados

Anexe um domínio personalizado a um site na Vercel e confirme se está apontando corretamente. Com escopo para projetos vinculados a repositórios que o chamador pode acessar. O pastor altera os nameservers no registrador; as ferramentas nunca tocam o registrador diretamente.

connect_domain vercel

Anexe um domínio personalizado ao projeto Vercel do chamador e retorne instruções em linguagem simples para apontar os nameservers do domínio para a Vercel (com alternativa A/CNAME para domínios que hospedam e-mail). Um apex simples emparelha automaticamente seu 'www.'. Fica ativo quando os nameservers propagarem.

ParâmetroTipoDescrição
domain reqstringDomínio a conectar, ex.: 'gracebaptist.org' ou 'www.gracebaptist.org'.
repostringQual site, como 'owner/nome' ou 'nome'. Necessário apenas se o chamador tiver vários sites.

Retorna Confirmação mais os nameservers da Vercel a definir no registrador (da API da Vercel, ex.: ns1/ns2.vercel-dns.com), e um fallback A/CNAME.

check_domain status

Verifique se os nameservers de um domínio conectado apontam para a Vercel e se o site está verificado e ativo. Quando totalmente ativo e o chamador possui exatamente uma igreja, registra-o como live_domain dessa igreja para que a análise atribua o tráfego.

ParâmetroTipoDescrição
domain reqstringDomínio a verificar, ex.: 'gracebaptist.org'.
repostringQual site, como 'owner/nome' ou 'nome'. Necessário apenas se o chamador tiver vários sites.

Retorna Status dos nameservers (atual vs. esperado) + estado de verificação do site; quando ativo, confirmação de que foi vinculado para análise.

redirect_domain vercel

Altere para onde um domínio conectado aponta: redirecione-o para outro domínio (ex.: um domínio antigo ou a versão sem www → o site principal), ou passe redirect_to 'none' para servir diretamente. Não pode encadear — o destino não pode ser ele próprio um redirecionamento.

ParâmetroTipoDescrição
domain reqstringO domínio conectado a alterar, ex.: 'www.gracebaptist.org'.
redirect_tostringDomínio para onde enviar visitantes, ex.: 'gracebaptist.org'. Use 'none' (ou omita) para desativar o redirecionamento.
permanentbooleanPermanente (308) por padrão; falso para um 307 temporário.
repostringQual site, como 'owner/nome' ou 'nome'. Necessário apenas se o chamador tiver vários sites.
Retorna a Confirmação do novo redirecionamento (ou que o domínio agora serve diretamente). Relata o erro de encadeamento se o destino for, ele próprio, um redirecionamento.

Analytics

Dados de tráfego somente leitura, com escopo automático para os sites do próprio chamador. Passe church\ para desambiguar quando ele possuir mais de um.

analytics_summary leitura

Tráfego de alto nível em uma janela recente.

ParâmetroTipoDescrição
churchstringNome da igreja ou domínio ativo.
daysintegerJanela em dias, 1–90. Padrão 28.

Retorna Total de visualizações de página, visitantes únicos (dispositivos), detalhamento por país e dispositivo.

top_pages leitura

Páginas mais visualizadas em uma janela recente.

ParâmetroTipoDescrição
churchstringNome da igreja ou domínio ativo.
daysintegerJanela em dias, 1–90. Padrão 28.
limitintegerQuantas páginas, 1–50. Padrão 10.

Retorna Páginas classificadas com contagens de visualizações.

top_referrers leitura

Principais referenciadores externos (tráfego direto excluído).

ParâmetroTipoDescrição
churchstringNome da igreja ou domínio ativo.
daysintegerJanela em dias, 1–90. Padrão 28.
limitintegerQuantos referenciadores, 1–50.

Retorna Referenciadores classificados com contagens.

traffic_by_day leitura

Tendência diária de visualizações de página para identificar picos e semanas tranquilas.

ParâmetroTipoDescrição
churchstringNome da igreja ou domínio ativo.
daysintegerJanela em dias, 1–90. Padrão 14.

Retorna Visualizações de página por dia.

Pontuação

Audite qualquer site de igreja de acordo com a rubrica do Church Website Score.

score_website leitura

Busca a página inicial e as principais subpáginas de um site e retorna a rubrica de avaliação mais o conteúdo da página. O chamador (o modelo) faz a pontuação — a ferramenta não chama IA em si.

ParâmetroTipoDescrição
url obrigatóriostringO site a ser pontuado, ex.: 'gracebaptist.org'.

Retorna A rubrica completa de 6 categorias / 100 pontos e o conteúdo da página buscada.

Construído e mantido pelo Pastor Eli (Elijah Desent) · Pastor@elijahdesent.com