ArduMaker MCP

Public MCP server for operating ArduMaker's Projects app (stages, tasks, checklists, comments, attachments, calendar, meetings, GitHub repos) and cloud infrastructure (VPS lifecycle, domains, Linux users, systemd services and scheduled tasks, GitHub deploys, SSH tunnels) on behalf of a real user, with their explicit authorization.

How to connect

Standard: OAuth 2.1 + PKCE, with Dynamic Client Registration (RFC 7591). Any modern MCP client can do this on its own just by pointing at the protocol endpoint:

https://mcp.ardumaker.com/mcp

The flow, in short:

  1. The agent registers itself (POST /register).
  2. It opens GET /authorize in the user's browser — this redirects to an ArduMaker page where the user approves or rejects access, and chooses the scope independently for projects (all of them, or a specific selection) and for VPS (all of them, or a specific selection).
  3. The agent exchanges the code for an access_token (valid 8 hours) plus a refresh_token (POST /token).
  4. Every tool call is authenticated with that token — the agent acts with the same permissions as the user who authorized it, with its actions logged just like a human's would be.
  5. When the access token expires, the agent renews it on its own with grant_type=refresh_token. No new authorization screen: the session stays up.

Standard OAuth metadata at /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource.

Connect to just what you need

The endpoint above serves every tool this server has. That is the safe default and it is not going anywhere — but it is also the most expensive thing you can ask for: an agent pays for the whole catalogue in its context window before it says a word. If your agent only does one kind of work, point it at the matching path instead and it will see only those tools:

https://mcp.ardumaker.com/mcpEverything this server exposes.
https://mcp.ardumaker.com/mcp/vpsVPS lifecycle, domains and nginx, Linux users, systemd, scheduled tasks, databases, GitHub deploys, SSH tunnels and logs.
https://mcp.ardumaker.com/mcp/proyectosProjects, stages, tasks, checklists, comments, attachments, folders, calendar, meetings, linked infrastructure, trash and bug reports.
https://mcp.ardumaker.com/mcp/infraEmail, domains and DNS, blogs, company billing status, RouterIA and SearchAPI keys, and the WhatsApp sandbox.
https://mcp.ardumaker.com/mcp/wordpressWordPress sites: content, Elementor, WooCommerce, plugins, users, files, wp-cli, database, backups, staging and browser checks.

Same server, same credentials, same OAuth flow — only the URL changes. A token issued for one path works on all of them, so switching is editing one line of config, and switching back is editing it again.

What an agent can do

Full machine-readable reference, generated live from this server's own tool registry: https://mcp.ardumaker.com/tools.json.

Healthping (no authentication), ver_contexto_inicial, ver_operacion
Flowspublicar_repo_en_dominio, configurar_tunel_entre_vps, crear_proyecto_con_etapas, crear_correo_de_dominio
Bugsreportar_bug, listar_mis_bugs, ver_bug
Bug triagelistar_bugs_triage, ver_bug_triage, comentar_bug_triage, actualizar_bug_triage, ver_resumen_bugs_triage (solo admin del sistema)
School requestslistar_solicitudes_escuela, ver_solicitud_escuela, crear_solicitud_escuela, actualizar_solicitud_escuela, eliminar_solicitud_escuela, comentar_solicitud_escuela, editar_comentario_solicitud_escuela, eliminar_comentario_solicitud_escuela, aprobar_solicitud_escuela, rechazar_solicitud_escuela (solo admin del sistema; CRUD completo; aprobar y rechazar mandan correo a quien se postuló)
Blogslistar_blogs, ver_blog, listar_mis_blogs, crear_blog, ver_mi_blog, editar_blog, publicar_blog, despublicar_blog, traducir_blog, agregar_seccion_blog, eliminar_seccion_blog, listar_media_blog, crear_media_blog, eliminar_media_blog
Domains & DNSlistar_dominios_empresa, crear_dominio_empresa, ver_dominio_empresa, eliminar_dominio_empresa, ver_estado_ns_dominio, listar_registros_dns, crear_registro_dns, editar_registro_dns (no delete de registro)
Emaillistar_dominios_correo, crear_dominio_correo, ver_dominio_correo, ver_stats_dominio_correo, verificar_dns_dominio_correo, eliminar_dominio_correo, listar_alias_dominio_correo, crear_alias_dominio_correo, eliminar_alias_dominio_correo, listar_cuentas_correo, crear_cuenta_correo, listar_planes_correo, ver_cuenta_correo, editar_cuota_cuenta_correo, listar_cuentas_bot_correo, crear_cuenta_bot_correo, cambiar_token_cuenta_bot_correo, editar_cuenta_bot_correo, eliminar_cuenta_bot_correo, ver_api_correo, ver_cola_correo, listar_envios_correo, ver_envio_correo, listar_api_keys_correo, crear_api_key_correo, cambiar_token_api_key_correo, revocar_api_key_correo, listar_mensajes_correo, ver_mensaje_correo, marcar_leido_correo, enviar_correo, listar_carpetas_correo, crear_carpeta_correo, listar_alias_correo, crear_alias_correo, eliminar_alias_correo, listar_filtros_correo, crear_filtro_correo, eliminar_filtro_correo (no delete de cuenta)
Companyver_empresa, ver_estado_verificacion_empresa, listar_servicios_empresa, ver_consumo_periodo_empresa (todo solo lectura)
Prepaidver_prepago_servicio, crear_prepago_servicio, cambiar_renovacion_prepago
RouterIAlistar_claves_router_ia, crear_clave_router_ia, ver_clave_router_ia, revocar_clave_router_ia, reactivar_clave_router_ia (nunca expone el token salvo al crear)
SearchAPIlistar_tokens_search_api, crear_token_search_api, ver_token_search_api, revocar_token_search_api, reactivar_token_search_api, ver_costos_operaciones_search_api (no expone los proxies de busqueda en si)
WhatsApp sandboxlistar_numeros_whatsapp, listar_numeros_sandbox_whatsapp, crear_numero_sandbox_whatsapp, ver_numero_sandbox_whatsapp, editar_numero_sandbox_whatsapp, eliminar_numero_sandbox_whatsapp, simular_mensaje_sandbox_whatsapp, simular_estado_sandbox_whatsapp, listar_chat_sandbox_whatsapp (solo numeros de prueba: no envia ni lee chats reales), crear_webhook_whatsapp, editar_webhook_whatsapp, eliminar_webhook_whatsapp, configurar_transcripcion_whatsapp
Projectslistar_proyectos, crear_proyecto, ver_proyecto, editar_proyecto, buscar_en_proyecto
Stageslistar_etapas, ver_etapa, crear_etapa, editar_etapa, eliminar_etapa, editar_etapas_en_lote
Taskslistar_tareas, ver_tarea, crear_tarea, editar_tarea, eliminar_tarea, editar_tareas_en_lote
Checklistlistar_checklist_items, agregar_checklist_item, editar_checklist_item, eliminar_checklist_item, editar_checklist_en_lote
Commentslistar_comentarios_tarea, comentar_tarea, listar_comentarios_adjunto, cambiar_secreto_comentario_adjunto
Attachmentslistar_adjuntos, ver_adjunto, crear_adjunto, editar_adjunto, eliminar_adjunto, mover_adjuntos
Folderslistar_carpetas, crear_carpeta, editar_carpeta, eliminar_carpeta
Calendarver_calendario_proyecto, ver_disponibilidad
Meetingslistar_reuniones, ver_reunion, crear_reunion, editar_reunion, cancelar_reunion
Recordingslistar_grabaciones, ver_grabacion, leer_transcripcion_grabacion, buscar_en_grabaciones, mover_grabacion, ver_fotograma_grabacion, crear_recorte_grabacion, ver_recorte_grabacion, editar_grabacion, eliminar_grabacion, editar_transcripcion_grabacion, reintentar_procesamiento_grabacion, eliminar_recorte_grabacion, crear_tarea_desde_propuesta_grabacion
Memberslistar_miembros_proyecto (read-only)
GitHubvincular_repo_github, desvincular_repo_github, listar_commits_repo, ver_commit_repo, crear_repo_github, ver_propietarios_github
Resourceslistar_recursos_proyecto (solo lectura: vincular y desvincular se hacen desde el proyecto)
Logsver_logs_proyecto
Trashlistar_papelera, ver_papelera, restaurar_papelera, listar_proyectos_eliminados
Cloud – Cataloglistar_planes_vps, ver_opciones_vps, listar_empresas, ver_funciones_por_sistema
Cloud – Logs & networkver_logs_nginx_vps, ver_logs_systemd_vps, ver_logs_tarea_vps, ver_estado_red_vps
Cloud – GitHub deploy logslistar_commits_repo_github_vps, ver_commit_repo_github_vps, listar_logs_repo_github_vps, ver_log_repo_github_vps
Cloud – VPSlistar_vps, listar_todos_los_vps, crear_vps, ver_vps, editar_vps, ver_estado_vps, ver_funciones_vps, controlar_vps, cambiar_plan_vps, ejecutar_comando_vps, ver_historial_comandos_vps, leer_archivo_vps, guardar_archivo_vps, redeploy_repo_github
Cloud – Domains & port forwardsverificar_dominio_vps, crear_dominio_vps, activar_dominio_vps, listar_dominios_vps, eliminar_dominio_vps, ver_nginx_dominio_vps, editar_nginx_dominio_vps, listar_redirecciones_vps, crear_redireccion_vps, eliminar_redireccion_vps, ver_politica_ip_puertos_vps, cambiar_politica_ip_puertos_vps
Cloud – Databaseslistar_motores_db_vps, probar_conexion_db_vps, guardar_credencial_db_vps, listar_bases_db_vps, listar_tablas_db_vps, describir_tabla_db_vps, leer_filas_db_vps, contar_filas_db_vps, consultar_sql_db_vps, explicar_sql_db_vps, insertar_fila_db_vps, actualizar_fila_db_vps, borrar_fila_db_vps, ejecutar_ddl_db_vps, historial_operaciones_db_vps
Cloud – Backupslistar_backups_vps, ver_backup_vps, crear_backup_vps, crear_descarga_backup_vps, ver_estado_descarga_backup_vps, configurar_backups_vps (no expone borrar una copia)
Cloud – Linux userslistar_usuarios_vps, crear_usuario_vps, ver_usuario_vps, editar_usuario_vps, eliminar_usuario_vps
Cloud – Systemd serviceslistar_servicios_vps, crear_servicio_vps, ver_servicio_vps, editar_servicio_vps, eliminar_servicio_vps, controlar_servicio_vps
Cloud – Scheduled taskslistar_tareas_vps, crear_tarea_vps, ver_tarea_vps, editar_tarea_vps, eliminar_tarea_vps, controlar_tarea_vps
Cloud – GitHub deploylistar_repos_github_vps, vincular_repo_github_vps, ver_repo_github_vps, editar_repo_github_vps, eliminar_repo_github_vps, crear_repo_github_vps
Cloud – SSH tunnel receiverconfigurar_receptor_tunel_vps, eliminar_receptor_tunel_vps, ver_estado_receptor_tunel_vps, listar_claves_receptor_tunel_vps, agregar_clave_receptor_tunel_vps, eliminar_clave_receptor_tunel_vps
Cloud – Appslistar_apps_empresa, ver_app, ver_catalogo_apps, ver_preflight_app, ver_operacion_app, ver_acceso_app, instalar_app, reintentar_operacion_app, refrescar_apps, controlar_app, cambiar_lista_ip_app, revelar_credencial_app, revocar_acceso_app, desinstalar_app, ver_asistente_git_app, ver_config_deploy_app, guardar_config_deploy_app
Cloud – SSH tunnel initiatorconfigurar_iniciador_tunel_vps, eliminar_iniciador_tunel_vps, ver_estado_iniciador_tunel_vps, listar_tuneles_vps, crear_tunel_vps, ver_tunel_vps, eliminar_tunel_vps, controlar_tunel_vps
WordPresslistar_sitios_wordpress, ver_sitio_wordpress, leer_logs_wordpress, ver_web_wordpress, probar_web_wordpress, editar_contenido_wordpress, editar_menus_wordpress, editar_medios_wordpress, configurar_sitio_wordpress, controlar_extensiones_wordpress, editar_usuarios_wordpress, editar_seo_wordpress, editar_elementor_wordpress, editar_diseno_elementor_wordpress, editar_tienda_wordpress, ver_reportes_tienda_wordpress, editar_archivos_wordpress, ejecutar_wp_cli_wordpress, consultar_base_wordpress, controlar_cron_wordpress, controlar_cache_wordpress, configurar_correo_wordpress, editar_integraciones_wordpress, crear_backup_wordpress, listar_backups_wordpress, eliminar_backup_wordpress, restaurar_backup_wordpress, crear_staging_wordpress, cambiar_direccion_wordpress

What it can never do

Before you choose a scope

Some tools return text written by people who are not the user who authorized the agent: email bodies and subjects, task and attachment comments, nginx/systemd/deploy logs, commit messages, and the output of shell commands. Those responses come wrapped and labelled as untrusted so the model treats them as data, not as instructions. That marking lowers the odds; it is not a security boundary.

The boundary is the scope you grant. These combinations are riskier than either half on its own — worth knowing before you approve one:

Reading email + running shell commandsAnyone who knows one of your mailbox addresses can put text in front of your agent. If that same agent can also open a shell on a VPS, a well-written email is a remote-code-execution attempt that costs the attacker nothing and needs no account on ArduMaker. Neither half is dangerous on its own. Give an agent that answers email a scope without VPS access, and an agent that operates servers a scope without mailboxes.
Reading email + sending email from the same domainAn incoming message can talk the agent into replying to a third party from your domain — phishing your own customers, with your DKIM signature on it. Read-only scope is enough for triage and summaries. Grant sending only to agents whose whole job is to send.
Reading email or comments + querying databasesUntrusted text plus arbitrary SQL is a data-exfiltration path: the agent runs the query it was talked into and puts the answer somewhere the attacker can read. Keep database access on agents that never read third-party content.

Permissions and expiration

Each connection is tied to a specific user and client — a single user can have several agents connected at the same time.

The user can see their connected agents — with last activity and absolute expiry — and revoke any of them, or all at once, from their ArduMaker account. Revoking kills the refresh chain too, so a revoked agent cannot renew its way back in.