Skip MCP — Project & Cloud Management
Overview
The Skip MCP server (mcp_skip_*) provides 39 tools to manage Skip Cloud projects end-to-end: discover projects, edit source files, run migrations, write server hooks, declare AI agents, inspect the database, configure email/OAuth/SMTP, manage secrets and env vars, view logs, and publish to production. Six built-in reference guides provide the canonical documentation for migrations, hooks, AI/agents, SDK, emails, and frontend patterns.
Architecture
Skip Cloud = embedded SQLite + PocketBase v0.36 + server hooks (goja JS VM) + hosted AI micro-agents. Every project has a frontend (React/Vite/Tailwind) and a backend (PocketBase). Schema changes go through migrations; runtime behavior goes through hooks. AI calls go through the $ai gateway (hook-only).
Tool Categories (39 tools)
1. Project Discovery & Lifecycle
skip_org_list— list orgs with MCP access (id, name, slug)skip_project_list— list projects in an org (paginated); passqueryfor full-text search by name/slug/uid/description; passorgIdif multiple orgsskip_project_get— single project details (preview/production URLs, publish status, routes)skip_project_status— working-tree state: changed files, current version, deployed build infoskip_project_apply_changes— commit + run QA pipeline (setup → static check → build → test → commit). The single finalize step after file edits.skip_project_publish— production build + deploy to public URL
2. File Operations
skip_file_list— list file paths in project working treeskip_file_read— read a single text file's contentsskip_file_write— create or overwrite a file (upsert). Edits working tree only — runskip_project_apply_changesafter.skip_file_delete— remove a file from working tree. Runskip_project_apply_changesafter.
3. Environment Variables
skip_env_list— list env var keys (values never returned)skip_env_set— create or overwrite env vars (upsert). Changes take effect on next build/deploy.skip_env_delete— remove env vars by name
4. Database — Collections & Migrations
skip_cloud_get_collections— list collections (id, name, type: base/auth/view)skip_cloud_get_collection_details— full definition: fields, access rules, indexesskip_cloud_list_migrations— migration list (id, version, name, status: applied/pending/failed)skip_cloud_rollback_migration— roll back to a target version (destructive)
5. AI Agents
skip_cloud_list_agents— list hosted agents (slug, name, tier, description)skip_cloud_describe_agent— full agent state: system prompt, tools, memory sources, conversation count
6. Secrets
skip_cloud_list_secrets— list secret keys (never values)skip_cloud_set_secret— create or update a secret (uppercase, starts with letter)skip_cloud_delete_secret— delete a secret by key
7. Email & SMTP
skip_cloud_get_email_templates— read 4 templates (verification, passwordReset, confirmEmailChange, otp)skip_cloud_update_email_templates— create or update templates (subject + body HTML)skip_cloud_get_smtp_config— read SMTP config (custom vs shared relay, sender identity)skip_cloud_configure_smtp— update SMTP config (custom server or shared relay)
8. OAuth Providers
skip_cloud_list_oauth_providers— list all 8 provider slots (google, microsoft, facebook, github, slack, custom1-3)skip_cloud_configure_oauth_provider— create/update a provider (clientId, clientSecret, scopes, OIDC endpoints for custom)skip_cloud_disable_oauth_provider— deactivate a provider (frees OIDC slot)
9. Backend URL & Logs
skip_cloud_get_backend_url— PocketBase backend URL (distinct from frontend URL; exposed as VITE_POCKETBASE_URL)skip_cloud_list_logs— runtime logs (HTTP, hooks, emails), paginated, filterable by source/level
10. Reference Guides (6 guides)
skip_cloud_migrations_guide— collections, fields, RLS, indexes, relations, seeding, vectors, agents in migrationsskip_cloud_hooks_guide— event/route hooks, $app/$http/$filesystem/$vectors/$response, streaming, secrets, npm depsskip_cloud_ai_guide— $ai.chat, $ai.embed, $ai.agent(slug), streaming, frontend parsing, identity rulesskip_cloud_agents_guide— $ai.agents.define/delete/putMemories/deleteMemories/putTools/deleteToolsskip_cloud_sdk_guide— PocketBase JS SDK, auth, CRUD, real-time, pb.send, error handlingskip_cloud_emails_guide— templates, placeholders, HTML policy, SMTP delivery, frontend triggers
Core Workflows
Edit & Deploy a Project
skip_project_list→ find project IDskip_file_read/skip_file_list→ inspect current codeskip_file_write/skip_file_delete→ make changesskip_project_status→ review pending changesskip_project_apply_changes→ commit + QA pipelineskip_project_publish→ deploy to production (optional)
Create a Migration
skip_cloud_list_migrations→ find next free 4-digit ordinalskip_cloud_get_collections/skip_cloud_get_collection_details→ inspect existing schema- Write migration file via
skip_file_writetopocketbase/migrations/NNNN_name.js skip_project_apply_changes→ applies migration automatically- Check
skip_cloud_list_migrationsfor status (applied/failed)
Write a Hook
skip_cloud_get_collections→ understand schema the hook will touch- Write hook file via
skip_file_writetopocketbase/hooks/hook_name.js skip_project_apply_changes→ deploys hookskip_cloud_list_logs→ debug if needed
Declare an AI Agent
- Write a migration with
$ai.agents.define(app, {...})— seereferences/agents-reference.md skip_project_apply_changes→ applies migrationskip_cloud_list_agents/skip_cloud_describe_agent→ verify- Call from a hook via
$ai.agent(slug).chat(...)— seereferences/ai-reference.md
Configure Email/OAuth/SMTP
- Read current state (get templates / get SMTP config / list OAuth providers)
- Read the relevant guide first (
skip_cloud_emails_guide) - Apply changes (update templates / configure SMTP / configure OAuth provider)
Critical Rules
- Always read the relevant guide before writing migrations/hooks/agent code. Guides are the canonical reference.
- Migrations ≠ hooks. Migrations change schema (goja, no $http/$ai). Hooks change runtime behavior ($app, $http, $ai, $filesystem all available).
- $ai. is hook-only.* Never call $ai.chat or $ai.agent inside a migration — raises SkipAiNotInMigrationError.
- One route/hook per file. Hooks execute in a separate VM pool — top-level declarations are NOT accessible inside callbacks. All logic must be inline.
- Routes use
/backend/v1/prefix. Never register under/api/(reserved by PocketBase). - base collections MUST have
created+updatedautodate fields. Without them, sort/filter/SDK queries fail with HTTP 400. - VITE_POCKETBASE_URL is managed by Skip. Set it once via
skip_env_setif missing; cannot be overwritten once it exists. - Secrets never hard-coded. Use
$secrets.get('KEY')in hooks/migrations. Manage viaskip_cloud_set_secret. - apply_changes is the finalize step. File writes/deletes only edit the working tree. Always run
skip_project_apply_changesto commit and build. - Migration ordinals never reused. Check
skip_cloud_list_migrationsfor the next free number. Schema migrations before seed migrations.
Additional Resources
Reference Files
references/migrations-reference.md— Full migration reference: field types, RLS rules, indexes, relations, seeding, vectors, agents in migrations, checklistreferences/hooks-reference.md— Full hooks reference: event types, custom routes, $app/$http/$filesystem/$vectors/$response, streaming, secrets, npm deps, checklistreferences/ai-reference.md— Full $ai gateway reference: $ai.chat, $ai.embed, $ai.agent, streaming, frontend parsing, identity rules, error typesreferences/agents-reference.md— Full agents reference: $ai.agents.define, field rules, tool execution modes, memory sources, incremental editsreferences/sdk-reference.md— Full frontend SDK reference: PocketBase client, CRUD, auth, real-time, pb.send, error handlingreferences/tool-catalog.md— Complete catalog of all 39 MCP tools with parameter schemas
Guides (read on-demand via MCP tools)
The six guides are available as MCP tools that return full documentation text. Read them before complex operations:
skip_cloud_migrations_guide— before writing any migrationskip_cloud_hooks_guide— before writing any hookskip_cloud_ai_guide— before any $ai.chat / $ai.embed / $ai.agent usageskip_cloud_agents_guide— before declaring or editing an agentskip_cloud_sdk_guide— before writing frontend data-access codeskip_cloud_emails_guide— before editing templates or SMTP config
Guides support partial reading: head (first N lines), tail (last N lines), start/end (line range), regexSearch (matching lines with context). Pass at most one mode.