Skip to Content
GuidesCreate toolsImprove an existing toolkitTypes of Tools

Types of Tools

This page explains the two types of Arcade offers and how they differ in their design approach.

Arcade offers two types of :

The distinction is how Arcade designs them. Both types of work seamlessly in the same way. No difference exists in their interfaces, how you call them, or how you interact with them through the Arcade Dashboard  or the Arcade SDK clients.

Before understanding the two types, first understand the background for why differentiation between them matters.

Why LLMs perform poorly when calling HTTP APIs

Traditionally, the HTTP APIs offered by upstream services such as GitHub, Google, Slack, etc., developers designed to allow human software engineers to consume them. When these interfaces become available for LLMs to call as , they typically do not perform well.

One of the main reasons is that the data model of the HTTP API rarely matches the data model of an AI-powered chat interface.

For instance, consider the following prompt:

“Send a DM to John asking about a update”

The data model mismatches are:

DimensionChat interfaceSlack HTTP API
ActionSend message to a personSend message to a channel
Argumentusername = "John"channel_id = ???

In order to bridge the gap in the data models, the LLM has to make multiple API calls:

  1. Retrieve the current ’s Slack ID
  2. Browse the list of to find John’s ID
  3. Open a DM (direct message) channel between the and John, and get this channel’s ID
  4. Send the message to the channel

Even the most powerful LLMs typically perform poorly when they need to reason such complex workflows on the fly, not to mention the increased cost and risk of hallucinations. As a result, AI and chatbots that rely on HTTP APIs often end up being unreliable.

Optimized tools

Arcade’s Optimized servers match the typical data models expected in AI-powered chat interfaces, and evaluation suites test them to ensure LLMs can safely use them.

Following the example above, the Slack server offers the Slack.SendMessage , which accepts a username as argument, matching exactly both the action and argument value expected to be present in the LLM window.

When a user says “Send a DM to John asking about a update”, the LLM can directly call the Slack.SendMessage with the username argument, and the tool will take care of the rest.

dramatically improve the speed, reliability and cost-effectiveness of AI and chatbots.

Since they require careful design and evaluation, Optimized tools take time and effort to build. Arcade understands that your Agent or chatbot project might need capabilities not yet covered by Arcade’s Optimized servers. For this reason, Arcade also offers low-level Unoptimized (formerly known as Starter MCP servers).

Unoptimized tools

To provide your Agent or chatbot with more freedom to interact with upstream services, Arcade offers Unoptimized servers.

heavily reflect the original API design. Each mirrors one HTTP endpoint.

Although developers redesign the tool name and argument descriptions to make them more suitable for LLMs, are still not optimized for LLM usage. Also, they are not subject to evaluation suites like . For those reasons, you should thoroughly evaluate each Unoptimized tool with your or chatbots before using it in production.

When an Optimized tool covers your Agent’s needs, use it instead of an Unoptimized one. Use as a complement. Carefully engineer your prompts to ensure your can call them safely.

Last updated on