Skip to main content
Glama
VMexicano
by VMexicano

๐Ÿงน token-filter-mcp

Your LLM is wasting 80% of its context window on noise. This fixes that.

npm version license node MCP

An MCP server that sits between your AI coding assistant and its tools, intelligently compressing outputs before they consume your precious context. Longer sessions. Better reasoning. Lower costs.


๐Ÿ’ธ The Problem Nobody Talks About

Every time your AI assistant runs a command, it dumps the entire raw output into its context window:

+ โœ“ src/auth.test.ts (14 tests)          โ† you don't need this
+ โœ“ src/utils.test.ts (8 tests)          โ† or this
+ โœ“ src/payments.test.ts (12 tests)      โ† or this
+ โœ“ src/users.test.ts (10 tests)         โ† or this
- โœ— src/orders.test.ts (3 tests)         โ† THIS is what matters
-   โ— should validate quantity > 0
-     Expected: error
-     Received: success

The vast majority of tool output is noise: tests that pass, git headers, resolution trees, progress bars, whitespace. ~80% of what goes into the context window is information the LLM will never act on.

That noise eats your context window, degrades reasoning quality, and costs you money.

Related MCP server: claw-tsaver

โšก The Solution

โŒ Without token-filter-mcp

  • Context fills up fast

  • LLM loses track of conversation

  • Paying for tokens it ignores

  • Sessions hit context limit early

  • Reads 14 lines to find 1 failure

โœ… With token-filter-mcp

  • Context stays lean

  • LLM maintains coherence longer

  • Only paying for useful tokens

  • Sessions last significantly longer

  • Reads exactly the failure, acts immediately

token-filter-mcp intercepts every tool output and applies intelligent, context-aware filtering โ€” returning only what the LLM actually needs to make decisions.

No configuration needed. No changes to your workflow. Just plug it in.

๐ŸŽฏ Real Results

Average savings across real-world tool outputs: 60-90% fewer tokens consumed

๐Ÿง  How It Works

flowchart LR
    A[๐Ÿค– LLM Agent] -->|tool call| B[๐Ÿงน token-filter-mcp]
    B -->|execute| C[๐Ÿ’ป System]
    C -->|raw output| B
    B -->|filtered output| A

    style B fill:#7c3aed,stroke:#5b21b6,color:#fff
    style A fill:#2563eb,stroke:#1d4ed8,color:#fff
    style C fill:#059669,stroke:#047857,color:#fff

1๏ธโƒฃ Detect โ€” Identifies what command was run (test runner? git? linter?)

2๏ธโƒฃ Execute โ€” Runs the command and captures full output

3๏ธโƒฃ Filter โ€” Applies the optimal strategy for that command type

4๏ธโƒฃ Verify โ€” Ensures no errors or actionable info was removed

5๏ธโƒฃ Return โ€” Sends compressed output to the LLM

๐ŸŽจ Contextual Detection

The server doesn't blindly truncate. It understands what you ran and applies the right strategy:

It detects...

And does this...

๐Ÿงช Test runners (jest, vitest, pytest, cargo test, go test)

Strips passing tests. Shows only failures with location + expected/received

๐Ÿ“Š git status

Converts to M 3 | A 1 | D 0 | ? 2 + file list

๐Ÿ“ git diff

Removes repeated headers, keeps only hunks with ยฑ3 context

๐Ÿ“œ git log

One-liner: abc1234 feat: add auth (2h ago) ร— 15 max

๐Ÿ” Linters (tsc, eslint, biome, ruff)

Groups errors by rule/file, omits clean files

๐Ÿ“ฆ Package installs

Returns ok + 847 packages instead of the resolution tree

โ“ Unknown commands

Conservative: deduplicate + truncate to 100 lines

๐Ÿ›ก๏ธ Zero Information Loss

The #1 design principle: never hide an error.

โœ… Lines matching error patterns (FAIL, Error:, TypeError, panic...) โ†’ NEVER removed
โœ… Non-zero exit codes โ†’ full error output preserved
โœ… Parser can't understand format โ†’ returns raw output
โœ… passthrough mode available for when you need everything

๐Ÿš€ Installation

Add this to your MCP client config โ€” that's it:

{
  "mcpServers": {
    "token-filter": {
      "command": "npx",
      "args": ["-y", "token-filter-mcp"]
    }
  }
}
npm install -g token-filter-mcp
{
  "mcpServers": {
    "token-filter": {
      "command": "token-filter-mcp"
    }
  }
}

๐Ÿ“ Where does the config go?

Client

Config file

Kiro

.kiro/settings/mcp.json or ~/.kiro/settings/mcp.json

Claude Desktop

claude_desktop_config.json

Cursor

.cursor/mcp.json

Any MCP client

Wherever it reads mcpServers config

๐Ÿ”ง 7 Tools, One Purpose

{ "command": "npm test", "filter_level": "normal" }

Level

Behavior

normal

Smart filtering with sensible defaults

aggressive

50% additional reduction for tight context budgets

passthrough

Raw output when you need everything (capped at 200KB)

{ "path": "src/app.ts", "mode": "signatures" }

Mode

What it returns

full

Content minus blank blocks, license headers, grouped imports

signatures

Only declarations โ€” no implementation bodies

relevant

Only sections matching focus pattern with ยฑ10 lines context

Supports: TypeScript, JavaScript, Python, Rust, Go

{ "pattern": "useState", "path": "src", "group_by": "file", "max_results": 20 }

Results grouped by file, deduplicated, with context lines. Uses ripgrep when available.

{ "command": "npm test" }

All pass:

[PASS] 47/47 tests passed (3.2s)

Failures:

[PASS] 44/47 tests passed
[FAIL] 3 failures:

1. src/auth.test.ts:42 โ€” "should refresh token"
   Expected: 200
   Received: 401

2. src/payments.test.ts:89 โ€” "should validate 3DS"
   TypeError: Cannot read property 'status' of undefined
   at processPayment (src/payments.ts:156)

Auto-detects: Jest, Vitest, pytest, cargo test, go test

{ "operation": "status" }

Operation

What you get

status

M 3 | A 1 | D 0 | ? 2 + file list

diff

Only hunks with changes, no header spam

log

abc1234 feat: add auth (2h ago) ร— 15

commit

ok abc1234

push

ok main โ†’ origin/main

pull

ok +3 files, 47 insertions

{ "operation": "dump", "device": "emulator-5554" }

Operation

What it does

dump

Compact accessibility tree: resource-id, text, clickable, tap-center

tap

Resolve resource_id/text/content_desc to its bounds center and tap it

tap_xy

Tap raw coordinates (last resort, e.g. a map/canvas view)

key

Symbolic KEYCODE_* keyevent only โ€” raw numeric codes are rejected

type

Send text to the focused field

swipe

Swipe from (start_x,start_y) to (end_x,end_y)

long_press

Long-press a locator (resource_id/text/content_desc) or raw x/y

install / uninstall

Install an APK from a local path / remove by package name

logcat

Recent logcat output pre-filtered to noteworthy lines (error/warning/fatal/assert level, plus known failure patterns)

Replaces the "screenshot โ†’ vision โ†’ guess coordinates โ†’ tap โ†’ screenshot again" loop with cheap structured text.

{ "tool": "smart_git", "limit": 100 }

Aggregates ~/.config/token-filter-mcp/metrics.jsonl (plus rotated history) into invocation count, raw vs filtered chars, overall savings %, and a per-tool breakdown sorted by chars saved โ€” without reading the JSONL file by hand.

โš™๏ธ Configuration (Optional)

Works great out of the box. Customize only if you want to.

{
  "defaults": {
    "max_output_lines": 100,
    "test_show_passes": false,
    "git_log_max": 15,
    "diff_context_lines": 3,
    "dedup_threshold": 3
  },
  "commands": {
    "my-custom-script.sh": { "filter_level": "passthrough" }
  },
  "metrics": { "enabled": true }
}

Same schema. Project config overrides global. Global overrides built-in defaults.

๐Ÿ“Š Built-in Observability

When enabled, every invocation is logged to ~/.config/token-filter-mcp/metrics.jsonl:

{
  "tool": "smart_test",
  "command": "npm test",
  "rawChars": 5200,
  "filteredChars": 480,
  "savingsPercent": 90.7,
  "strategy": "test_result_filter",
  "filterDurationMs": 3,
  "timestamp": "2026-06-30T15:30:00Z"
}

Auto-rotated at 5MB, max 5 history files.

What it tracks:

  • Real savings per tool and command type

  • Which filters are most effective

  • Passthrough re-invocations (signal that a filter might be too aggressive)

Query it anytime with the metrics_summary tool instead of reading the JSONL by hand.

๐Ÿ›ก๏ธ Guarantees

Guarantee

Detail

๐Ÿ”’ Zero loss

Errors, test failures, and changes are never filtered out

โšก < 50ms overhead

Filtering adds negligible latency vs raw execution

๐Ÿช‚ Safe fallback

Unknown commands get conservative treatment, not silence

๐Ÿ”Œ No lock-in

Standard MCP protocol โ€” works with any compliant client

๐Ÿ  No network

Everything runs locally over stdio. Your code never leaves your machine

๐Ÿ› ๏ธ Development

git clone https://github.com/VMexicano/token-filter-mcp
cd token-filter-mcp
npm install
npm run build
npm test        # 57 tests, all passing

The best token is the one you never spend.

Made with ๐Ÿ’– by Victor Mexicano

Available Tools

5 tools
filtered_grepA

Search for regex patterns in a directory with results grouped by file or match, deduplicated with [ร—N] prefix. Uses ripgrep when available, falls back to native recursive search.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDirectory path to search in (required)
excludeNoGlob pattern for files/dirs to exclude (default: node_modules,dist,.git)
includeNoGlob pattern for files to include (default: *)
patternYesRegex pattern to search for (required)
group_byNoGroup results by file or by match content (default: file)
max_resultsNoMaximum number of results to return (default: 20)
context_linesNoNumber of context lines around each match (default: 2)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It clearly discloses deduplication with '[ร—N] prefix', grouping behavior, and fallback mechanism from ripgrep to native search. This goes beyond basic tool purpose. However, it does not mention potential performance implications, permissions needed, or encoding/error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. The first sentence front-loads the core action and key features. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema, the description explains grouping and deduplication but does not detail the return format (e.g., structure of results, how file paths are presented). It also omits default parameter behaviors for exclude/include/max_results/context_lines beyond the schema. Adequate but has gaps for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 7 parameters. The description adds meaning beyond schema by explaining deduplication and grouping, which relates to the 'group_by' and 'pattern' parameters. However, it does not add specific details about each parameter (e.g., what 'exclude' globs are defaulted). Baseline 3 is appropriate due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for regex patterns in a directory' with specific verb ('Search') and resource ('regex patterns in a directory'). It adds distinctive behaviors: grouping, deduplication, and fallback to ripgrep. Sibling tools like filtered_read and filtered_shell have different purposes, making this tool distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives. It implies usage for regex searching but offers no guidance on when not to use it or comparisons with sibling tools like filtered_read or filtered_shell. However, the context of sibling tools suggests the purpose is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

filtered_readA

Read a file with intelligent reduction. Modes: "full" (collapses blanks, licenses, imports), "signatures" (extracts declarations only), "relevant" (focus pattern with ยฑ10 lines context).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoReading mode: full (optimized), signatures (declarations only), or relevant (focus-based)
pathYesAbsolute or relative path to the file to read
focusNoPattern to search for in relevant mode (string or regex)
end_lineNoEnd line number (1-based, inclusive) for partial reads
start_lineNoStart line number (1-based) for partial reads

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explains the three modes and their behaviors (e.g., collapsing blanks for 'full', extracting declarations for 'signatures', focusing with ยฑ10 lines for 'relevant'), but does not mention default behavior when mode is omitted or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first clearly states the purpose, second lists modes. No redundant words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers modes well but does not explain interactions between parameters (e.g., start_line/end_line and modes), default mode if unspecified, or behavior with directories. Given no output schema and 5 parameters, additional context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds minor detail beyond the schema (e.g., '+10 lines context' for relevant mode), but the schema already provides good descriptions for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a file with intelligent reduction and lists three distinct modes, making the purpose specific and differentiating it from sibling tools like filtered_grep and filtered_shell.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (e.g., 'for reading files with reduction') but does not explicitly state when to use this tool versus alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

filtered_shellA

Execute a shell command with intelligent output filtering. Detects command type and applies the optimal filter strategy to reduce token consumption while preserving all actionable information (errors, failures, changes).

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory
commandYesCommand to execute
timeout_msNoTimeout in milliseconds
filter_levelNoFilter aggressiveness

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full burden. It discloses the filtering strategy and preservation of actionable info, but fails to mention potential side effects of arbitrary command execution (e.g., destructive changes, required permissions, or security risks). This is a significant gap for a command execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise โ€“ two sentences front-loaded with the core action and key benefit. Every phrase contributes meaning without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and benefit but lacks details on parameter usage (especially filter_level), output format (no output schema), and safety warnings. It is minimally adequate for a 4-parameter tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds context about filtering but does not elaborate on the filter_level enum values or how to choose them. It adds some value but not enough to exceed baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a shell command with intelligent output filtering. It specifies the key differentiator (detects command type, applies optimal filter) and distinguishes from siblings like filtered_grep (focused on grep) and smart_git (git-specific).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for general shell commands with filtering to reduce tokens, but provides no explicit guidance on when to use this tool versus alternatives like filtered_grep or smart_git. No when-not or exclusion criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smart_gitA

Execute git operations with compact, optimized output. Supports: status (compact summary), diff (filtered hunks), log (one-line format), and action commands (commit/push/pull/add/branch with minimal confirmation).

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory
argsNoAdditional arguments for the git command
operationYesGit operation to execute
filter_levelNoFilter aggressiveness. Use "passthrough" to get the full raw git output without filtering

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides behavioral context: compact output, filtered hunks, one-line log, minimal confirmation. This goes beyond the input schema by describing output formats and confirmation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single paragraph with a clear list of operations. Every sentence adds value, and the key information is front-loaded: 'Execute git operations with compact, optimized output'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the variety of operations and no output schema, the description covers each operation's output format. It could mention more about confirmation prompts or error handling, but overall it is complete enough for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description adds significant meaning: it explains each operation's output style (e.g., 'compact summary' for status, 'filtered hunks' for diff) and notes the filter_level parameter's 'passthrough' for raw output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute git operations with compact, optimized output' and lists specific operations (status, diff, log, commit, etc.), distinguishing this tool from siblings like filtered_shell by emphasizing optimized output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (for git operations needing compact output) by listing supported operations and their formats. However, it does not explicitly exclude usage or mention alternatives, though siblings hint at different use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smart_testA

Execute a test command and return structured, actionable output. Shows only failures by default (name, location, error, expected/received, truncated stack). Detects Jest/Vitest/pytest/cargo-test/go-test automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory
commandYesTest command to execute
show_passesNoInclude individual passing tests in output
filter_levelNoFilter aggressiveness. Use "passthrough" to get the full raw test output without filtering
show_coverageNoInclude coverage table if present

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool shows only failures by default, includes fields like expected/received and truncated stack, and auto-detects test frameworks. However, it does not mention whether the command execution is read-only or could have side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences covering purpose, default behavior, and auto-detection. Every word adds value, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema and no annotations, the description provides solid context: default output, auto-detection, and structured format hints. It could be more explicit about return structure, but is adequate for an agent to invoke correctly in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description adds minimal extra parameter context beyond the schema (e.g., default show_passes behavior is implied). As a result, it meets the baseline but does not significantly enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a test command and returns structured, actionable output. It specifies default behavior (shows only failures) and lists detected test frameworks, distinguishing it from sibling tools like filtered_grep or smart_git which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for running test commands, but does not explicitly state when to use this tool versus alternatives like filtered_shell for arbitrary commands or when to prefer other tools. The context from sibling names helps but the description lacks explicit usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.2
    • First observedfiltered_grep
    • First observedfiltered_read
    • First observedfiltered_shell
    • First observedsmart_git
    • First observedsmart_test

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct operation: grep (search), read (file reading), shell (command execution), git (version control), test (test execution). No overlap in purpose.

Naming Consistency3/5

Tools use two different prefixes: 'filtered_' for grep/read/shell and 'smart_' for git/test. While each group is internally consistent, the mix of prefixes reduces overall consistency.

Tool Count5/5

With 5 tools, the server covers essential development operations without being bloated. Each tool serves a clear, non-redundant purpose.

Completeness4/5

The tool set covers search, reading, shell execution, git, and testingโ€”core developer tasks. Minor gaps like file writing or editing are acceptable given the focus on token-efficient inspection.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A meta-server that aggregates multiple MCP servers into a single interface, reducing token usage by 98%+ through progressive tool discovery and direct code execution that processes data between tools without consuming context window space.
    16
    10
    Apache 2.0
  • A
    license
    C
    quality
    A
    maintenance
    An MCP server that filters and compresses context by 80-90% before sending to an LLM, using code knowledge graphs and compression.
    20
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that reduces AI API costs by up to 97% through token measurement, compression, caching, and pruning, all without changing prompts.
    10
    1
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VMexicano/token-filter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server