Get a tool
curl --request GET \
--url http://localhost:9371/tools/{serviceId}/{toolId}import requests
url = "http://localhost:9371/tools/{serviceId}/{toolId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('http://localhost:9371/tools/{serviceId}/{toolId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "9371",
CURLOPT_URL => "http://localhost:9371/tools/{serviceId}/{toolId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:9371/tools/{serviceId}/{toolId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:9371/tools/{serviceId}/{toolId}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:9371/tools/{serviceId}/{toolId}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"enabled": true,
"effectivelyEnabled": true,
"inputSchema": {},
"outputSchema": {}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "rate_limit_exceeded",
"message": "<string>",
"retryAfter": 1
}{
"error": "<string>",
"code": "<string>"
}Get a tool
Returns detailed metadata for a tool within a service, including input and output schemas.
GET
/
tools
/
{serviceId}
/
{toolId}
Get a tool
curl --request GET \
--url http://localhost:9371/tools/{serviceId}/{toolId}import requests
url = "http://localhost:9371/tools/{serviceId}/{toolId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('http://localhost:9371/tools/{serviceId}/{toolId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "9371",
CURLOPT_URL => "http://localhost:9371/tools/{serviceId}/{toolId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:9371/tools/{serviceId}/{toolId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:9371/tools/{serviceId}/{toolId}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:9371/tools/{serviceId}/{toolId}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"enabled": true,
"effectivelyEnabled": true,
"inputSchema": {},
"outputSchema": {}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "rate_limit_exceeded",
"message": "<string>",
"retryAfter": 1
}{
"error": "<string>",
"code": "<string>"
}Path Parameters
Service identifier matching the installed manifest id.
Minimum string length:
1Tool identifier exposed by the service manifest.
Minimum string length:
1Response
Tool details.
Detailed tool metadata returned by the tool detail endpoint.
Tool identifier exposed by the service manifest.
Minimum string length:
1Display name declared by the tool definition.
Minimum string length:
1Human-readable tool description.
Whether the tool is enabled at the manifest level.
Whether the tool is callable after accounting for its parent service state.
JSON Schema describing the tool input payload.
Show child attributes
Show child attributes
JSON Schema describing the tool output payload.
Show child attributes
Show child attributes
Last modified on August 25, 2026
Was this page helpful?