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:
- Compression: Compression is applied transparently to
textandstructuredContent - Indexing: The content is indexed
- 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
| Tool | Without Compression | Compressed Summary | Search Results | Total With Compression | Reduction |
|---|---|---|---|---|---|
list_pull_requests | 253 KiB | 1.3 KiB | 78 KiB | 79.3 KiB | 68.7% |
list_commits | 50 KiB | 864 B | 693 B | 1.5 KiB | 97.0% |
get_repository_tree | 41 KiB | 3.5 KiB | 9.7 KiB | 13.2 KiB | 67.8% |
list_issues | 26 KiB | 1.5 KiB | — | 1.5 KiB | 94.2% |
| Total | 370 KiB | 95.5 KiB | 74.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
| Tool | Without Compression | Compressed Summary | Search Results | Total With Compression | Reduction |
|---|---|---|---|---|---|
web (fetch page) | 501 KiB | 706 B | 5.4 KiB | 6.1 KiB | 98.8% |
| Total | 501 KiB | 6.1 KiB | 98.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 moreWe 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:40ZHowever, 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:
| Content | Method |
|---|---|
| Markdown | Split by heading hierarchy (H1–H4), preserving code blocks as atomic units and building hierarchical section titles like "API Reference > Authentication > OAuth Flow". |
| Plain text | Split by blank lines into natural sections. If that doesn't produce reasonable chunks, falls back to fixed-size groups of 20 lines with overlap. |
| JSON | Parsed 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
| Layer | Scenario |
|---|---|
| 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:
| Tool | Description |
|---|---|
search | Search across all compressed outputs. Accepts an array of queries in one call, with optional filters by source tool or source ID. |
list_indexed_results | List all compressed outputs from the last hour, with section titles and sizes. |
list_chunk_titles | List all section titles for a specific source_id |
get_chunk_span | Retrieve 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:
| Level | Setting | Description |
|---|---|---|
| Organization | Allow Output Compression | Master switch that enables compression for the entire organization |
| Organization | Semantic Compression | Enables semantic search across compressed outputs (uses a local model in Gatana infrastructure) |
| Server | Enable Output Compression | Toggle compression on or off per server |
| Server | Compression Threshold | Minimum 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