Appearance
Command line and MCP
Sign in with erp login (or set ERP_TOKEN). Everything below uses your own permissions.
Coverage: what you can do without the browser
| Area | Command line (erp) | MCP tool |
|---|---|---|
| Plugin lifecycle: create, validate, snapshot, restore, bump version, build, publish, install | erp plugin create / validate / build / publish / install, erp plugin op <name> | erp_plugin_op, erp_plugin_scaffold |
| Backend and frontend source code: Java, Python, Node.js, React (list, read, write) | erp source files / read / write | erp_plugin_op (source-*) |
| Java and Node build, test, package | erp plugin op java-compile / java-test / java-package / node-run | erp_plugin_op |
| Full-code frontend starters in Vue, React or plain TypeScript (Web Components) | platform-cli frontend-plugin:scaffold --id <id> --framework vue|react|vanilla --out <dir> | erp_frontend_plugin_scaffold |
Service starters in Python (FastAPI), Node.js (Express) and Go (net/http) | platform-cli service-plugin:scaffold --id <id> --runtime python|nodejs|go --out <dir> | erp_service_plugin_scaffold |
| Backend service: deploy, start, stop, restart, size, logs, versions, rollback | erp plugin op service-* | erp_plugin_op |
| Customize an installed plugin: extend, copy, overrides, extension points | erp plugin op extend-installed / copy-installed / override-* / extension-points | erp_plugin_op |
| Marketplace | erp registry list / mine / get / publish / install | not yet |
| Workflows: validate, test, live instances, tasks, history | erp workflow ... | not yet |
| Connectors | erp connector validate / create / list / test | erp_validate_connector_definition |
| Pages and blocks: validate, catalog | erp plugin validate, erp blocks list, erp page check | erp_validate_page, erp_validate_plugin_pages, erp_list_blocks |
| Schemas, examples, docs, platform catalog | erp schema, erp examples, erp docs search, erp platform catalog / describe | erp_get_schema, erp_list_schemas, erp_search_examples, erp_examples_patterns, erp_search_docs, erp_platform_catalog, erp_platform_describe |
| Expressions | erp expression test "<expr>" | not yet |
| Logs | erp logs tail | erp_tail_logs |
| Every designer artifact (pages, forms, dashboards, themes, workspaces, reports, print templates, menus, mobile navs, providers, data services, data views, blocks, test cases): list, get, create, update, publish, history, delete | erp artifact list / get / create / update / publish / history / delete --type <type> | erp_plugin_op (artifact-*) |
| Entities and rules | erp plugin op entity-list / entity-get / rule-list / rule-create / rule-delete | erp_plugin_op |
| Anything else (roles, users, jobs, ...) | erp api get / post / put / delete <path> | not yet a first-class tool |
Honest summary. The whole plugin lifecycle, service control, customization, publishing, source code in every language, every designer artifact, entities and rules, schemas, validation and documentation are first-class in both the CLI and MCP. Roles, users, jobs and other tenant settings are reachable from the CLI through erp api and their REST paths but do not yet have named commands, and MCP has no generic API tool. Named commands for those are Planned.
Examples
bash
erp plugin op # list every operation
erp plugin op java-compile --plugin-id leave-manager
erp plugin op service-deploy --plugin-id leave-manager
erp plugin op service-set-config --plugin-id leave-manager --cpus 2 --memory 1g
erp plugin op service-logs --plugin-id leave-manager --tail 100
erp plugin op extend-installed --plugin-id hcm-core --newPluginId acme-hcm --newName "Acme HCM"
erp plugin op overrides
erp plugin op extension-points
# any designer artifact, by type
erp artifact list --type forms --latestOnly true
erp artifact create --type dashboards --name leave-dashboard --file ./leave-dashboard.json
erp artifact publish --type dashboards --id 12
# source code in the plugin, any language
erp source write --plugin-id leave-management --path service/app/main.py --file ./main.py
# any other feature, through its REST path
erp api post /api/v1/entities/lm_leave_type/records --body '{"type_code":"STUDY","type_name":"Study leave"}'
erp api get "/api/v1/entities/lm_leave_type/records?page=0&size=20"Package from a folder with node tools/spark-cli/spark.js package <dir> -o out.spk (--no-source keeps source out of the package). Upgrade past an extension check with --force-upgrade.
MCP
The MCP server exposes erp_plugin_op for every plugin operation, for example {"op":"service-restart","pluginId":"leave-manager"}, and the validation and documentation tools above. Install it into your editor with erp mcp install.
See also the end-to-end guide.
