Church Website Editor

Edite seu site da igreja com ChatGPT ou Claude

Documentação

Developer reference

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, OAuth do GitHub com escopo limitado aos repositórios do próprio chamador.

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

Conexão

Endpoint

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

Transporte

HTTP Streamable (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 são vinculados à conta GitHub que tem acesso ao repositório da igreja, portanto, cada chamada tem escopo limitado aos 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 por meio da interface de conectores — consulte 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 proprietário GitHub do chamador. Use owner/name apenas para outra organização.
  • Cada gravação bem-sucedida é um commit no branch padrão. O 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 substituir).
  • As ferramentas de leitura nunca alteram; as ferramentas de commit enviam para o repositório; as 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_statusstatus

Confirma que o chamador está autenticado e que o link do GitHub está ativo. Use para diagnosticar falhas de autenticação.

Sem parâmetros.

Retorna usuário autenticado, estado do link GitHub e o(s) site(s) da igreja vinculado(s) à conta.

list_my_sitesstatus

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

Sem parâmetros.

Retorna matriz de { igreja, domínio }.

list_reposread

Lista os repositórios GitHub que o chamador pode acessar. Com escopo do proprietário por padrão.

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

Retorna matriz de { nome, descrição, branch_padrão, privado }.

search_reposread

Encontra um repositório comparando tanto o NOME quanto a DESCRIÇÃO. Mais amplo que list_repos (somente nome) — use quando você sabe sobre o que é um site, mas não o nome exato do repositório.

ParâmetroTipoDescrição
queryreqstringTexto para comparar com nome ou descrição do repositório (ex.: 'batista', uma cidade, nome de pastor).
limitintegerQuantas correspondências retornar, 1–50. Padrão 20.

Retorna repositórios correspondentes, mais recentes primeiro, cada um com descrição, visibilidade e última atualização.

get_repo_inforead

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

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário 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. Somente leitura.

list_pagesread

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

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário 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 { nome, tipo: 'arquivo' | 'diretório' }.

read_fileread

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

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
pathreqstringCaminho do arquivo dentro do repositório.
refstringBranch, tag ou SHA. Padrão: branch padrão do repositório.

Retorna conteúdo completo do arquivo.

search_contentread

Pesquisa recursiva de conteúdo (busca a árvore e verifica cada arquivo de texto) — funciona em repositórios novos e não indexados.

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
queryreqstringTexto a encontrar, sem diferenciar maiúsculas de minúsculas.
refstringBranch, tag ou SHA. Padrão: branch padrão do repositório.
path_prefixstringPesquisar apenas caminhos que começam com isto (ex.: 'src/app/').

Retorna até 30 arquivos correspondentes, cada um com números de linha correspondentes.

list_photosread

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 de imagem quebrada.

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário 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 do repositório e URL ativa.

Escrita 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_filecommit

Edição direcionada — substitui texto exato. Preferida para pequenas alterações; toca apenas o que você especificar.

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
pathreqstringCaminho do arquivo dentro do repositório.
old_stringreqstringTexto exato a encontrar, incluindo espaços em branco. Adicione contexto para torná-lo único.
new_stringreqstringTexto de substituição.
messagereqstringMensagem 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_filecommit

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

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
pathreqstringCaminho do arquivo dentro do repositório.
contentreqstringNovo conteúdo completo do arquivo (UTF-8).
messagereqstringMensagem de commit em linguagem simples.
branchstringBranch para commit. Padrão: branch padrão.
allow_shrinkbooleanSubstitui a proteção que rejeita gravações que removem >20 linhas E <60% do tamanho anterior.

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

upload_photocommit

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

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
pathreqstringLocal de salvamento. Use 'public/.' para imagens servidas pelo site.
messagereqstringMensagem 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 uma confirmação de commit quando data\ é fornecido.

get_uploaded_photo_urlread

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

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

Retorna HOSPEDADO (URL de armazenamento permanente), COMMITADO (caminho ativo do repositório) ou PENDENTE (ainda não enviado).

Histórico e desfazer

Inspeciona commits e reverte alterações de forma não destrutiva.

list_recent_changesread

Lista commits recentes, mais recentes primeiro.

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
pathstringLimitar a commits que tocam este arquivo/diretório.
limitintegerQuantos retornar, 1–50. Padrão 15.

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

show_changeread

Obtém a mensagem, arquivos tocados e diff de um commit.

ParâmetroTipoDescrição
reporeqstringRepositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador.
shareqstringSHA do commit (completo ou curto).

Retorna patch por arquivo com linhas adicionadas/removidas.

revert_changecommit

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

ParâmetroTipoDescrição
reporeqstringRepositório como 'dono/nome', ou apenas 'nome' para usar o dono do GitHub do chamador.
shareqstringSHA do commit a reverter.
branchstringBranch onde aplicar a reversão. Padrão é o branch padrão.

Retorna a confirmação do commit revertido.

Implantação

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

check_deploy_statusstatus

Verifique se as edições recentes foram implantadas. Descobre automaticamente o(s) site(s) do chamador a partir do acesso ao GitHub.

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

Retorna o estado da implantação por site; em caso de falha, as últimas linhas da saída de build.

Domínios personalizados

Vincule um domínio personalizado a um site na Vercel e confirme se ele está apontando corretamente. Escopo limitado a projetos vinculados a repositórios que o chamador pode acessar. O pastor altera os servidores de nomes no seu registrador; as ferramentas nunca tocam o registrador diretamente.

connect_domainvercel

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

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

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

check_domainstatus

Verifique se os servidores de nomes 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 o analytics atribua o tráfego.

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

Retorna o status dos servidores de nomes (atual vs. esperado) + estado de verificação do site; quando ativo, confirmação de que foi vinculado para o analytics.

redirect_domainvercel

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 é possível encadear — o destino não pode ser um redirecionamento.

ParâmetroTipoDescrição
domainreqstringO domínio conectado a alterar, ex.: 'www.gracebaptist.org'.
redirect_tostringDomínio para onde enviar os visitantes, ex.: 'gracebaptist.org'. Use 'none' (ou omita) para desativar o redirecionamento.
permanentbooleanPermanente (308) por padrão; false para um 307 temporário.
repostringQual site, como 'dono/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 um redirecionamento.

Análises

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

analytics_summaryread

Tráfego de alto nível em um período recente.

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

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

top_pagesread

Páginas mais visitadas em um período 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_referrersread

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_dayread

Tendência diária de visualizações 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 por dia.

Pontuação

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

score_websiteread

Busque a página inicial e as principais subpáginas de um site e retorne 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 por si mesma.

ParâmetroTipoDescrição
urlreqstringO site a pontuar, ex.: 'gracebaptist.org'.

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

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