Describe Table
curl --request POST \
--url 'https://api.adside.ai/meta-reporting/mcp#describe_table' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"name": "<string>",
"arguments": {}
},
"id": "1"
}
'import requests
url = "https://api.adside.ai/meta-reporting/mcp#describe_table"
payload = {
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"name": "<string>",
"arguments": {}
},
"id": "1"
}
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({
jsonrpc: '<string>',
method: '<string>',
params: {name: '<string>', arguments: {}},
id: '1'
})
};
fetch('https://api.adside.ai/meta-reporting/mcp#describe_table', 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://api.adside.ai/meta-reporting/mcp#describe_table",
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([
'jsonrpc' => '<string>',
'method' => '<string>',
'params' => [
'name' => '<string>',
'arguments' => [
]
],
'id' => '1'
]),
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://api.adside.ai/meta-reporting/mcp#describe_table"
payload := strings.NewReader("{\n \"jsonrpc\": \"<string>\",\n \"method\": \"<string>\",\n \"params\": {\n \"name\": \"<string>\",\n \"arguments\": {}\n },\n \"id\": \"1\"\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://api.adside.ai/meta-reporting/mcp#describe_table")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"<string>\",\n \"method\": \"<string>\",\n \"params\": {\n \"name\": \"<string>\",\n \"arguments\": {}\n },\n \"id\": \"1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.adside.ai/meta-reporting/mcp#describe_table")
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 \"jsonrpc\": \"<string>\",\n \"method\": \"<string>\",\n \"params\": {\n \"name\": \"<string>\",\n \"arguments\": {}\n },\n \"id\": \"1\"\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": "<string>",
"result": {
"content": [
{
"type": "<string>",
"text": "<string>"
}
]
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Meta Reporting
Describe Table
Fallback schema discovery for reporting.meta_* — only use if a column you need is missing from the curated schema in your system prompt. Returns column names, types, and comments. The system prompt already lists the columns the agent typically uses, so most queries can skip this call entirely. Tables are read-only; the schema doesn’t include indexes or partition info (not actionable for the agent).
POST
/
meta-reporting
/
mcp#describe_table
Describe Table
curl --request POST \
--url 'https://api.adside.ai/meta-reporting/mcp#describe_table' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"name": "<string>",
"arguments": {}
},
"id": "1"
}
'import requests
url = "https://api.adside.ai/meta-reporting/mcp#describe_table"
payload = {
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"name": "<string>",
"arguments": {}
},
"id": "1"
}
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({
jsonrpc: '<string>',
method: '<string>',
params: {name: '<string>', arguments: {}},
id: '1'
})
};
fetch('https://api.adside.ai/meta-reporting/mcp#describe_table', 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://api.adside.ai/meta-reporting/mcp#describe_table",
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([
'jsonrpc' => '<string>',
'method' => '<string>',
'params' => [
'name' => '<string>',
'arguments' => [
]
],
'id' => '1'
]),
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://api.adside.ai/meta-reporting/mcp#describe_table"
payload := strings.NewReader("{\n \"jsonrpc\": \"<string>\",\n \"method\": \"<string>\",\n \"params\": {\n \"name\": \"<string>\",\n \"arguments\": {}\n },\n \"id\": \"1\"\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://api.adside.ai/meta-reporting/mcp#describe_table")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"<string>\",\n \"method\": \"<string>\",\n \"params\": {\n \"name\": \"<string>\",\n \"arguments\": {}\n },\n \"id\": \"1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.adside.ai/meta-reporting/mcp#describe_table")
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 \"jsonrpc\": \"<string>\",\n \"method\": \"<string>\",\n \"params\": {\n \"name\": \"<string>\",\n \"arguments\": {}\n },\n \"id\": \"1\"\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": "<string>",
"result": {
"content": [
{
"type": "<string>",
"text": "<string>"
}
]
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
API key (sk_live_*) — SHA256 hashed, looked up in Redis. Generate via the web app's workspace settings.
Body
application/json
⌘I