---
title: "Compress Tool Discovery Stream"
method: POST
path: "/api/compress/tool-discovery/stream"
tags: ["Compression-Agentic"]
---

# Compress Tool Discovery Stream

`POST /api/compress/tool-discovery/stream`

## Headers

- `X-API-Key` string, required

## Request body

- ToolDiscoveryRequest — Request to discover relevant tools. Backbone: SaT (conversion happens in compressor layer) - chunks = tool descriptions - query = user's query - output = filtered list of relevant tool names
  - `query` string, required — User's query to find relevant tools (REQUIRED)
  - `tools` ToolDefinition[], required — All available tools
    - `name` string, required — Unique tool name
    - `description` string — Tool description
    - `parameters` object, nullable — JSON schema for tool parameters
  - `max_tools` integer — Maximum number of tools to return (default: 5)
  - `always_keep` string[], nullable — Tool names to always include in results
  - `compression_model_name` string, required — Compression model to use (e.g., 'tdc_espresso')
  - `source` 'demo' | 'extension' | 'sdk:python' | 'sdk:typescript' | 'sdk:curl' | 'gateway:unknown' | 'gateway:anthropic' | 'gateway:openai' | 'gateway:gemini' | 'integration:litellm' | 'integration:hermes' — Source of an API request. Format: source[:detail] - demo, extension: no detail needed - sdk:python, sdk:typescript, sdk:curl - gateway:anthropic, gateway:openai, gateway:gemini - integration:litellm, integration:hermes

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/compresr/apis/compresr-platform-api.md) · [All operations](https://skmtc.net/compresr/apis/compresr-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/compresr/compresr-platform-api/revisions/93ee959dfa51/schema)
