MCP Parse Server
MCP Parse Server lets you read, write, and administer a Parse Server backend through MCP tools.
Read data: get objects by ID, query with filters/order/pagination/include/keys, count objects, and run MongoDB aggregation pipelines.
Write data: create, update, delete, batch operations, atomically increment numeric fields, and add/remove array values.
Manage schemas: list/get schemas, create/delete classes, add/delete fields, and update schemas/CLP.
Manage security: create/get/list/update/delete roles, add/remove users from roles, update class-level permissions, and create/get/list users.
Run Cloud Code: call Cloud Functions, run background jobs, and list available Cloud Functions/jobs.
Manage relations: add/remove related objects and query Relation fields with filters/order/pagination.
Some schema, role, aggregation, job, and admin operations require
PARSE_MASTER_KEY.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Parse Server Query all products with price greater than 50"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Parse Server
⚠️ Este repo usa pnpm desde el 2026-10-20. Si ya lo tenías instalado con npm, después de bajar el cambio corre una vez
bash scripts/pnpm-setup.shpara reinstalar las dependencias (detalles en «Cambio de npm a pnpm», al final).
Servidor MCP (Model Context Protocol) completo para Parse Server con funcionalidades de CRUD, gestión de schemas, roles, ACL y Cloud Functions.
🚀 Características
📖 Lectura de Datos
parse_get_object- Obtener objeto por IDparse_query- Consultar con filtros, ordenamiento y paginaciónparse_count- Contar objetos con filtrosparse_aggregate- Queries de agregación (MongoDB pipeline)
✍️ Escritura de Datos
parse_create_object- Crear nuevos objetosparse_update_object- Actualizar objetos existentesparse_delete_object- Eliminar objetosparse_batch- Operaciones batch (múltiples operaciones)parse_increment_field- Incrementar campos numéricosparse_add_to_array- Añadir elementos a arraysparse_remove_from_array- Remover elementos de arrays
🗂️ Gestión de Schemas
parse_get_schemas- Listar todos los schemasparse_get_schema- Obtener schema de una claseparse_create_class- Crear nueva clase con schemaparse_update_schema- Actualizar schema de claseparse_delete_class- Eliminar claseparse_add_field- Añadir campo a claseparse_delete_field- Eliminar campo de clase
🔐 Seguridad (Roles, Users, ACL)
parse_create_role- Crear rolparse_get_role- Obtener rolparse_list_roles- Listar rolesparse_update_role- Actualizar rolparse_delete_role- Eliminar rolparse_add_users_to_role- Añadir usuarios a rolparse_remove_users_from_role- Remover usuarios de rolparse_update_clp- Actualizar Class Level Permissionsparse_create_user- Crear usuarioparse_get_user- Obtener usuarioparse_list_users- Listar usuarios
☁️ Cloud Functions
parse_call_cloud_function- Llamar Cloud Functionparse_run_job- Ejecutar Background Jobparse_get_cloud_code_info- Información de Cloud Code
Related MCP server: PocketBase MCP Server
📦 Instalación
Requiere pnpm 11 (corepack enable); npm install queda bloqueado por el preinstall.
pnpm install --frozen-lockfile⚙️ Configuración
Crea un archivo .env en la raíz del proyecto:
PARSE_URL=https://tu-parse-server.com/parse
PARSE_APP_ID=tu-app-id
PARSE_REST_KEY=tu-rest-key
PARSE_MASTER_KEY=tu-master-key
# Opcional: Permite certificados autofirmados (solo desarrollo)
ALLOW_SELF_SIGNED_CERT=true
# O alternativamente:
# NODE_TLS_REJECT_UNAUTHORIZED=0Notas importantes:
PARSE_MASTER_KEYes opcional pero necesario para operaciones de schema, roles y algunas operaciones administrativas.ALLOW_SELF_SIGNED_CERT=truepermite certificados SSL autofirmados. ⚠️ Solo usar en desarrollo local, nunca en producción.
🏃 Uso
Iniciar el servidor
pnpm startModo desarrollo (con watch)
pnpm dev📁 Estructura del Proyecto
mcp-parse-server/
├── index.mjs # Punto de entrada principal
├── src/
│ ├── utils/
│ │ ├── config.js # Configuración y variables de entorno
│ │ └── parse-client.js # Cliente HTTP para Parse REST API
│ └── tools/
│ ├── read.js # Herramientas de lectura
│ ├── write.js # Herramientas de escritura
│ ├── schema.js # Herramientas de schema
│ ├── security.js # Herramientas de roles y ACL
│ └── cloud.js # Herramientas de Cloud Functions
├── package.json
├── .env
└── README.md🔧 Configuración en Claude Desktop / VS Code
Añade esta configuración a tu archivo de configuración MCP:
Para Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"parse-server": {
"command": "node",
"args": ["/ruta/absoluta/a/mcp-parse-server/index.mjs"],
"env": {
"PARSE_URL": "https://tu-parse-server.com/parse",
"PARSE_APP_ID": "tu-app-id",
"PARSE_REST_KEY": "tu-rest-key",
"PARSE_MASTER_KEY": "tu-master-key",
"ALLOW_SELF_SIGNED_CERT": "true"
}
}
}
}Para VS Code:
Configura en tu settings.json del workspace o global.
📚 Ejemplos de Uso
Crear una clase con schema
{
"className": "Product",
"fields": {
"name": {
"type": "String",
"required": true
},
"price": {
"type": "Number",
"required": true
},
"category": {
"type": "Pointer",
"targetClass": "Category"
},
"tags": {
"type": "Array"
}
}
}Query con filtros
{
"className": "Product",
"where": {
"price": { "$gte": 10, "$lte": 100 },
"category": {
"__type": "Pointer",
"className": "Category",
"objectId": "abc123"
}
},
"order": "-createdAt",
"limit": 20,
"include": "category"
}Crear rol con usuarios
{
"name": "Moderator",
"users": ["userId1", "userId2"],
"ACL": {
"*": { "read": true },
"role:Admin": { "write": true }
}
}Actualizar CLP
{
"className": "Product",
"permissions": {
"get": { "*": true },
"find": { "*": true },
"create": { "requiresAuthentication": true },
"update": { "role:Admin": true },
"delete": { "role:Admin": true }
}
}🛡️ Permisos
Algunas operaciones requieren la Master Key:
Operaciones de schema (crear/modificar/eliminar clases)
Gestión de roles
Operaciones administrativas
Background Jobs
Queries de agregación
Asegúrate de configurar PARSE_MASTER_KEY en tu .env para estas operaciones.
📝 Licencia
MIT
🤝 Contribuciones
Las contribuciones son bienvenidas. Por favor abre un issue o pull request.
Cambio de npm a pnpm (una sola vez, después de bajar el cambio)
Este repo usa pnpm (packageManager en package.json). Si ya tenías el repo instalado con npm, corre una vez:
bash scripts/pnpm-setup.sh # o: npm run setup:pnpm (--dry-run para ver qué hará)Instala pnpm de la versión del repo (con Volta o Corepack; usa Node 22 si tu Node es menor a 22.13), borra los
node_modules que armó npm en las partes que ahora son pnpm y reinstala con pnpm install --frozen-lockfile.
Las carpetas que siguen con npm (las que se instalan en servidores, con package-lock.json) no se tocan.
Después: pnpm install y pnpm run <script>; npm install queda bloqueado. Un worktree nuevo sólo necesita pnpm install
(pnpm reutiliza su store global, no vuelve a descargar paquetes).
Available Tools
35 toolsparse_add_fieldB
Añade un nuevo campo a una clase existente. Especifica fieldName, fieldType (String, Number, Boolean, Date, Pointer, etc), y opcionalmente targetClass, required, defaultValue. Requiere master key.
Inputs: inputSchema (required).
parse_add_relationA
Agrega uno o más objetos a un campo de tipo Relation en Parse Server. Las relaciones permiten crear vínculos muchos-a-muchos entre objetos. Proporciona className, objectId del objeto que contiene la relación, el nombre del campo de relación y un array de objectIds de los objetos a agregar.
Inputs: inputSchema (required).
parse_add_to_arrayC
Añade elementos a un campo array de forma atómica. Si unique=true, usa AddUnique para evitar duplicados. Solo acepta valores primitivos (string, number, boolean, null).
Inputs: inputSchema (required).
parse_add_users_to_roleA
Añade uno o más usuarios a un rol existente mediante sus objectIds. Los usuarios heredarán los permisos del rol. Requiere master key.
Inputs: inputSchema (required).
parse_aggregateA
Ejecuta queries de agregación avanzados usando pipeline de MongoDB (match, group, sort, project, etc). Requiere master key. Útil para estadísticas, agrupaciones y cálculos complejos.
Inputs: inputSchema (required).
parse_batchA
Ejecuta múltiples operaciones (POST/crear, PUT/actualizar, DELETE/eliminar) en una sola llamada. Útil para operaciones masivas. Cada request tiene method, path y body opcional.
Inputs: inputSchema (required).
parse_call_cloud_functionC
Ejecuta una Cloud Function definida en Parse Server. Proporciona functionName y opcionalmente params como objeto JSON. Retorna el resultado de la función.
Inputs: inputSchema (required).
parse_countB
Cuenta el número total de objetos en una clase de Parse Server. Opcionalmente acepta filtros where para contar solo objetos que cumplan ciertos criterios.
Inputs: inputSchema (required).
parse_create_classA
Crea una nueva clase (tabla) en Parse Server con su estructura de campos. Define className, fields (nombre: {type, targetClass, required, defaultValue}) y opcionalmente classLevelPermissions. Requiere master key.
Inputs: inputSchema (required).
parse_create_objectA
Crea un nuevo objeto (registro) en una clase de Parse Server. Proporciona className y un objeto data con los campos y valores. Retorna el objectId del objeto creado.
Inputs: inputSchema (required).
parse_create_roleA
Crea un nuevo rol en Parse Server para control de acceso. El campo ACL es OBLIGATORIO y debe ser un objeto que defina los permisos de lectura y escritura para usuarios, roles o público. Ejemplo de input: { "name": "Administrador", "ACL": { "*": { "read": true }, "role:Admin": { "read": true, "write": true } } }. Opcionalmente puedes agregar arrays de userIds y roleIds. Requiere master key.
Inputs: inputSchema (required).
parse_create_userA
Crea un nuevo usuario en Parse Server. Requiere username y password obligatorios. Opcionalmente email y campos adicionales (additionalFields). Retorna sessionToken para autenticación.
Inputs: inputSchema (required).
parse_delete_classA
Elimina permanentemente una clase y TODOS sus objetos de Parse Server. Esta operación es irreversible. Requiere master key.
Inputs: inputSchema (required).
parse_delete_fieldA
Elimina permanentemente un campo de una clase. Los datos de ese campo en todos los objetos se perderán. Requiere master key.
Inputs: inputSchema (required).
parse_delete_objectA
Elimina permanentemente un objeto de Parse Server. Requiere className y objectId del objeto a eliminar.
Inputs: inputSchema (required).
parse_delete_roleA
Elimina permanentemente un rol de Parse Server. Los usuarios que tenían este rol perderán sus permisos asociados. Requiere master key.
Inputs: inputSchema (required).
parse_get_cloud_code_infoA
Lista todas las Cloud Functions y Background Jobs disponibles en Parse Server. Útil para descubrir qué funciones puedes llamar. Requiere master key.
Inputs: inputSchema (required).
parse_get_objectA
Obtiene un objeto específico de Parse Server por su className y objectId. Útil para recuperar un registro individual cuando conoces su ID.
Inputs: inputSchema (required).
parse_get_roleA
Obtiene los detalles de un rol específico por su objectId: nombre, ACL, y relaciones con usuarios. Requiere master key.
Inputs: inputSchema (required).
parse_get_schemaA
Obtiene el schema completo de una clase específica: sus campos, tipos de datos, relaciones y permisos (CLP). Requiere master key.
Inputs: inputSchema (required).
parse_get_schemasA
Lista todos los schemas (estructuras de clases) disponibles en Parse Server. Muestra nombres de clases, campos, tipos y permisos. Requiere master key.
Inputs: inputSchema (required).
parse_get_userA
Obtiene los detalles de un usuario específico por su objectId. Muestra username, email y campos personalizados (pero no password). Requiere master key.
Inputs: inputSchema (required).
parse_increment_fieldA
Incrementa (o decrementa con valor negativo) un campo numérico de forma atómica. Útil para contadores, puntuaciones, etc. El amount por defecto es 1.
Inputs: inputSchema (required).
parse_list_rolesA
Lista todos los roles en Parse Server. Opcionalmente filtra con where (ej: {"name": "Admin"}) y limita resultados. Requiere master key.
Inputs: inputSchema (required).
parse_list_usersA
Lista todos los usuarios en Parse Server. Opcionalmente filtra con where (ej: {"username": "admin"}) y limita resultados. Requiere master key.
Inputs: inputSchema (required).
parse_queryA
Consulta múltiples objetos de una clase en Parse Server. Soporta filtros con where (JSON), ordenamiento, paginación (limit/skip), selección de campos (keys) e inclusión de relaciones (include). El where usa sintaxis de Parse Query: {"field": "value"} para igualdad, {"field": {"$gt": 10}} para comparaciones, etc.
Inputs: inputSchema (required).
parse_query_relationA
Consulta y obtiene los objetos relacionados en un campo de tipo Relation. Soporta filtros, ordenamiento y paginación para explorar las relaciones existentes.
Inputs: inputSchema (required).
parse_remove_from_arrayB
Elimina elementos específicos de un campo array de forma atómica. Solo acepta valores primitivos (string, number, boolean, null).
Inputs: inputSchema (required).
parse_remove_relationA
Remueve uno o más objetos de un campo de tipo Relation en Parse Server. Proporciona className, objectId del objeto que contiene la relación, el nombre del campo de relación y un array de objectIds de los objetos a remover.
Inputs: inputSchema (required).
parse_remove_users_from_roleA
Remueve uno o más usuarios de un rol mediante sus objectIds. Los usuarios perderán los permisos asociados a ese rol. Requiere master key.
Inputs: inputSchema (required).
parse_run_jobA
Ejecuta un Background Job (tarea programada) definido en Parse Server. Útil para tareas pesadas, limpiezas, reportes, etc. Requiere master key.
Inputs: inputSchema (required).
parse_update_clpA
Define permisos a nivel de clase (quién puede get, find, create, update, delete, addField). Usa "*" para público, "requiresAuthentication" para usuarios autenticados, o "role:RoleName" para roles específicos. Requiere master key.
Inputs: inputSchema (required).
parse_update_objectB
Actualiza campos de un objeto existente en Parse Server. Requiere className, objectId y un objeto data con los campos a modificar. Solo actualiza los campos especificados.
Inputs: inputSchema (required).
parse_update_roleA
Modifica el nombre o ACL de un rol existente. Para gestionar usuarios del rol usa parse_add_users_to_role o parse_remove_users_from_role. Requiere master key.
Inputs: inputSchema (required).
parse_update_schemaA
Modifica el schema de una clase existente: añade nuevos campos o actualiza Class Level Permissions (CLP). No puede eliminar campos (usa parse_delete_field). Requiere master key.
Inputs: inputSchema (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 35 tools
Each tool targets a distinct resource and action, with clear separation between object, schema, role, user, and relation operations. Even similar deletes (field, class, object) are unambiguous due to explicit resource naming.
All tools follow a consistent parse_<verb>_<resource> pattern, using clear verbs like create, get, update, delete, list, add, remove, and query. Minor variations like get vs list are contextually appropriate (singular vs plural).
35 tools is above typical ranges, but the server covers the broad domain of Parse Server management including objects, schemas, roles, users, relations, and cloud code. Each tool serves a distinct purpose, making the large count justified for the scope.
Object, schema, role, and relation operations have comprehensive CRUD coverage, but user management is incomplete: users can be created, fetched, and listed, yet there are no update_user or delete_user tools. This leaves a notable lifecycle gap.
Maintenance
Related MCP Connectors
Model Context Protocol server for Studex tools, notifications, and profile integrations
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Model Context Protocol server for todo.vu task management and time tracking.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Parse Platform databases, users, files, and more through the Model Context Protocol.397 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables advanced PocketBase database operations including schema management, CRUD record handling, user authentication, and database backups through the Model Context Protocol.22 npmISC
- AlicenseNot gradedqualityAmaintenanceEnables advanced database operations, schema and collection management, record CRUD, user authentication, and backups through the Model Context Protocol.22 npmISC
- AlicenseNot gradedqualityAmaintenanceEnables advanced database operations, schema management, record CRUD, user authentication, and backups through the Model Context Protocol.22 npmISC