Agents & MCP

Agent Tools

Tools are the actions an assistant can take. They power the chat agent and are the same set exposed over MCP. Tools come in three layers — built-in platform tools, capability-scoped domain tools, and your own custom tools.

Tool layers

Platform tools

Built-in actions — knowledge-base search, send email, tasks, contacts, web search, image generation, handoff to a human, and more.

Domain tools (capability-scoped)

Generated from the platform’s services and gated by capability scopes. These are the ones you grant per assistant.

Custom & connection tools

Your own llm_transform / api_call tools, plus REST API Connections registered as tools and gated by credential grants.

Capability-scoped domain tools

These are gated by capability scopes — grant inventory:read and the read tools below appear; grant inventory:write for the mutating ones.

DomainTools
Inventoryinventory_list_items, inventory_get_item, inventory_list_categories, inventory_list_tags, inventory_create_item, inventory_update_item, inventory_delete_item
Contacts (CRM)contacts_list, contacts_get, contacts_list_groups, contacts_upsert, contacts_update, contacts_delete
Ordersorders_list, orders_get, orders_update_status
Taskstasks_list, tasks_create, tasks_update
Appointmentsappointments_list, appointments_get, appointments_availability, appointments_create, appointments_update, appointments_cancel
Knowledge Basekb_search, kb_list_entries, kb_stats

Inspect available tools

Resolve the tools available for the current context (platform, plan, assistant settings):

Shell
GET https://api.cognitiondesk.com/tools/available?platform=web
Authorization: Bearer <firebase-id-token>

Create a custom tool

Custom tools let an assistant call your own logic. api_call tools make an HTTP request (with {{variable}} templating); llm_transform tools run a prompt over an input. Attach them to an assistant via its customToolIds.

POST /custom-tools
JSON
POST https://api.cognitiondesk.com/custom-tools
Authorization: Bearer <firebase-id-token>
Content-Type: application/json

{
  "name": "shorten_url",
  "displayName": "Shorten URL",
  "description": "Shorten a long URL via our internal service",
  "type": "api_call",
  "config": {
    "url": "https://api.example.com/shorten",
    "method": "POST",
    "body": { "url": "{{url}}" }
  },
  "inputSchema": { "url": { "type": "string", "required": true } }
}

Identity & tenancy

Every tool derives the caller identity from the request context, never from model-supplied IDs, and is scoped to the owner’s organization/data. Model-provided resource IDs are ownership-checked before any mutation.

Agent Tools — CognitionDesk Docs