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
repoaceita umnamesimples — o servidor preenche o proprietário GitHub do chamador. Useowner/nameapenas 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_filepara edições.edit_filesubstitui o arquivo inteiro e é protegido contra apagamentos parciais de conteúdo (allow_shrinkpara 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âmetro | Tipo | Descrição |
|---|---|---|
| filter | string | Substring 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âmetro | Tipo | Descrição |
|---|---|---|
| queryreq | string | Texto para comparar com nome ou descrição do repositório (ex.: 'batista', uma cidade, nome de pastor). |
| limit | integer | Quantas 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositó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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário 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 { nome, tipo: 'arquivo' | 'diretório' }.
read_fileread
Lê o conteúdo UTF-8 completo de um arquivo. Sempre leia antes de editar.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| pathreq | 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.
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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| queryreq | string | Texto a encontrar, sem diferenciar maiúsculas de minúsculas. |
| ref | string | Branch, tag ou SHA. Padrão: branch padrão do repositório. |
| path_prefix | string | Pesquisar 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário 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 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| pathreq | string | Caminho do arquivo dentro do repositório. |
| old_stringreq | string | Texto exato a encontrar, incluindo espaços em branco. Adicione contexto para torná-lo único. |
| new_stringreq | string | Texto de substituição. |
| messagereq | 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_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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| pathreq | string | Caminho do arquivo dentro do repositório. |
| contentreq | string | Novo conteúdo completo do arquivo (UTF-8). |
| messagereq | string | Mensagem de commit em linguagem simples. |
| branch | string | Branch para commit. Padrão: branch padrão. |
| allow_shrink | boolean | Substitui 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| pathreq | string | Local de salvamento. Use 'public/.' para imagens servidas pelo site. |
| messagereq | 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 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âmetro | Tipo | Descrição |
|---|---|---|
| tokenreq | string | O 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| path | string | Limitar a commits que tocam este arquivo/diretório. |
| limit | integer | Quantos 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'proprietário/nome', ou apenas 'nome' para usar o proprietário GitHub do chamador. |
| shareq | string | SHA 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âmetro | Tipo | Descrição |
|---|---|---|
| reporeq | string | Repositório como 'dono/nome', ou apenas 'nome' para usar o dono do GitHub do chamador. |
| shareq | string | SHA do commit a reverter. |
| branch | string | Branch 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âmetro | Tipo | Descrição |
|---|---|---|
| repo | string | Restringir 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âmetro | Tipo | Descrição |
|---|---|---|
| domainreq | string | Domínio a conectar, ex.: 'gracebaptist.org' ou 'www.gracebaptist.org'. |
| repo | string | Qual 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âmetro | Tipo | Descrição |
|---|---|---|
| domainreq | string | Domínio a verificar, ex.: 'gracebaptist.org'. |
| repo | string | Qual 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âmetro | Tipo | Descrição |
|---|---|---|
| domainreq | string | O domínio conectado a alterar, ex.: 'www.gracebaptist.org'. |
| redirect_to | string | Domínio para onde enviar os visitantes, ex.: 'gracebaptist.org'. Use 'none' (ou omita) para desativar o redirecionamento. |
| permanent | boolean | Permanente (308) por padrão; false para um 307 temporário. |
| repo | string | Qual 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â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, visitantes únicos (dispositivos), país e detalhamento por dispositivo.
top_pagesread
Páginas mais visitadas em um período 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_referrersread
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_dayread
Tendência diária de visualizações 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 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âmetro | Tipo | Descrição |
|---|---|---|
| urlreq | string | O 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