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
repoaceita umnamesimples — o servidor preenche o owner GitHub do chamador. Useowner/nameapenas 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_filepara edições.edit_filesubstitui o arquivo inteiro e é protegido contra apagamentos parciais de conteúdo (allow_shrinkpara 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âmetro | Tipo | Descrição |
|---|---|---|
filter | string | Substring 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositó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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
path | string | Caminho do diretório; string vazia para a raiz do repositório (padrão). |
ref | string | Branch, 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
path req | string | Caminho do arquivo dentro do repositório. |
ref | string | Branch, 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
folder | string | Pasta para listar. Padrão: 'public' (imagens servidas pelo site). |
ref | string | Branch, 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
path req | string | Caminho do arquivo dentro do repositório. |
old_string req | string | Texto exato a encontrar, incluindo espaços. Adicione contexto para torná-lo único. |
new_string req | string | Texto de substituição. |
message req | string | Mensagem de commit em linguagem simples. |
branch | string | Branch para commit. Padrão: branch padrão. |
replace_all | boolean | Substituir 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
path req | string | Caminho do arquivo dentro do repositório. |
content req | string | Novo conteúdo completo do arquivo (UTF-8). |
message req | string | Mensagem de commit em linguagem simples. |
branch | string | Branch para commit. Padrão: branch padrão. |
allow_shrink | boolean | Sobrescrever 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
path req | string | Local de salvamento solicitado. A ferramenta detecta se o repositório serve public/ ou sua raiz e corrige o caminho automaticamente. |
message req | string | Mensagem de commit em linguagem simples. |
data | string | Avançado — bytes de imagem em base64. Omita para obter um link de upload. |
branch | string | Branch 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âmetro | Tipo | Descrição |
|---|---|---|
token req | string | O 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
path | string | Limite a commits que tocam neste arquivo/diretório. |
limit | integer | Quantos 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
sha req | string | SHA 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âmetro | Tipo | Descrição |
|---|---|---|
repo req | string | Repositório como 'owner/nome', ou apenas 'nome' para usar o owner GitHub do chamador. |
sha req | string | SHA do commit a reverter. |
branch | string | Branch 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âmetro | Tipo | Descrição |
|---|---|---|
repo | string | Restringir 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âmetro | Tipo | Descrição |
|---|---|---|
domain req | string | Domínio a conectar, ex.: 'gracebaptist.org' ou 'www.gracebaptist.org'. |
repo | string | Qual 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âmetro | Tipo | Descrição |
|---|---|---|
domain req | string | Domínio a verificar, ex.: 'gracebaptist.org'. |
repo | string | Qual 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âmetro | Tipo | Descrição |
|---|---|---|
domain req | string | O domínio conectado a alterar, ex.: 'www.gracebaptist.org'. |
redirect_to | string | Domínio para onde enviar visitantes, ex.: 'gracebaptist.org'. Use 'none' (ou omita) para desativar o redirecionamento. |
permanent | boolean | Permanente (308) por padrão; falso para um 307 temporário. |
repo | string | Qual 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âmetro | Tipo | Descrição |
|---|---|---|
church | string | Nome da igreja ou domínio ativo. |
days | integer | Janela 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âmetro | Tipo | Descrição |
|---|---|---|
church | string | Nome da igreja ou domínio ativo. |
days | integer | Janela em dias, 1–90. Padrão 28. |
limit | integer | Quantas 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âmetro | Tipo | Descrição |
|---|---|---|
church | string | Nome da igreja ou domínio ativo. |
days | integer | Janela em dias, 1–90. Padrão 28. |
limit | integer | Quantos 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âmetro | Tipo | Descrição |
|---|---|---|
church | string | Nome da igreja ou domínio ativo. |
days | integer | Janela 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âmetro | Tipo | Descrição |
|---|---|---|
url obrigatório | string | O 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