curl --request POST \
--url https://app.apigene.ai/api/mcp/app_execute_action \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"app_name": "<string>",
"user_input": "<string>",
"context": {},
"response_format": "raw",
"response_projection": "<string>",
"customer_execution_context": {},
"client_source": "<string>",
"template_id": "<string>",
"request_ui_template": false
}
'import requests
url = "https://app.apigene.ai/api/mcp/app_execute_action"
payload = {
"app_name": "<string>",
"user_input": "<string>",
"context": {},
"response_format": "raw",
"response_projection": "<string>",
"customer_execution_context": {},
"client_source": "<string>",
"template_id": "<string>",
"request_ui_template": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
app_name: '<string>',
user_input: '<string>',
context: {},
response_format: 'raw',
response_projection: '<string>',
customer_execution_context: {},
client_source: '<string>',
template_id: '<string>',
request_ui_template: false
})
};
fetch('https://app.apigene.ai/api/mcp/app_execute_action', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.apigene.ai/api/mcp/app_execute_action",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'app_name' => '<string>',
'user_input' => '<string>',
'context' => [
],
'response_format' => 'raw',
'response_projection' => '<string>',
'customer_execution_context' => [
],
'client_source' => '<string>',
'template_id' => '<string>',
'request_ui_template' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.apigene.ai/api/mcp/app_execute_action"
payload := strings.NewReader("{\n \"app_name\": \"<string>\",\n \"user_input\": \"<string>\",\n \"context\": {},\n \"response_format\": \"raw\",\n \"response_projection\": \"<string>\",\n \"customer_execution_context\": {},\n \"client_source\": \"<string>\",\n \"template_id\": \"<string>\",\n \"request_ui_template\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.apigene.ai/api/mcp/app_execute_action")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"app_name\": \"<string>\",\n \"user_input\": \"<string>\",\n \"context\": {},\n \"response_format\": \"raw\",\n \"response_projection\": \"<string>\",\n \"customer_execution_context\": {},\n \"client_source\": \"<string>\",\n \"template_id\": \"<string>\",\n \"request_ui_template\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.apigene.ai/api/mcp/app_execute_action")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_name\": \"<string>\",\n \"user_input\": \"<string>\",\n \"context\": {},\n \"response_format\": \"raw\",\n \"response_projection\": \"<string>\",\n \"customer_execution_context\": {},\n \"client_source\": \"<string>\",\n \"template_id\": \"<string>\",\n \"request_ui_template\": false\n}"
response = http.request(request)
puts response.read_body{
"message": "<unknown>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}App Execute Action
Triggers an interaction for a custom MCP model using the provided input and operation ID. Returns the MCP-generated response.
curl --request POST \
--url https://app.apigene.ai/api/mcp/app_execute_action \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"app_name": "<string>",
"user_input": "<string>",
"context": {},
"response_format": "raw",
"response_projection": "<string>",
"customer_execution_context": {},
"client_source": "<string>",
"template_id": "<string>",
"request_ui_template": false
}
'import requests
url = "https://app.apigene.ai/api/mcp/app_execute_action"
payload = {
"app_name": "<string>",
"user_input": "<string>",
"context": {},
"response_format": "raw",
"response_projection": "<string>",
"customer_execution_context": {},
"client_source": "<string>",
"template_id": "<string>",
"request_ui_template": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
app_name: '<string>',
user_input: '<string>',
context: {},
response_format: 'raw',
response_projection: '<string>',
customer_execution_context: {},
client_source: '<string>',
template_id: '<string>',
request_ui_template: false
})
};
fetch('https://app.apigene.ai/api/mcp/app_execute_action', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.apigene.ai/api/mcp/app_execute_action",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'app_name' => '<string>',
'user_input' => '<string>',
'context' => [
],
'response_format' => 'raw',
'response_projection' => '<string>',
'customer_execution_context' => [
],
'client_source' => '<string>',
'template_id' => '<string>',
'request_ui_template' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.apigene.ai/api/mcp/app_execute_action"
payload := strings.NewReader("{\n \"app_name\": \"<string>\",\n \"user_input\": \"<string>\",\n \"context\": {},\n \"response_format\": \"raw\",\n \"response_projection\": \"<string>\",\n \"customer_execution_context\": {},\n \"client_source\": \"<string>\",\n \"template_id\": \"<string>\",\n \"request_ui_template\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.apigene.ai/api/mcp/app_execute_action")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"app_name\": \"<string>\",\n \"user_input\": \"<string>\",\n \"context\": {},\n \"response_format\": \"raw\",\n \"response_projection\": \"<string>\",\n \"customer_execution_context\": {},\n \"client_source\": \"<string>\",\n \"template_id\": \"<string>\",\n \"request_ui_template\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.apigene.ai/api/mcp/app_execute_action")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_name\": \"<string>\",\n \"user_input\": \"<string>\",\n \"context\": {},\n \"response_format\": \"raw\",\n \"response_projection\": \"<string>\",\n \"customer_execution_context\": {},\n \"client_source\": \"<string>\",\n \"template_id\": \"<string>\",\n \"request_ui_template\": false\n}"
response = http.request(request)
puts response.read_body{
"message": "<unknown>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
JWT Authorization header using the Bearer scheme. Example: 'Authorization: Bearer {token}'
Query Parameters
The name of the GenAI app.
The type of the app ('mcp' or 'agent').
Body
Input payload for triggering a MCP action. Contains the user's input and operation ID.
The identifier of the App to invoke.
The natural language input describing the desired action.
Contextual parameters for the action, including operationId and any required inputs.
Response format: 'raw' (default) or 'formatted_md'.
JMESPath expression for response projection/transformation. Examples: '{name: name, email: email}' for field selection, 'items[?price > 100]' for filtering, 'items[*].name' for extracting arrays. Full JMESPath syntax supported.
Customer-specific context data for correlation and tracking in customer execution mode
The MCP client that initiated this interaction (e.g., Cursor, Claude, VS Code, ChatGPT). Used for analytics.
Template id for UI rendering. If not provided, uses default template for the operation.
When True, response is enriched with template_id and template_data for UI tools (e.g. run_action_ui). Set only for *_ui tool invocations.
Response
Successful Response
Response model for a MCP action. Contains the message or result returned by the MCP action.
The response message or result from the MCP action
