MCP skills library for your AI agents

Catalog of ready-made tools and instructions to extend AI capabilities in Cursor, Claude Code, and VS Code. Set up your agent for uCoz in minutes.

Open catalog

What is MCP for uCoz

MCP (Model Context Protocol) for uCoz is a tool server that connects to your AI assistant and gives it direct access to your site. In plain-language requests you can edit templates, manage menus and global blocks, create mail forms and pages, install modules, work with FTP files, and manage security settings (FTP password, quarantine).

You need Node.js 18+ installed β€” the server runs via npx ucoz-mcp@latest.

MCP Features

⚑ Much faster

Update website templates in minutes - without manual editing in the control panel.

πŸ›‘οΈ Built-in backup

Automatic backup before each save and quick rollback to the previous version.

βœ… Code Validation

Checking the HTML code of the template before saving without the risk of breaking the display of the site.

πŸ“ Uploading files via FTP

Upload CSS, JS and images from a local project or directly from agent chat.

πŸ—‚οΈ Menu via API

Create and update menus via AI - horizontal and vertical, with nesting.

πŸ“¬ Mail forms

Create feedback forms with the required fields and a letter template directly from the chat.

πŸ“„ Site pages

Create and edit pages from chat β€” with a custom design or the site's overall style.

πŸ“¦ Modules and quarantine

Enable the modules you need and manage site settings without the control panel.

πŸ”‘ FTP password via API

Create and change your FTP password through AI β€” no manual control panel login required.

🧩 Any MCP client

Support for Cursor, Codex, Antigravity and any other stdio-compatible MCP clients.

Before you start

1

Install Node.js

MCP runs through npx, so Node.js must be installed.

  • Install Node.js version 18+
  • Check installation: node -v
  • Check npx availability: npx -v
Download Node.js
2

Create a uAPI token

Create a personal access token to use the API.

  • Open your site control panel β†’ Site β†’ uAPI
  • Create a new token and save it
  • Use this token in MCP settings
  • For modules_tool and ftp_password_*, enable Control Panel settings access on the token
How to create a uAPI token
3

Set up FTP access

FTP credentials are required to manage site files through MCP.

  • Open the control panel β†’ FTP
  • Create an FTP password (if not already created)
  • Save the data: host, login and password
  • Password activation may take up to 15 minutes
How to connect via FTP

Connect by platform

Cursor
  1. Open Settings -> MCP -> Add new MCP server.
  2. Insert the following block into the config:
{
	"mcpServers": {
	"ucoz-mcp": {
		"command": "npx",
		"args": ["-y", "ucoz-mcp@latest"],
		"env": {
"UCOZ_API_TOKEN": "YOUR_UCOZ_API_TOKEN",
"UCOZ_SITE_URL": "https://your-site.ucoz.net/",
"UCOZ_FTP_HOST": "your-site.ucoz.net",
"UCOZ_FTP_USER": "your-ftp-login",
"UCOZ_FTP_PASS": "your-ftp-password"
		}
	}
	}
}

Save the file and restart the MCP server in the settings.

Codex
  1. Open Settings -> MCP -> Add new MCP server.
  2. Server type: STDIO.
  3. Command: npx.
  4. Arguments: -y, ucoz-mcp@latest.
  5. Add environment variables:
  • UCOZ_API_TOKEN - your uAPI token.
  • UCOZ_SITE_URL - site address.
  • UCOZ_FTP_HOST - FTP host.
  • UCOZ_FTP_USER - FTP login.
  • UCOZ_FTP_PASS - FTP password.

Save the settings and restart the MCP server.

Antigravity
  1. Open Agent Manager -> ... menu in the upper right corner.
  2. Select MCP Servers -> Manage MCP Servers -> View raw config.
  3. The mcp_config.json file will open. Add a block to it:
{
	"mcpServers": {
	"ucoz-mcp": {
		"command": "npx",
		"args": ["-y", "ucoz-mcp@latest"],
		"env": {
"UCOZ_API_TOKEN": "YOUR_UCOZ_API_TOKEN",
"UCOZ_SITE_URL": "https://your-site.ucoz.net/",
"UCOZ_FTP_HOST": "your-site.ucoz.net",
"UCOZ_FTP_USER": "your-ftp-login",
"UCOZ_FTP_PASS": "your-ftp-password"
		}
	}
	}
}

Save the file, click Refresh and make sure that the server appears and is turned on.

Claude Desktop

Add the same block to claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
{
	"mcpServers": {
	"ucoz-mcp": {
		"command": "npx",
		"args": ["-y", "ucoz-mcp@latest"],
		"env": {
"UCOZ_API_TOKEN": "YOUR_UCOZ_API_TOKEN",
"UCOZ_SITE_URL": "https://your-site.ucoz.net/",
"UCOZ_FTP_HOST": "your-site.ucoz.net",
"UCOZ_FTP_USER": "your-ftp-login",
"UCOZ_FTP_PASS": "your-ftp-password"
		}
	}
	}
}

MCP Tools

templates_tool is the main tool for templates, backups, global blocks, menus, mail forms, and site pages. A backup is created before save. Template output: $NMENU_<ID>$ (vertical menu), $SMENU_<ID>$ (horizontal), $MFORM_<ID>$ (mail form).
Action What it does Required parameters
list_modulesReturns a list of modules and template IDs.β€”
get_variablesShows variables for the selected module/template.module_id, template_id
read_templateReads the current template HTML (include_variables=true appends the variable list).module_id, template_id
patch_templatePartial fragment replace without rewriting the whole template (see block below).module_id, template_id, code_search, code_paste
update_templateFull template replace; backup is created automatically. Use only for new templates or complete rewrites.module_id, template_id, html_content
validate_templateValidates the template code without saving.module_id, template_id, content
list_backupsList of existing template backups.module_id, template_id
create_backupCreates a backup manually.module_id, template_id
delete_backupDeletes a backup by ID.backup_id
restore_backupRestores a template from a backup.backup_id
gblock_createCreates a global block.name, content
gblock_deleteDeletes a global block.block_id
menu_listList of all site menus.β€”
menu_createCreates a new menu (layout: 0 - horizontal, 1 - vertical).title, layout
menu_getReturns a menu with items.menu_id
menu_updateUpdates the title and/or menu type.menu_id
menu_deleteDeletes a menu.menu_id
menu_update_itemsReplaces the menu item tree (supports children).menu_id, items
mail_list_formsList of all mail forms.β€”
mail_get_formForm details.form_id
mail_create_formCreates a new form.name, email
mail_update_formUpdates name, recipients, success message.form_id
mail_delete_formDeletes a form.form_id
mail_list_fieldsList of form fields.form_id
mail_add_fieldAdds a field to the form.form_id, label, type
mail_update_fieldUpdates the field.form_id, field_id
mail_delete_fieldDeletes a field.form_id, field_id
mail_move_fieldChanges the field order.form_id, field_id, direction
mail_get_templateReads the HTML form mail template.form_id
mail_save_templateSaves the HTML email template.form_id, template_html
page_listLists site pages (pagination: page_page, page_per_page).β€”
page_getReturns a page by ID.page_id
page_addCreates a page. page_tmpl β€” personal template; page_message only β€” site global design.β€”
page_updateUpdates a page (only passed fields are changed).page_id
page_deleteDeletes a page (home page ID=1 cannot be deleted).page_id
get_referenceTemplate language variable reference.β€”
get_guideTemplate architecture guide.β€”
get_backup_guideGuide to working safely with backups.β€”
patch_template β€” partial template edits

Use for any change to existing code. A backup is created before save (same as update_template).

ParameterDescription
code_searchExact fragment to find β€” byte-exact match (spaces, tabs, line breaks). Copy from read_template; do not reformat. Must match exactly once.
code_pasteReplacement text. Empty string "" deletes the matched fragment. Cannot remove or hide $POWERED_BY$.

If the backup limit is reached, save is blocked β€” delete an old backup via delete_backup.

ftp_tool β€” site files over FTP and FTP password management via uAPI. ftp_password_* requires Control Panel settings access on the token.
Action What it does Required parameters
listShows files and folders at the specified path.path
readReads the contents of the file.path
writeWrites text content to a file.path, content
mkdirCreates a directory.path
deleteDeletes a file or folder.path
renameRenames or moves a file/folder.path, new_path
uploadUploads a local file to FTP.local_path, remote_path
ftp_password_getFTP connection settings without password.β€”
ftp_password_setSets password for the first time (when none is set).password
ftp_password_changeChanges existing password.password
ftp_password_resetResets password.β€”
modules_tool β€” module installation, uAPI access, quarantine. Most actions require Control Panel settings access; exception: active_mods.
Action What it does Required parameters
modules_listFull module catalog with active and api_enabled flags.β€”
module_statusStatus of one module.module_code
module_installInstalls a module.module_code
module_uninstallUninstalls a module (system modules are protected).module_code
active_modsSimplified list of active modules.β€”
module_enable_uapiEnables uAPI methods for a module.module_code
module_disable_uapiDisables uAPI methods for a module.module_code
quarantine_statusChecks quarantine (locked=true means quarantine is on).β€”
quarantine_unlockRemoves site quarantine.β€”

module_code examples: news, board, publ, blog, photo, video, faq, forum, shop, dir, load, gb, search, mchat, polls.

Typical scenarios

1. Creating a landing page on the main page

  1. read_template (module_id=2, template_id=1) -> read the current main template
  2. menu_list -> checking existing menus
  3. menu_create / menu_update_items -> create or update navigation with anchor links
  4. ftp_tool: write /css/style.css -> load landing page styles
  5. ftp_tool: write /js/script.js -> load scripts
  6. validate_template -> validate HTML without saving
  7. patch_template -> save the final template (backup is created automatically)

2. Adding a mail form to the site

  1. mail_list_forms -> get a list of forms and e-mail recipients
  2. mail_create_form (name, email) -> create a new form
  3. mail_add_field Γ— N -> add fields: name, phone, message
  4. mail_list_fields -> check the order and system names of the fields (f1, f2...)
  5. mail_get_template -> read HTML letters
  6. mail_save_template -> save the updated letter template
  7. patch_template -> insert $MFORM_<ID>$ in the desired place in the template

3. Uploading and updating CSS/JS via FTP

  1. ftp_tool: list (path="/") -> check for the presence of the /css and /js folders
  2. ftp_tool: mkdir /css, /js -> create folders if they don’t exist
  3. ftp_tool: write /css/style.css -> write CSS
  4. ftp_tool: write /js/script.js -> write JS
  5. read_template -> open the template for editing connections
  6. update_template -> update the version of ?v= in file links

4. Rolling back a template to a previous version

  1. list_backups (module_id, template_id) -> get a list of backups with dates
  2. restore_backup (backup_id) -> restore the desired version of the template
  3. read_template -> check that the template is restored correctly

5. Navigation menu update

  1. menu_list -> get the ID of the desired menu
  2. menu_get (menu_id) -> look at the current structure of items
  3. menu_update_items (menu_id, items) -> replace the tree of items with new URLs and nesting
  4. patch_template -> insert $SMENU_<ID>$ or $NMENU_<ID>$ in the template

6. Partial template edit

  1. read_template -> read code and copy the fragment to replace
  2. validate_template (optional) -> check the new fragment
  3. patch_template (code_search, code_paste) -> replace only the needed block

7. Create a page with a personal template

  1. page_list -> check existing pages
  2. page_add (page_name, page_tmpl) -> create page with personal HTML ($POWERED_BY$ required in page_tmpl)
  3. page_get (page_id) -> verify the result
  4. quarantine_status -> if needed, remove quarantine via quarantine_unlock

8. New site setup

  1. modules_list -> browse module catalog
  2. module_install (module_code) -> install required modules
  3. module_enable_uapi -> enable uAPI for modules
  4. ftp_password_get -> check FTP; if no password β€” ftp_password_set
  5. quarantine_unlock -> remove quarantine for indexing