Skip to main content
Large action catalogs would overflow the model’s context if every tool were loaded up front. Search-based discovery lets the agent find the right action at runtime, keeping the token footprint flat as your catalog grows — see the overview for why it matters.
StackOne actions are exposed to agents as tools — an action in the catalog becomes a tool in your agent’s hands. The two terms describe the same operation from either side.

Overview

There are two levels of control over which tools an agent sees — the connector profile sets hard boundaries that everything inherits, then each protocol discovers or narrows within them.
  1. Connector profile levelScoping Connectors on the connector profile sets hard, admin-level boundaries that every protocol and caller inherits.
  2. Protocol level — chosen per toolset or per call:
  1. Search — the agent (or your code) calls search with a natural language query.
  2. Discover — available connectors and tool definitions are fetched for your linked accounts.
  3. Match — each connector’s tools are searched in parallel via the semantic search API.
  4. Rank — results are matched to tool definitions, ranked by relevance, and deduplicated.
  5. Return — a ready-to-use tools collection, filtered to what the configured account IDs can access.

Search and Execute

MCP

StackOne’s MCP server exposes Search & Execute through the tool-mode query parameter. See MCP Tool modes for the parameters, client setup examples, and the search/execute tool reference. To use it in your agent’s client, follow the respective Agent Setup walkthroughs.

Agent SDK

Hand the agent tool_search and tool_execute — only two tools reach the LLM regardless of catalog size. For examples, see the framework guide for the framework you’re building with.

Actions API

Search directly over the catalog, then run the result via RPC. See Search connector actions and Make an RPC call.

Tool filtering

Tool Filtering is only available when using the Agent SDK protocol.
Tool filtering allows you to perform a primitive matching pattern against the tool names to reduce the tools exposed to the agent. Filter on either attribute, or combine both in one fetch: Tool names follow the format provider_action. Use the wildcard * to match similarly named actions, for example:
More examples: stackone-ai-node (TypeScript) and stackone-ai-python (Python).
Manual Search is only available when using the Agent SDK protocol.
When you need to find tools yourself before passing them to an agent:
No configuration needed. Defaults to auto mode with sensible defaults.
Write queries that describe the business task (“find employees hired this year”) rather than the technical operation (“list employees filtered by start date”). Search is semantic.

Search modes

Local search is powered by Orama in TypeScript and bm25s in Python.
Semantic search uses enriched embeddings: action descriptions are expanded with related terms before embedding, so “onboard new hire” matches “Create Employee” even though the wording differs. Local search relies on BM25 keyword matching, which works for exact terms but misses natural language phrasing. Tested across 103 semantically-challenging queries against 9,340 actions:

Search options

Set default search options at the constructor level. These apply to all search calls unless overridden per-call.SearchConfig options
TypeScriptPython

Advanced patterns

Returns action names and similarity scores without fetching full tool definitions. Use it to inspect results before committing to a full fetch.
This works with just STACKONE_API_KEY, no account ID needed. When called without account IDs, results come from the full StackOne catalog.
Returns a reusable SearchTool for agent loops where the LLM decides what to search for.
The returned Tools collection converts to OpenAI, Vercel AI SDK, LangChain, and more — see the framework guides under Agent SDK.