curl --request GET \
--url https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18 \
--header 'Authorization: Bearer gmcp_your_api_key'
import requests
response = requests.get(
"https://yoursite.com/wp-json/getmcp/v1/analytics/calls",
headers={"Authorization": "Bearer gmcp_your_api_key"},
params={
"per_page": 20,
"status": "error",
"from": "2025-03-01",
"to": "2025-03-18"
}
)
print(response.json())
const params = new URLSearchParams({
per_page: 20,
status: "error",
from: "2025-03-01",
to: "2025-03-18"
});
const response = await fetch(
`https://yoursite.com/wp-json/getmcp/v1/analytics/calls?${params}`,
{
headers: { "Authorization": "Bearer gmcp_your_api_key" }
}
);
const data = await response.json();
$query = http_build_query([
"per_page" => 20,
"status" => "error",
"from" => "2025-03-01",
"to" => "2025-03-18"
]);
$response = wp_remote_get(
"https://yoursite.com/wp-json/getmcp/v1/analytics/calls?{$query}",
["headers" => ["Authorization" => "Bearer gmcp_your_api_key"]]
);
$data = json_decode(wp_remote_retrieve_body($response), true);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18", nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(string(data))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18"))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Get.new(uri)
response = http.request(request)
puts JSON.parse(response.body)
[
{
"id": 1042,
"server_id": 1,
"tool_id": 3,
"method": "tools/call",
"arguments": "{\"city\":\"London\"}",
"response_status": "success",
"response_time_ms": 342,
"status_code": 200,
"client_type": "claude-desktop",
"client_ip": "203.0.113.42",
"user_agent": "Claude-Desktop/1.0",
"error_message": null,
"created_at": "2025-03-18T10:30:00Z",
"server_name": "My Weather Tools",
"tool_name": "get_weather"
},
{
"id": 1041,
"server_id": 2,
"tool_id": 5,
"method": "tools/call",
"arguments": "{\"email\":\"[email protected]\"}",
"response_status": "error",
"response_time_ms": 120,
"status_code": 401,
"client_type": "cursor",
"client_ip": "198.51.100.7",
"user_agent": "Cursor/0.42.0",
"error_message": "Upstream API returned 401 Unauthorized",
"created_at": "2025-03-18T10:28:00Z",
"server_name": "Stripe Payments",
"tool_name": "create_customer"
}
]
Analytics
Call Logs
Retrieve paginated tool call logs with filtering options.
GET
/
wp-json
/
getmcp
/
v1
/
analytics
/
calls
curl --request GET \
--url https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18 \
--header 'Authorization: Bearer gmcp_your_api_key'
import requests
response = requests.get(
"https://yoursite.com/wp-json/getmcp/v1/analytics/calls",
headers={"Authorization": "Bearer gmcp_your_api_key"},
params={
"per_page": 20,
"status": "error",
"from": "2025-03-01",
"to": "2025-03-18"
}
)
print(response.json())
const params = new URLSearchParams({
per_page: 20,
status: "error",
from: "2025-03-01",
to: "2025-03-18"
});
const response = await fetch(
`https://yoursite.com/wp-json/getmcp/v1/analytics/calls?${params}`,
{
headers: { "Authorization": "Bearer gmcp_your_api_key" }
}
);
const data = await response.json();
$query = http_build_query([
"per_page" => 20,
"status" => "error",
"from" => "2025-03-01",
"to" => "2025-03-18"
]);
$response = wp_remote_get(
"https://yoursite.com/wp-json/getmcp/v1/analytics/calls?{$query}",
["headers" => ["Authorization" => "Bearer gmcp_your_api_key"]]
);
$data = json_decode(wp_remote_retrieve_body($response), true);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18", nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(string(data))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18"))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Get.new(uri)
response = http.request(request)
puts JSON.parse(response.body)
[
{
"id": 1042,
"server_id": 1,
"tool_id": 3,
"method": "tools/call",
"arguments": "{\"city\":\"London\"}",
"response_status": "success",
"response_time_ms": 342,
"status_code": 200,
"client_type": "claude-desktop",
"client_ip": "203.0.113.42",
"user_agent": "Claude-Desktop/1.0",
"error_message": null,
"created_at": "2025-03-18T10:30:00Z",
"server_name": "My Weather Tools",
"tool_name": "get_weather"
},
{
"id": 1041,
"server_id": 2,
"tool_id": 5,
"method": "tools/call",
"arguments": "{\"email\":\"[email protected]\"}",
"response_status": "error",
"response_time_ms": 120,
"status_code": 401,
"client_type": "cursor",
"client_ip": "198.51.100.7",
"user_agent": "Cursor/0.42.0",
"error_message": "Upstream API returned 401 Unauthorized",
"created_at": "2025-03-18T10:28:00Z",
"server_name": "Stripe Payments",
"tool_name": "create_customer"
}
]
Query Parameters
integer
default:"20"
Number of log entries per page.
integer
default:"1"
Page number.
integer
default:"0"
Filter by server ID. Use 0 for all servers.
string
Filter by response status. One of:
success, error. Leave empty for all.string
Search by server name, tool name, or client type.
string
Filter from this date (inclusive). Format:
YYYY-MM-DD.string
Filter to this date (inclusive). Format:
YYYY-MM-DD.Response Headers
| Header | Description |
|---|---|
X-WP-Total | Total number of matching log entries |
X-WP-TotalPages | Total number of pages |
curl --request GET \
--url https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18 \
--header 'Authorization: Bearer gmcp_your_api_key'
import requests
response = requests.get(
"https://yoursite.com/wp-json/getmcp/v1/analytics/calls",
headers={"Authorization": "Bearer gmcp_your_api_key"},
params={
"per_page": 20,
"status": "error",
"from": "2025-03-01",
"to": "2025-03-18"
}
)
print(response.json())
const params = new URLSearchParams({
per_page: 20,
status: "error",
from: "2025-03-01",
to: "2025-03-18"
});
const response = await fetch(
`https://yoursite.com/wp-json/getmcp/v1/analytics/calls?${params}`,
{
headers: { "Authorization": "Bearer gmcp_your_api_key" }
}
);
const data = await response.json();
$query = http_build_query([
"per_page" => 20,
"status" => "error",
"from" => "2025-03-01",
"to" => "2025-03-18"
]);
$response = wp_remote_get(
"https://yoursite.com/wp-json/getmcp/v1/analytics/calls?{$query}",
["headers" => ["Authorization" => "Bearer gmcp_your_api_key"]]
);
$data = json_decode(wp_remote_retrieve_body($response), true);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18", nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(string(data))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18"))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://yoursite.com/wp-json/getmcp/v1/analytics/calls?per_page=20&status=error&from=2025-03-01&to=2025-03-18')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Get.new(uri)
response = http.request(request)
puts JSON.parse(response.body)
[
{
"id": 1042,
"server_id": 1,
"tool_id": 3,
"method": "tools/call",
"arguments": "{\"city\":\"London\"}",
"response_status": "success",
"response_time_ms": 342,
"status_code": 200,
"client_type": "claude-desktop",
"client_ip": "203.0.113.42",
"user_agent": "Claude-Desktop/1.0",
"error_message": null,
"created_at": "2025-03-18T10:30:00Z",
"server_name": "My Weather Tools",
"tool_name": "get_weather"
},
{
"id": 1041,
"server_id": 2,
"tool_id": 5,
"method": "tools/call",
"arguments": "{\"email\":\"[email protected]\"}",
"response_status": "error",
"response_time_ms": 120,
"status_code": 401,
"client_type": "cursor",
"client_ip": "198.51.100.7",
"user_agent": "Cursor/0.42.0",
"error_message": "Upstream API returned 401 Unauthorized",
"created_at": "2025-03-18T10:28:00Z",
"server_name": "Stripe Payments",
"tool_name": "create_customer"
}
]
⌘I

