Church Website Editor

Edita tu sitio web de la iglesia con ChatGPT o Claude

Documentación

Servidor MCP de Church Website Editor

Un servidor de Model Context Protocol que permite a un asistente de IA editar el sitio web de una iglesia operando directamente sobre su repositorio de GitHub. Escribe confirmaciones en la rama predeterminada y se implementa automáticamente en producción a través de Vercel en aproximadamente 30 segundos. 25 herramientas, con OAuth de GitHub limitado a los repositorios propios del solicitante.

¿Buscas la versión en lenguaje sencillo? Consulta la guía para pastores.

Conexión

Punto final

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

Transporte

HTTP transmisible (sin estado)

Servidor

elijahdesent-crm v0.10.0

Autenticación

OAuth 2.1 — identidad a través de GitHub

Metadatos de autorización

/.well-known/oauth-authorization-server

Metadatos de recurso protegido

/.well-known/oauth-protected-resource

El punto final anuncia OAuth 2.1 con registro dinámico de clientes; los documentos de descubrimiento anteriores permiten que un cliente MCP compatible negocie el flujo automáticamente. Los tokens están vinculados a la cuenta de GitHub que tiene acceso al repositorio de la iglesia, por lo que cada llamada se limita a los repositorios que el solicitante ya posee.

Agregar como conector remoto

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

La mayoría de los clientes (Claude, modo desarrollador de ChatGPT, Perplexity) lo agregan a través de su interfaz de conectores; consulte el tutorial de configuración. En la primera conexión, el cliente abre un inicio de sesión de GitHub para autorizar.

Convenciones

  • repo acepta un name simple: el servidor completa el propietario de GitHub del solicitante. Use owner/name solo para otra organización.
  • Cada escritura exitosa es una confirmación en la rama predeterminada. Vercel se implementa automáticamente al hacer push; no hay paso de implementación separado.
  • Prefiera replace_in_file para ediciones. edit_file reemplaza todo el archivo y está protegido contra borrados de contenido parcial (allow_shrink para anular).
  • Las herramientas de lectura nunca mutan; las herramientas de confirmación hacen push al repositorio; las herramientas de estado solo informan el estado.

Herramientas

Conexión y descubrimiento

Establezca la identidad y encuentre los repositorios y sitios que el solicitante puede tocar.

connection_status estado

Confirme que el solicitante está autenticado y que el enlace de GitHub está activo. Úselo para diagnosticar fallas de autenticación.

Sin parámetros.

Devuelve Usuario autenticado, estado del enlace de GitHub y los sitios de la iglesia conectados a la cuenta.

list_my_sites estado

Liste las iglesias vinculadas al solicitante en el CRM, con sus dominios en vivo.

Sin parámetros.

Devuelve Matriz de { iglesia, dominio }.

list_repos lectura

Liste los repositorios de GitHub a los que el solicitante puede acceder. Limitado al propietario de forma predeterminada.

ParámetroTipoDescripción
filterstringSubcadena para filtrar nombres de repositorios (p. ej., 'bautista').

Devuelve Matriz de { nombre, descripción, rama_predeterminada, privado }.

get_repo_info lectura

Informe las versiones del marco de trabajo de un repositorio para que las ediciones coincidan con sus convenciones. Llame antes de cualquier edición de código no trivial.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.

Devuelve Versiones de Next.js / React / Tailwind, uso de TypeScript y enrutador (app vs pages).

Lectura de contenido

Navegue por el árbol, lea archivos, busque e inventarie imágenes en vivo. Todo de solo lectura.

list_pages lectura

Liste el contenido de un directorio. Una ruta vacía lista la raíz del repositorio.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
pathstringRuta del directorio; cadena vacía para la raíz del repositorio (predeterminado).
refstringRama, etiqueta o SHA. Se establece de forma predeterminada en la rama predeterminada del repositorio.

Devuelve Matriz de { nombre, tipo: 'archivo' | 'dir' }.

read_file lectura

Lea el contenido UTF-8 completo de un archivo. Siempre lea antes de editar.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
path reqstringRuta del archivo dentro del repositorio.
refstringRama, etiqueta o SHA. Se establece de forma predeterminada en la rama predeterminada del repositorio.

Devuelve Contenido completo del archivo.

list_photos lectura

Inventarie archivos de imagen con sus URL en vivo exactas. Llame antes de apuntar una página a una foto para evitar errores tipográficos de imágenes rotas.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
folderstringCarpeta para listar. Se establece de forma predeterminada en 'public' (imágenes servidas por el sitio).
refstringRama, etiqueta o SHA. Se establece de forma predeterminada en la rama predeterminada del repositorio.

Devuelve Matriz de imágenes con ruta del repositorio y URL en vivo.

Escritura de contenido

Cada escritura exitosa es una confirmación en la rama predeterminada, que se implementa automáticamente en producción a través de Vercel (~30 s).

replace_in_file confirmación

Edición dirigida: reemplace texto exacto. Preferido para cambios pequeños; solo toca lo que especifique.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
path reqstringRuta del archivo dentro del repositorio.
old_string reqstringTexto exacto para encontrar, incluidos los espacios en blanco. Agregue contexto para hacerlo único.
new_string reqstringTexto de reemplazo.
message reqstringMensaje de confirmación en lenguaje sencillo.
branchstringRama para confirmar. Se establece de forma predeterminada en la rama predeterminada.
replace_allbooleanReemplace cada aparición. Predeterminado falso (debe coincidir exactamente una vez).

Devuelve Confirmación de confirmación.

edit_file confirmación

Cree un archivo nuevo o reemplace el contenido COMPLETO de un archivo. Tiene una protección contra borrados de contenido parcial.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
path reqstringRuta del archivo dentro del repositorio.
content reqstringContenido completo del archivo nuevo (UTF-8).
message reqstringMensaje de confirmación en lenguaje sencillo.
branchstringRama para confirmar. Se establece de forma predeterminada en la rama predeterminada.
allow_shrinkbooleanAnule la protección que rechaza escrituras que eliminan >20 líneas Y <60% del tamaño anterior.

Devuelve Confirmación de confirmación, o un rechazo si se activa la protección contra reducción.

upload_photo confirmación

Agregue una foto/video. Se llama sin data\, devuelve un enlace de carga de un solo uso; las imágenes pequeñas se confirman en el repositorio, los videos y archivos grandes se enrutan automáticamente al almacenamiento alojado.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
path reqstringUbicación de guardado solicitada. La herramienta detecta si el repositorio sirve public/ o su raíz y corrige la ruta automáticamente.
message reqstringMensaje de confirmación en lenguaje sencillo.
datastringAvanzado: bytes de imagen en base64. Omita para obtener un enlace de carga en su lugar.
branchstringRama para confirmar. Se establece de forma predeterminada en la rama predeterminada.

Devuelve Un enlace de carga de un solo uso (predeterminado), o una confirmación de confirmación cuando se proporciona data\.

get_uploaded_photo_url lectura

Resuelva dónde aterrizó una carga después de que el usuario haya usado el enlace de upload_photo.

ParámetroTipoDescripción
token reqstringEl enlace de carga (https://.../u/<token>) o el token simple.

Devuelve HOSTED (URL de almacenamiento permanente), COMMITTED (ruta del repositorio en vivo) o PENDING (aún no cargado).

Historial y deshacer

Inspeccione confirmaciones y revierta cambios de forma no destructiva.

list_recent_changes lectura

Liste confirmaciones recientes, de la más nueva a la más antigua.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
pathstringLimite a confirmaciones que toquen este archivo/directorio.
limitintegerCuántos devolver, 1–50. Predeterminado 15.

Devuelve Matriz de { SHA corto, hora, autor, mensaje }.

show_change lectura

Obtenga el mensaje, los archivos tocados y el diff de una confirmación.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
sha reqstringSHA de confirmación (completo o corto).

Devuelve Parche por archivo con líneas agregadas/eliminadas.

revert_change confirmación

Deshaga una confirmación creando una nueva confirmación que restaura el estado anterior. La confirmación original permanece en el historial.

ParámetroTipoDescripción
repo reqstringRepositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante.
sha reqstringSHA de confirmación para revertir.
branchstringRama para aplicar la reversión. Se establece de forma predeterminada en la rama predeterminada.

Devuelve Confirmación de reversión.

Implementación

Confirme que las ediciones llegaron a producción.

check_deploy_status estado

Verifique si las ediciones recientes se implementaron. Descubre automáticamente los sitios del solicitante a partir del acceso de GitHub.

ParámetroTipoDescripción
repostringReduzca a un repositorio. Omita para verificar todos los sitios del solicitante.

Devuelve Estado de implementación por sitio; en caso de falla, las últimas líneas de la salida de compilación.

Dominios personalizados

Adjunte un dominio personalizado a un sitio en Vercel y confirme que apunta correctamente. Limitado a proyectos vinculados a repositorios a los que el solicitante puede acceder. El pastor cambia sus servidores de nombres en su registrador; las herramientas nunca tocan el registrador directamente.

connect_domain vercel

Adjunte un dominio personalizado al proyecto de Vercel del solicitante y devuelva instrucciones en lenguaje sencillo para apuntar los servidores de nombres del dominio a Vercel (con una alternativa A/CNAME para dominios que alojan correo electrónico). Un apex simple empareja automáticamente su 'www.'. Se activa una vez que los servidores de nombres se propagan.

ParámetroTipoDescripción
domain reqstringDominio para conectar, p. ej., 'gracebaptist.org' o 'www.gracebaptist.org'.
repostringQué sitio, como 'propietario/nombre' o 'nombre'. Solo se necesita si el solicitante tiene varios sitios.

Devuelve Confirmación más los servidores de nombres de Vercel para configurar en el registrador (de la API de Vercel, p. ej., ns1/ns2.vercel-dns.com), y un respaldo A/CNAME.

check_domain estado

Verifique si los servidores de nombres de un dominio conectado apuntan a Vercel y si el sitio está verificado y en vivo. Cuando está completamente en vivo y el solicitante posee exactamente una iglesia, lo registra como live_domain de esa iglesia para que la analítica atribuya el tráfico.

ParámetroTipoDescripción
domain reqstringDominio para verificar, p. ej., 'gracebaptist.org'.
repostringQué sitio, como 'propietario/nombre' o 'nombre'. Solo se necesita si el solicitante tiene varios sitios.

Devuelve Estado de los servidores de nombres (actual vs. esperado) + estado de verificación del sitio; cuando está en vivo, confirmación de que se ha vinculado para analítica.

redirect_domain vercel

Cambie a dónde apunta un dominio conectado: rediríjalo a otro dominio (p. ej., un dominio antiguo o la versión sin www → el sitio principal), o pase redirect_to 'none' para servir directamente. No se puede encadenar: el destino no debe ser en sí mismo una redirección.

ParámetroTipoDescripción
domain reqstringEl dominio conectado para cambiar, p. ej., 'www.gracebaptist.org'.
redirect_tostringDominio al que enviar a los visitantes, p. ej., 'gracebaptist.org'. Use 'none' (u omita) para desactivar la redirección.
permanentbooleanPermanente (308) de forma predeterminada; falso para un 307 temporal.
repostringQué sitio, como 'propietario/nombre' o 'nombre'. Solo se necesita si el solicitante tiene varios sitios.
Devuelve la confirmación de la nueva redirección (o que el dominio ahora sirve directamente). Reporta el error de encadenamiento si el destino es en sí mismo una redirección.

Analítica

Datos de tráfico de solo lectura, con ámbito automático a los sitios propios del solicitante. Pase church\ para desambiguar cuando posea más de uno.

analytics_summary lectura

Tráfico de alto nivel durante una ventana reciente.

ParámetroTipoDescripción
churchstringNombre de la iglesia o dominio en vivo.
daysintegerVentana en días, 1–90. Predeterminado 28.

Devuelve Total de páginas vistas, visitantes únicos (dispositivos), desglose por país y dispositivo.

top_pages lectura

Páginas más vistas durante una ventana reciente.

ParámetroTipoDescripción
churchstringNombre de la iglesia o dominio en vivo.
daysintegerVentana en días, 1–90. Predeterminado 28.
limitintegerCuántas páginas, 1–50. Predeterminado 10.

Devuelve Páginas clasificadas con recuentos de vistas.

top_referrers lectura

Principales referidores externos (tráfico directo excluido).

ParámetroTipoDescripción
churchstringNombre de la iglesia o dominio en vivo.
daysintegerVentana en días, 1–90. Predeterminado 28.
limitintegerCuántos referidores, 1–50.

Devuelve Referidores clasificados con recuentos.

traffic_by_day lectura

Tendencia diaria de páginas vistas para detectar picos y semanas tranquilas.

ParámetroTipoDescripción
churchstringNombre de la iglesia o dominio en vivo.
daysintegerVentana en días, 1–90. Predeterminado 14.

Devuelve Páginas vistas por día.

Puntuación

Audite cualquier sitio web de iglesia según la rúbrica de Puntuación de Sitios Web de Iglesias.

score_website lectura

Obtenga la página de inicio y las subpáginas clave de un sitio y devuelva la rúbrica de calificación más el contenido de la página. El solicitante (el modelo) realiza la puntuación: la herramienta no llama a IA por sí misma.

ParámetroTipoDescripción
url reqstringEl sitio a puntuar, p. ej. 'gracebaptist.org'.

Devuelve La rúbrica completa de 6 categorías / 100 puntos y el contenido de la página obtenido.

Construido y mantenido por el Pastor Eli (Elijah Desent) · Pastor@elijahdesent.com