ruLog in to Senler

Application Actions

Application actions are selected plugin backend methods described in OpenAPI. Through MCP, AI can work with application data or prepare settings for its tool or step at the user's request. Users do not add these methods to an agent or workflow manually: they are available through MCP only in projects where the plugin is installed and active.

This is a separate plugin capability:

  • an agent tool is called by the agent during a conversation;
  • an application step runs inside an automation process;
  • an MCP action is called by AI while it helps with the plugin's interface and settings;
  • a report method supplies plugin data to a connected funnel.

Prepare the Integration

Prepare OpenAPI action definitions and implement backend authorization. NestJS projects can use SDK decorators.

Enable Actions In The Application

For a Plugin application, open Embedded page and find the Application actions section.

  1. Enable Publish actions to MCP.
  2. Enter a stable method prefix from 2 to 32 characters: lowercase Latin letters, digits, and _, starting with a letter. For example, with the my_plugin prefix, the list_orders action is named my_plugin__list_orders.
  3. Enter the application backend's OpenAPI JSON schema URL.
  4. Click the separate Save button for this section.
Enable Actions In The Application. Highlighted elements: 1. Application actions section; 2. Publish actions to MCP; 3. stable method prefix; 4. OpenAPI JSON schema URL; 5. Save button
1. Application actions section · 2. Publish actions to MCP · 3. stable method prefix · 4. OpenAPI JSON schema URL · 5. Save button

Keep the prefix stable after publication: the full method name is used by AI and saved workflows. Two active installed applications in the same project must not produce the same full action name.

How MCP Finds And Calls An Action

Installed application actions do not expand the permanent MCP tool list. AI uses the shared discovery protocol:

  1. call search with a short task description;
  2. take the exact method_name from the result;
  3. call describe_method when the compact search result does not provide enough nested input, response schema, or app_action metadata;
  4. call execute with the same method_name and a parameters object that follows the returned schema.

For example, searching for “get Prodamus accounts” can return prodamus__list_accounts, while “get referral campaigns” can return reflink__list_campaigns. AI must not guess these names.

Project scope depends on the MCP connection:

ConnectionHow the project is determinedIs project_id needed?
Senler.io Project MCPThe project is embedded in the project OAuth tokenNo; a parameter cannot override it
User MCP inside a project agent or dialogSenler supplies a signed execution contextNo; AI must not request it
Direct personal User MCP connectionThe selected project is not embedded in the connectionYes; reuse the known project_id in search, describe_method, and execute

For direct User MCP, project_id is a top-level service parameter of the MCP tool. It does not belong in the action's parameters and is not forwarded to the plugin backend. See Senler.io as an MCP server for the full AI-client flow.

Test In A Project

Install and activate the plugin in a test project. For a private application, first grant that project access. Connect Senler Project MCP or User MCP with permission to use applications, and give AI a task that matches a safe action marked read_only: true. Verify that:

  1. the method appears under <namespace>__<name>;
  2. AI sees the expected parameters and result description;
  3. the backend creates a management session only for a valid launch_code;
  4. the action receives the application's Bearer token and responds within 15 seconds;
  5. modifying and irreversible operations have the correct safety flags.

Do not put Client Secret, management token, or private data in OpenAPI, an action description, or its parameters.

If An Action Does Not Appear

  • verify that the plugin is installed and its installation is active in the selected project;
  • verify that publishing is enabled and the section was saved;
  • open the OpenAPI URL from a server, not only from the developer's browser;
  • run senler-app validate-openapi and verify that the operation uses a supported HTTP method and the exact version 1 x-senler-app-action extension;
  • wait up to 30 seconds after changing the schema;
  • check that <namespace>__<name> is unique among installed applications;
  • for a management-session creation error, check /api/embedded/management-session, the launch_code signature and lifetime, and the management_token response field;
  • for an execution error, check the endpoint, Bearer token, backend response, and 15-second limit.