Одна онлайн-адреса студії
Використовує Streamable HTTP. Кожна студія має власну адресу та документи пошуку підключення.
API
Усе для підключення сайту, мобільного застосунку та AI-помічників до Ladna.
Можливості, які AI-помічник може використовувати тільки в межах вашої студії та лише з вашого дозволу.
Використовує Streamable HTTP. Кожна студія має власну адресу та документи пошуку підключення.
Персональні підключення відкривають вхід у Ladna, реєструються автоматично й самі оновлюють доступ.
Список інструментів дотримується поточних прав людини у студії та не може змінювати дані.
Замініть your-studio на адресу своєї студії та використайте це онлайн-посилання. Застосунок сам знайде вхід Ladna, S256 PKCE, реєстрацію й оновлення доступу.
https://ladna.app/mcp/ladna-studio/your-studio
18 зареєстрованих інструментів лише для читання, згрупованих за призначенням. Людина бачить тільки те, що дозволяють її поточні права у студії.
describe-ladna-skills
Use when deciding which Ladna tool fits a studio request or when the user asks what Ladna can do. Returns a curated account-scoped capability description.
get-studio-profile
Returns studio profile, active locations, timezone, and opening hours for the connected studio.
get-class-counts-for-day
Returns studio class counts for a calendar day in the connected studio scope.
get-class-bookings-for-day
Returns scheduled classes for a calendar day with trainer, location, room, capacity, and booked customer names in the connected studio scope.
search-customers
Searches customers by name or phone fragment in the connected studio and returns masked contact details for disambiguation.
investigate-customer-booking-ledger
Reconstructs a customer booking, class-pass, and outstanding-payment ledger in the connected studio scope, including all-time ordinary trial-pass eligibility and audited manual-override qualification as of a supplied timestamp. This tool is strictly read-only.
get-payment-overview
Returns a read-only, currency-grouped overview of customer payments, customer refunds, event payments, outstanding class-pass balances, and fiscal failures for a bounded period in the active finance epoch.
search-payments
Searches bounded customer payments, customer refunds, and event payments in the connected studio scope. Contacts are masked and gateway secrets are never returned.
get-financial-report
Returns the read-only studio financial report for the active finance epoch: payments, refunds, operational expenses, and owner cash movements. Owner deposits and withdrawals are excluded from operating result.
get-earnings-report
Returns recognized earnings for completed lessons and rentals in the active finance epoch, less operational expenses and accrued salary. Class-pass sales are cashflow and are not counted again as lesson earnings.
get-rental-report
Returns completed room rentals with location, room, customer, duration, accrued, paid, refunded, debt, and status in the active finance epoch.
get-cashbox-overview
Returns current cashbox balances from the latest actual reconciliation plus subsequent append-only cash ledger movements in the active finance epoch.
get-payroll-overview
Returns payroll cadence and immutable closed or voided payroll-run snapshots. Closing a run accrues salary but does not record an actual payout.
get-events-overview
Returns bounded event lifecycle, inventory, ticket, check-in, revenue, and refund-obligation summaries in the connected studio scope without buyer contacts.
get-event-summary
Returns a read-only operational summary for one event ID in the connected studio scope, including ticket-type inventory and no buyer contacts.
search-owner-help
Searches Ladna owner help pages from the curated help config. Returns matching page slugs, titles, summaries, sections, and short fragments.
get-owner-help-page
Returns one Ladna owner help page by slug from the curated help config.
get-business-logic-reference
Returns curated Ladna business logic references by allow-listed key. Does not read arbitrary file paths.
/mcp/ladna-studio
/mcp/ladna-studio/{accountSlug}
Автоматизації між серверами можуть і надалі використовувати окремий ключ студії. Ця адреса не використовує персональний вхід.
https://ladna.app/mcp/ladna-studio
Authorization: Bearer ladna_your_token
Огляд студії, розклад і записи на сьогодні, пошук клієнтів, фінансові звіти лише для читання, події та пошук у допомозі Ladna.
401 означає, що потрібно увійти або оновити доступ, 403 — поточна людина чи студія не має дозволу, а 429 — слід зачекати перед повторною спробою.
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-class-bookings-for-day",
"arguments": {
"date": "2026-06-30"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-class-bookings-for-day",
"arguments": {
"date": "2026-06-30"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-class-bookings-for-day",
"arguments": {
"date": "2026-06-30"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-customers",
"arguments": {
"query": "Тетяна",
"limit": 5
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-customers",
"arguments": {
"query": "Тетяна",
"limit": 5
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-customers",
"arguments": {
"query": "Тетяна",
"limit": 5
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "investigate-customer-booking-ledger",
"arguments": {
"customer_id": 63,
"from_date": "2026-07-01",
"to_date": "2026-07-31",
"as_of": "2026-07-28T20:05:00+03:00",
"source": "manual"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "investigate-customer-booking-ledger",
"arguments": {
"customer_id": 63,
"from_date": "2026-07-01",
"to_date": "2026-07-31",
"as_of": "2026-07-28T20:05:00+03:00",
"source": "manual"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "investigate-customer-booking-ledger",
"arguments": {
"customer_id": 63,
"from_date": "2026-07-01",
"to_date": "2026-07-31",
"as_of": "2026-07-28T20:05:00+03:00",
"source": "manual"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-owner-help",
"arguments": {
"query": "як додати клієнта",
"limit": 3
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-owner-help",
"arguments": {
"query": "як додати клієнта",
"limit": 3
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-owner-help",
"arguments": {
"query": "як додати клієнта",
"limit": 3
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe-ladna-skills",
"arguments": {
"channel": "dashboard_chat"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe-ladna-skills",
"arguments": {
"channel": "dashboard_chat"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe-ladna-skills",
"arguments": {
"channel": "dashboard_chat"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-payment-overview",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-payment-overview",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-payment-overview",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-payments",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31",
"query": "Коваль",
"limit": 20
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-payments",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31",
"query": "Коваль",
"limit": 20
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-payments",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31",
"query": "Коваль",
"limit": 20
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-financial-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31",
"limit": 20
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-financial-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31",
"limit": 20
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-financial-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31",
"limit": 20
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-cashbox-overview",
"arguments": {
"location_id": 12,
"currency": "UAH"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-cashbox-overview",
"arguments": {
"location_id": 12,
"currency": "UAH"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-cashbox-overview",
"arguments": {
"location_id": 12,
"currency": "UAH"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-earnings-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-earnings-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-earnings-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-rental-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-rental-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-rental-report",
"arguments": {
"date_from": "2026-07-01",
"date_to": "2026-07-31"
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-payroll-overview",
"arguments": {
"limit": 20
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-payroll-overview",
"arguments": {
"limit": 20
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-payroll-overview",
"arguments": {
"limit": 20
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-events-overview",
"arguments": {
"status_bucket": "upcoming",
"limit": 20
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-events-overview",
"arguments": {
"status_bucket": "upcoming",
"limit": 20
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-events-overview",
"arguments": {
"status_bucket": "upcoming",
"limit": 20
}
}
}),
});
const data = await response.json();
POST /mcp/ladna-studio
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/mcp/ladna-studio', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-event-summary",
"arguments": {
"event_id": 42
}
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/mcp/ladna-studio',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-event-summary",
"arguments": {
"event_id": 42
}
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/mcp/ladna-studio', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get-event-summary",
"arguments": {
"event_id": 42
}
}
}),
});
const data = await response.json();