Gatana logoGatana Docs

Compression

Reduce tool response tokens with up to 99% with automatic output compression

Code Mode can further reduce token usage

Listing tools can often end up consuming a significant amount of tokens, due to large number of tools and/or overly long descriptions and complex schema definitions. Code Mode replaces all your tools with only two (2): search_tools and execute_code.

See Code Mode for more information.

Every MCP tool call returns raw data into your AI client's context window. A Playwright snapshot costs 56 KB. Twenty GitHub issues cost 59 KB. One access log — 45 KB. After a few tool calls, a significant portion of your context budget is gone — filled with data the model may never reference again.

This is an inherent tension in MCP: tools need to return useful data, but AI clients have finite context windows. The more tools you use, the faster you run out of room for actual reasoning.

Compression aims to solve this by:

  1. Compression: Compression is applied transparently to text and structuredContent
  2. Indexing: The content is indexed
  3. Search: A tool is used to search the index and retrieve the desired result.

Binary content types (e.g. images, audio) are passed through unchanged.

Agentic

These benchmarks were measured using the following prompt to Claude Sonnet 4.6.

The "Search Results" column shows data returned by compression_search when the agent needed to retrieve specific details from the compressed output. In many cases (like list_issues) the compressed summary already contains enough information and no search is needed.

Research GitHub Project (74%)

Research https://github.com/modelcontextprotocol/servers — architecture, tech stack, top contributors, open issues, and recent pull requests

ToolWithout CompressionCompressed SummarySearch ResultsTotal With CompressionReduction
list_pull_requests253 KiB1.3 KiB78 KiB79.3 KiB68.7%
list_commits50 KiB864 B693 B1.5 KiB97.0%
get_repository_tree41 KiB3.5 KiB9.7 KiB13.2 KiB67.8%
list_issues26 KiB1.5 KiB—1.5 KiB94.2%
Total370 KiB95.5 KiB74.2%

JSON lookup (99%)

what is the status of task T44812 https://sample.json-format.com/api/download?url=https%3A%2F%2Ffiles.jsons.live%2Femployees%2F5-level%2F500-KB%2Fminified.json&name=500%20KB%205%20Level%20Minified.json

ToolWithout CompressionCompressed SummarySearch ResultsTotal With CompressionReduction
web (fetch page)501 KiB706 B5.4 KiB6.1 KiB98.8%
Total501 KiB6.1 KiB98.8%

Content Types

Below are examples from simple tool calls, without considering agentic look and multi-turn thinking.

Text (96%)

This is the output from fetching the original RFC for the HTTP protocol (https://datatracker.ietf.org/doc/html/rfc8693). The output was compressed by 95%. Note that the accuracy of the section extraction depends on the effectiveness of the HTML-to-Markdown processor in the fetch tool.

---------------------
[Output compressed: 71.2KB → 2.7KB. 20 sections in 54 chunks indexed. Reference ID: csrc_r14OG2P2]
Use "compression_search" to search the full output with source_id "csrc_r14OG2P2" to retrieve all chunks.

Indexed sections:
  - RFC 8693
  - OAuth 2.0 Token Exchange
  - OAuth 2.0 Token Exchange > Abstract
  - OAuth 2.0 Token Exchange > Status of This Memo
  - OAuth 2.0 Token Exchange > Copyright Notice
  - OAuth 2.0 Token Exchange > Table of Contents
  - OAuth 2.0 Token Exchange > 1.Introduction
  - OAuth 2.0 Token Exchange > 1.Introduction > 1.1.Delegation vs. Impersonation Semantics
  - OAuth 2.0 Token Exchange > 1.Introduction > 1.2.Requirements Notation and Conventions
  - OAuth 2.0 Token Exchange > 1.Introduction > 1.3.Terminology
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response > 2.1.Request
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response > 2.1.Request > 2.1.1.Relationship between Resource, Audience, and Scope
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response > 2.2.Response
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response > 2.2.Response > 2.2.1.Successful Response
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response > 2.2.Response > 2.2.2.Error Response
  - OAuth 2.0 Token Exchange > 2.Token Exchange Request and Response > 2.3.Example Token Exchange
  - OAuth 2.0 Token Exchange > 3.Token Type Identifiers
  - OAuth 2.0 Token Exchange > 4.JSON Web Token Claims and Introspection Response Parameters
  - OAuth 2.0 Token Exchange > 4.JSON Web Token Claims and Introspection Response Parameters > 4.1."act" (Actor) Claim
  ... and 29 more

We use the compression_search tool to find information about refresh tokens:

## refresh token

--- [web] SOURCE=csrc_r14OG2P2 | CHUNK=chnk_Q0RhS0987fu1JxfZ5NRky ---
### OAuth 2.0 Token Exchange > 3.Token Type Identifiers

## 3.Token Type Identifiers




 Several parameters in this specification utilize an identifier as the value to
describe the token in question. Specifically, they are the `requested_token_type`, `subject_token_type`, and `actor_token_type` parameters of the request and the `issued_token_type` member of the response. Token type identifiers are URIs. Token exchange can
work with both tokens issued by other parties and tokens from the given
authorization server. For the former, the token type identifier indicates the syntax (e.g.,
JWT or SAML 2.0) so the authorization server can parse it; for the latter, it
indicates what the given authorization server issued it for (e.g., `access_token` or `refresh_token`).¶




 The following token type identifiers are defined by this specification. Other
URIs MAY be used to indicate other token types.¶




- **urn:ietf:params:oauth:token-type:access_token**  Indicates that the token is an OAuth 2.0 access token issued by the given
authorization server.¶
- **urn:ietf:params:oauth:token-type:refresh_token**  Indicates that the token is an OAuth 2.0 refresh token issued by the given
authorization server.¶
- **urn:ietf:params:oauth:token-type:id_token**  Indicates that the token is an ID Token as defined in Section 2 of [OpenID.Core].¶
- **urn:ietf:params:oauth:token-type:saml1**  Indicates that the token is a base64url-encoded SAML 1.1 [OASIS.saml-core-1.1] assertion.¶
- **urn:ietf:params:oauth:token-type:saml2**  Indicates that the token is a base64url-encoded SAML 2.0 [OASIS.saml-core-2.0-os] assertion.¶




 The value `urn:ietf:params:oauth:token-type:jwt`, which is defined in [Section 9](https://www.rfc-editor.org/rfc/rfc7519#section-9) of [JWT], indicates that the token is a JWT.¶




 The distinction between an access token and a JWT is subtle. An access token
represents a delegated authorization decision, whereas JWT is a token format. An
access token can be formatted as a JWT but doesn't necessarily have to be. And a
JWT might well be an access token, but not all JWTs are access tokens. The
intent of this specification is that `urn:ietf:params:oauth:token-type:access_token` be an indicator that the token is a typical OAuth access token issued by the
authorization server in question, opaque to the client, and usable the same manner
as any other access token obtained from that authorization server. (It could
well be a JWT, but the client isn't and needn't be aware of that fact.) Whereas, `urn:ietf:params:oauth:token-type:jwt` is to indicate specifically that a JWT is being requested or sent (perhaps in a
cross-domain use case where the JWT is used as an authorization grant to obtain
an access token from a different authorization server as is facilitated by [RFC7523]).¶




 Note that for tokens that are binary in nature, the URI used for conveying them
needs to be associated with the semantics of a base64 or other encoding
suitable for usage with HTTP and OAuth.¶

JSON (99%)

This is the Gatana output form calling GitHub's list_pull_requests on https://github.com/modelcontextprotocol/servers. Immidiately we can see the pull requests and some metadata.

---------------------
[Output compressed: 491.1KB → 2.3KB. 20 sections in 154 chunks indexed. Reference ID: csrc_QyYCiutu]
Use "compression_search" to search the full output with source_id "csrc_QyYCiutu" to retrieve all chunks.

Indexed sections:
  - feat: add Node API — machine-native GIS processing MCP server with x402 payments | state: open | created_at: 2026-03-05T00:48:40Z
  - Add GEOScore MCP server | state: open | created_at: 2026-03-04T23:38:04Z
  - Add ProofBets MCP Server to community servers | state: open | created_at: 2026-03-04T22:18:53Z
  - Add evc-team-relay-mcp - Obsidian vault MCP server via self-hosted Team Relay | state: open | created_at: 2026-03-04T21:59:34Z
  - Add LegacyShield Zero-Knowledge Vault to third-party servers | state: open | created_at: 2026-03-04T21:37:49Z
  - Add WAzion to official integrations list | state: open | created_at: 2026-03-04T15:58:28Z
  - Add senior-design-director-mcp — design director intelligence for Cla… | state: open | created_at: 2026-03-03T17:17:30Z
  - Add PowerSun — TRON Energy MCP Server (27 tools, remote) | state: open | created_at: 2026-03-02T19:40:08Z
  - Update README.md | state: open | created_at: 2026-03-02T13:16:21Z
  - Add YourMemory — Ebbinghaus-based persistent memory MCP server | state: open | created_at: 2026-03-02T11:41:51Z
  - Create DC Hub - Data Center Intelligence | state: open | created_at: 2026-03-02T08:48:33Z
  - Add csvglow to Community Servers | state: open | created_at: 2026-03-02T04:02:44Z
  - Add Mixpeek MCP Server | state: open | created_at: 2026-03-01T21:57:17Z
  - Add Vault MCP to community servers | state: open | created_at: 2026-03-01T17:57:55Z
  - Add strict ACL startup mode for filesystem, fetch, and git servers | state: open | created_at: 2026-03-01T16:49:00Z
  - Add mcp-architector to community servers list | state: open | created_at: 2026-03-01T15:26:55Z
  - Add javaperf to community servers list | state: open | created_at: 2026-03-01T15:04:51Z
  - Add MoldSim MCP to Community Servers | state: open | created_at: 2026-03-01T14:56:43Z
  - fix(filesystem): ensure bare Windows drive letters normalize to root | state: open | created_at: 2026-03-01T10:59:33Z
  - Add Knowfun MCP to community servers | state: open | created_at: 2026-03-01T04:07:40Z

However, if we want more details, here is the search output for feat: add Node API — machine-native GIS processing MCP server with x402 payments.

## feat: add Node API — machine-native GIS processing MCP server with x402 payments

--- [list_pull_requests] csrc_QyYCiutu ---
### feat: add Node API — machine-native GIS processing MCP server with x402 payments | state: open | created_at: 2026-03-05T00:48:40Z

id: 3355984687, number: 3471, state: open, locked: false, title: feat: add Node API — machine-native GIS processing MCP server with x402 payments, body: ## Node API

**Repository:** https://github.com/eianray/node-api  
**Remote MCP endpoint:** https://nodeapi.ai/mcp/sse  
**Website:** https://nodeapi.ai

### What it does
Node API is a machine-native spatial data processing API built for AI agents. It exposes GIS operations (format conversion, CRS reprojection, geometry validation, clipping, DXF/CAD extraction, topology operations) as clean REST endpoints.

### Why it belongs here
- Full MCP server with 12 tools covering spatial data operations
- Remote SSE endpoint — agents connect directly, no local install required  
- x402/USDC micropayment support on Base — agents can pay autonomously
- No accounts, no API keys, no subscriptions
- Handles formats incumbents won't touch: Esri .gdb, DXF/CAD

### Tools
`meridian_convert`, `meridian_reproject`, `meridian_validate`, `meridian_repair`, `meridian_schema`, `meridian_clip`, `meridian_dxf`, `meridian_buffer`, `meridian_union`, `meridian_intersect`, `meridian_difference`, `meridian_pricing`, created_at: 2026-03-05T00:48:40Z, updated_at: 2026-03-05T00:48:40Z, user.login: eianray, user.id: 13755964, user.node_id: MDQ6VXNlcjEzNzU1OTY0, user.avatar_url: https://avatars.githubusercontent.com/u/13755964?v=4, user.html_url: https://github.com/eianray, user.type: User, user.site_admin: false, user.url: https://api.github.com/users/eianray, user.events_url: https://api.github.com/users/eianray/events{/privacy}, user.following_url: https://api.github.com/users/eianray/following{/other_user}, user.followers_url: https://api.github.com/users/eianray/followers, user.gists_url: https://api.github.com/users/eianray/gists{/gist_id}, user.organizations_url: https://api.github.com/users/eianray/orgs, user.received_events_url: https://api.github.com/users/eianray/received_events, user.repos_url: https://api.github.com/users/eianray/repos, user.starred_url: https://api.github.com/users/eianray/starred{/owner}{/repo}, user.subscriptions_url: https://api.github.com/users/eianray/subscriptions, draft: false, url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3471, html_url: https://github.com/modelcontextprotocol/servers/pull/3471, issue_url: https://api.github.com/repos/modelcontextprotocol/servers/issues/3471, statuses_url: https://api.github.com/repos/modelcontextprotocol/servers/statuses/1d2b04c10117f47acd4091eb6393e2b7297f8d0d, diff_url: https://github.com/modelcontextprotocol/servers/pull/3471.diff, patch_url: https://github.com/modelcontextprotocol/servers/pull/3471.patch, commits_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3471/commits, comments_url: https://api.github.com/repos/modelcontextprotocol/servers/issues/3471/comments, review_comments_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3471/comments, review_comment_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}, author_association: NONE, node_id: PR_kwDONRaG_87ICEMv, merge_commit_sha: eb5e80f85012d5c8ccecf5b72a231b084758d57d, _links.self.href: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3471, _links.html.href: https://github.com/modelcontextprotocol/servers/pull/3471, _links.issue.href: https://api.github.com/repos/modelcontextprotocol/servers/issues/3471, _links.comments.href: https://api.github.com/repos/modelcontextprotocol/servers/issues/3471/comments, _links.review_comments.href: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3471/comments, _links.review_comment.href: https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}, _links.commits.href: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3471/commits, _links.statuses.href: https://api.github.com/repos/modelcontextprotocol/servers/statuses/1d2b04c10117f47acd4091eb6393e2b7297f8d0d, head.label:

--- [list_pull_requests] csrc_QyYCiutu ---
### feat: add Node API — machine-native GIS processing MCP server with x402 payments | state: open | created_at: 2026-03-05T00:48:40Z

github.com/repos/modelcontextprotocol/servers/issues/comments{/number}, base.repo.issue_events_url: https://api.github.com/repos/modelcontextprotocol/servers/issues/events{/number}, base.repo.issues_url: https://api.github.com/repos/modelcontextprotocol/servers/issues{/number}, base.repo.keys_url: https://api.github.com/repos/modelcontextprotocol/servers/keys{/key_id}, base.repo.labels_url: https://api.github.com/repos/modelcontextprotocol/servers/labels{/name}, base.repo.languages_url: https://api.github.com/repos/modelcontextprotocol/servers/languages, base.repo.merges_url: https://api.github.com/repos/modelcontextprotocol/servers/merges, base.repo.milestones_url: https://api.github.com/repos/modelcontextprotocol/servers/milestones{/number}, base.repo.notifications_url: https://api.github.com/repos/modelcontextprotocol/servers/notifications{?since,all,participating}, base.repo.pulls_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls{/number}, base.repo.releases_url: https://api.github.com/repos/modelcontextprotocol/servers/releases{/id}, base.repo.stargazers_url: https://api.github.com/repos/modelcontextprotocol/servers/stargazers, base.repo.statuses_url: https://api.github.com/repos/modelcontextprotocol/servers/statuses/{sha}, base.repo.subscribers_url: https://api.github.com/repos/modelcontextprotocol/servers/subscribers, base.repo.subscription_url: https://api.github.com/repos/modelcontextprotocol/servers/subscription, base.repo.tags_url: https://api.github.com/repos/modelcontextprotocol/servers/tags, base.repo.trees_url: https://api.github.com/repos/modelcontextprotocol/servers/git/trees{/sha}, base.repo.teams_url: https://api.github.com/repos/modelcontextprotocol/servers/teams, base.repo.visibility: public, base.user.login: modelcontextprotocol, base.user.id: 182288589, base.user.node_id: O_kgDOCt2AzQ, base.user.avatar_url: https://avatars.githubusercontent.com/u/182288589?v=4, base.user.html_url: https://github.com/modelcontextprotocol, base.user.type: Organization, base.user.site_admin: false, base.user.url: https://api.github.com/users/modelcontextprotocol, base.user.events_url: https://api.github.com/users/modelcontextprotocol/events{/privacy}, base.user.following_url: https://api.github.com/users/modelcontextprotocol/following{/other_user}, base.user.followers_url: https://api.github.com/users/modelcontextprotocol/followers, base.user.gists_url: https://api.github.com/users/modelcontextprotocol/gists{/gist_id}, base.user.organizations_url: https://api.github.com/users/modelcontextprotocol/orgs, base.user.received_events_url: https://api.github.com/users/modelcontextprotocol/received_events, base.user.repos_url: https://api.github.com/users/modelcontextprotocol/repos, base.user.starred_url: https://api.github.com/users/modelcontextprotocol/starred{/owner}{/repo}, base.user.subscriptions_url: https://api.github.com/users/modelcontextprotocol/subscriptions

--- [list_pull_requests] csrc_QyYCiutu ---
### Add Knowfun MCP to community servers | state: open | created_at: 2026-03-01T04:07:40Z

id: 3339950417, number: 3433, state: open, locked: false, title: Add Knowfun MCP to community servers, body: - Added Knowfun MCP server for AI-powered content generation
- Features: educational courses, visual posters, interactive games, and short films
- Available via NPM: npm install -g knowfun-mcp
- GitHub: https://github.com/MindStarAI/KnowFun-MCP



## Description

## Publishing Your Server

**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.

To publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).

## Server Details

- Server: 
- Changes to: 

## Motivation and Context


## How Has This Been Tested?


## Breaking Changes


## Types of changes

- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update

## Checklist

- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)
- [x] My changes follows MCP security best practices
- [x] I have updated the server's README accordingly
- [x] I have tested this with an LLM client
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have documented all environment variables and configuration options

## Additional context

, created_at: 2026-03-01T04:07:40Z, updated_at: 2026-03-01T04:08:48Z, user.login: duguyixiaono1, user.id: 2703461, user.node_id: MDQ6VXNlcjI3MDM0NjE=, user.avatar_url: https://avatars.githubusercontent.com/u/2703461?v=4, user.html_url: https://github.com/duguyixiaono1, user.type: User, user.site_admin: false, user.url: https://api.github.com/users/duguyixiaono1, user.events_url: https://api.github.com/users/duguyixiaono1/events{/privacy}, user.following_url: https://api.github.com/users/duguyixiaono1/following{/other_user}, user.followers_url: https://api.github.com/users/duguyixiaono1/followers, user.gists_url: https://api.github.com/users/duguyixiaono1/gists{/gist_id}, user.organizations_url: https://api.github.com/users/duguyixiaono1/orgs, user.received_events_url: https://api.github.com/users/duguyixiaono1/received_events, user.repos_url: https://api.github.com/users/duguyixiaono1/repos, user.starred_url: https://api.github.com/users/duguyixiaono1/starred{/owner}{/repo}, user.subscriptions_url: https://api.github.com/users/duguyixiaono1/subscriptions, draft: false, url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3433, html_url: https://github.com/modelcontextprotocol/servers/pull/3433, issue_url: https://api.github.com/repos/modelcontextprotocol/servers/issues/3433, statuses_url: https://api.github.com/repos/modelcontextprotocol/servers/statuses/978ec383aeb118087af62c84b4ed8d8fba84b8dd, diff_url: https://github.com/modelcontextprotocol/servers/pull/3433.diff, patch_url: https://github.com/modelcontextprotocol/servers/pull/3433.patch, commits_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3433/commits, comments_url: https://api.github.com/repos/modelcontextprotocol/servers/issues/3433/comments, review_comments_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3433/comments, review_comment_url: https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}, author_association: NONE, node_id: PR_kwDONRaG_87HE5lR, merge_commit_sha: 17e313b0787a4dd9bf87d7a11b601c3c32ee687e, _links.self.href: https://api.github.com/repos/modelcontextprotocol/servers/pulls/3433, _links.html.href:

Transformed JSON

Often agents do not strictly need the exact JSON representation, but rather require some information inside the JSON. Gatana transforms any JSON in structuredOutput to a representation which is more efficient for the our model to work with.

If this is not acceptable, JSON compression can be disabled on a per-server basis. This will disable compression completely for a request if the tool result contains structured content (JSON). You can also disable compression on a per-request basis, see Controlling below.

Other Content Types

Compression is completely disabled for any request and the original content is passed through verbatim, if any non-JSON or non-text content type is present.

Compression

With compression is meant the splitting of the original content into several small chunks, ideally with a summary, extracted from e.g. a Markdown header. These chunks are the units will be returned later when searching through the output.

Gatana automatically detects the data type of the tool output and picks the an approriate compression method:

ContentMethod
MarkdownSplit by heading hierarchy (H1–H4), preserving code blocks as atomic units and building hierarchical section titles like "API Reference > Authentication > OAuth Flow".
Plain textSplit by blank lines into natural sections. If that doesn't produce reasonable chunks, falls back to fixed-size groups of 20 lines with overlap.
JSONParsed and flattened into natural-language text. Arrays of objects produce one chunk per item. Nested objects become dot-path key-value pairs (e.g. server.host: prod-01).

Indexing

Since no single search method works well for all queries and data, several different methods are combined their result merged using Reciprocal Rank Fusion (RRF).Fuzzy matching corrects typos but ignores meaning. Vector search captures semantics but is imprecise on exact names. Gatana combines four complementary layers and

LayerScenario
Stemming"caching" matches "cached", "caches", "cache"
Substring"useEff" finds "useEffect", "authenticat" finds "authentication"
Similarity"kuberntes" matches "kubernetes", "autentication" matches "authentication"
Semantic†‡"how to authenticate" matches a chunk about "OAuth 2.0 token exchange"

† The semantic meaning is extracted using an AI model running exclusively on Gatana infrastructure. Your data ever leaves our infrastructure. ‡ The embedding is done asynchronously

Searching

Gatana provides build-in tools available in the Gateway to find the desired output:

ToolDescription
searchSearch across all compressed outputs. Accepts an array of queries in one call, with optional filters by source tool or source ID.
list_indexed_resultsList all compressed outputs from the last hour, with section titles and sizes.
list_chunk_titlesList all section titles for a specific source_id
get_chunk_spanRetrieve a span of chunks adjacent to a specific chunk by its reference ID. Use this when you need to see the context around a particular chunk.

Controlling

Output compression has three levels of configuration:

LevelSettingDescription
OrganizationAllow Output CompressionMaster switch that enables compression for the entire organization
OrganizationSemantic CompressionEnables semantic search across compressed outputs (uses a local model in Gatana infrastructure)
ServerEnable Output CompressionToggle compression on or off per server
ServerCompression ThresholdMinimum response size before compression activates (default: 8192 bytes, minimum: 1024 bytes)
Request_meta["ai.gatana/no-compression"]Set to true on a tools/call request to skip compression for that call

Responses smaller than the threshold pass through unchanged. Error responses are never compressed.

Confidentiality & Expiry

Compressed outputs are scoped by user and are ephemeral. They expire after 1 hour and are automatically cleaned up.

Credit

This feature is inspired by Mert Köseoğlu's claude-context-mode

On this page