API Reference Last updated March 15, 2026

List Tools

Returns a flat, sorted list of every tool available across all providers, in provider.tool format. Use this endpoint to discover available capabilities for agent routing, prompt construction, or UI tool-pickers — without querying each provider individually.

Endpoint #

GET /api/mcp/tools
http — request headers
Authorization: Bearer ab_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Accepts both API key and JWT authentication. No request body required.

Response #

Returns a JSON array of strings. Each string is a fully-qualified tool identifier in provider.tool format. The list is sorted alphabetically.

json — 200 response
[
  { "name": "discord.send_message",       "description": "Send a message to a Discord channel" },
  { "name": "github.create_issue",        "description": "Create a new issue in a GitHub repository" },
  { "name": "github.create_pr",           "description": "Open a pull request in a GitHub repository" },
  { "name": "github.get_file",            "description": "Retrieve a file from a GitHub repository" },
  { "name": "github.list_repos",          "description": "List repositories for the authenticated user" },
  { "name": "gmail.send_email",           "description": "Send an email via Gmail" },
  { "name": "hubspot.create_contact",     "description": "Create a new contact in HubSpot CRM" },
  { "name": "notion.create_page",         "description": "Create a new page in a Notion database or page" },
  { "name": "slack.send_message",         "description": "Send a message to a Slack channel" },
  { "name": "zoho-crm.create_contact",    "description": "Create a new contact in Zoho CRM" },
  // ... all tools sorted alphabetically
]

The provider.tool format is the same string you pass directly to POST /api/mcp/execute as the tool field — no separate provider field needed. See Execute shorthand format.

Common Use Cases #

Agent Tool Routing #

Fetch all tools at agent startup, then pass the list to your LLM as the available tool set. The provider.tool strings are readable enough to use directly as function names for the model.

typescript
import { AgentBridge } from 'agentbridge-sdk';

const bridge = new AgentBridge(process.env.AGENTBRIDGE_API_KEY!);

// Discover all tools at startup
const tools = await bridge.getTools();
// [
//   { name: "github.create_issue", description: "Create a new issue in a GitHub repository" },
//   { name: "gmail.send_email",    description: "Send an email via Gmail" },
//   ...
// ]

// Pass to your LLM as the tool list — then execute whatever it picks
const chosen = "github.create_issue"; // name returned by LLM

const result = await bridge.execute({
  tool: chosen,   // "provider.tool" shorthand — no provider field needed
  params: {
    repo:  "acme/backend",
    title: "Fix memory leak",
    body:  "Worker grows unbounded after 24h.",
  },
});

console.log(result.data);  // { id: 2048319, number: 157, url: '...' }

Python #

python
from agentbridge import AgentBridge

client = AgentBridge(api_key="ab_live_...")

# Discover all tools
tools = client.get_tools()
# [
#   {"name": "github.create_issue", "description": "Create a new issue in a GitHub repository"},
#   {"name": "gmail.send_email",    "description": "Send an email via Gmail"},
#   ...
# ]

# Execute using shorthand format
result = client.execute(
    tool="github.create_issue",
    params={
        "repo":  "acme/backend",
        "title": "Fix memory leak",
        "body":  "Worker grows unbounded after 24h.",
    },
)

print(result["data"])

curl #

bash
curl https://agentbridge.in/api/mcp/tools \
  -H "Authorization: Bearer ab_live_xxxx"

Relation to Execute Shorthand #

Every string returned by GET /mcp/tools can be passed verbatim to POST /mcp/execute as the tool field. You do not need to split it or specify a separate provider:

json — execute request using shorthand
{
  "tool":   "github.create_issue",
  "params": {
    "repo":  "acme/backend",
    "title": "Fix memory leak"
  }
}

This is equivalent to the explicit form:

json — execute request (explicit form)
{
  "provider": "github",
  "tool":     "create_issue",
  "params":   { "repo": "acme/backend", "title": "Fix memory leak" }
}