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
repoacepta unnamesimple: el servidor completa el propietario de GitHub del solicitante. Useowner/namesolo 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_filepara ediciones.edit_filereemplaza todo el archivo y está protegido contra borrados de contenido parcial (allow_shrinkpara 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ámetro | Tipo | Descripción |
|---|---|---|
filter | string | Subcadena 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
path | string | Ruta del directorio; cadena vacía para la raíz del repositorio (predeterminado). |
ref | string | Rama, 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
path req | string | Ruta del archivo dentro del repositorio. |
ref | string | Rama, 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
folder | string | Carpeta para listar. Se establece de forma predeterminada en 'public' (imágenes servidas por el sitio). |
ref | string | Rama, 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
path req | string | Ruta del archivo dentro del repositorio. |
old_string req | string | Texto exacto para encontrar, incluidos los espacios en blanco. Agregue contexto para hacerlo único. |
new_string req | string | Texto de reemplazo. |
message req | string | Mensaje de confirmación en lenguaje sencillo. |
branch | string | Rama para confirmar. Se establece de forma predeterminada en la rama predeterminada. |
replace_all | boolean | Reemplace 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
path req | string | Ruta del archivo dentro del repositorio. |
content req | string | Contenido completo del archivo nuevo (UTF-8). |
message req | string | Mensaje de confirmación en lenguaje sencillo. |
branch | string | Rama para confirmar. Se establece de forma predeterminada en la rama predeterminada. |
allow_shrink | boolean | Anule 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
path req | string | Ubicación de guardado solicitada. La herramienta detecta si el repositorio sirve public/ o su raíz y corrige la ruta automáticamente. |
message req | string | Mensaje de confirmación en lenguaje sencillo. |
data | string | Avanzado: bytes de imagen en base64. Omita para obtener un enlace de carga en su lugar. |
branch | string | Rama 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ámetro | Tipo | Descripción |
|---|---|---|
token req | string | El 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
path | string | Limite a confirmaciones que toquen este archivo/directorio. |
limit | integer | Cuá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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
sha req | string | SHA 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ámetro | Tipo | Descripción |
|---|---|---|
repo req | string | Repositorio como 'propietario/nombre', o 'nombre' simple para usar el propietario de GitHub del solicitante. |
sha req | string | SHA de confirmación para revertir. |
branch | string | Rama 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ámetro | Tipo | Descripción |
|---|---|---|
repo | string | Reduzca 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ámetro | Tipo | Descripción |
|---|---|---|
domain req | string | Dominio para conectar, p. ej., 'gracebaptist.org' o 'www.gracebaptist.org'. |
repo | string | Qué 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ámetro | Tipo | Descripción |
|---|---|---|
domain req | string | Dominio para verificar, p. ej., 'gracebaptist.org'. |
repo | string | Qué 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ámetro | Tipo | Descripción |
|---|---|---|
domain req | string | El dominio conectado para cambiar, p. ej., 'www.gracebaptist.org'. |
redirect_to | string | Dominio al que enviar a los visitantes, p. ej., 'gracebaptist.org'. Use 'none' (u omita) para desactivar la redirección. |
permanent | boolean | Permanente (308) de forma predeterminada; falso para un 307 temporal. |
repo | string | Qué 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ámetro | Tipo | Descripción |
|---|---|---|
church | string | Nombre de la iglesia o dominio en vivo. |
days | integer | Ventana 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ámetro | Tipo | Descripción |
|---|---|---|
church | string | Nombre de la iglesia o dominio en vivo. |
days | integer | Ventana en días, 1–90. Predeterminado 28. |
limit | integer | Cuá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ámetro | Tipo | Descripción |
|---|---|---|
church | string | Nombre de la iglesia o dominio en vivo. |
days | integer | Ventana en días, 1–90. Predeterminado 28. |
limit | integer | Cuá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ámetro | Tipo | Descripción |
|---|---|---|
church | string | Nombre de la iglesia o dominio en vivo. |
days | integer | Ventana 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ámetro | Tipo | Descripción |
|---|---|---|
url req | string | El 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