Refract
Refract
Reduziert bis zu 98 % der Tokens, die Ihre KI-Agenten bei der Nutzung von MCP-Tools verbrauchen – ohne dabei etwas zu verlieren.
Was sich tatsächlich ändert
Server | Tools | Vorher | Nachher | Reduzierung |
filesystem (Anthropic) | 14 | 1.892 Tok | 236 Tok | −88 % |
sequential-thinking | 1 | 926 Tok | 20 Tok | −98 % |
Google Calendar | 5 | 5.010 Tok | 660 Tok | −87 % |
Enterprise (Kalender + Gmail + Drive) | 12 | 8.649 Tok | 882 Tok | −90 % |
sample_app.js (JavaScript) | — | 799 Tok | 284 Tok | −64,5 % |
sample_app.ts (TypeScript) | — | 378 Tok | 266 Tok | −29,6 % |
ast_extractor.py (Python) | — | 3.633 Tok | 890 Tok | −75,5 % |
Weniger gesendete Tokens = niedrigere API-Kosten, schnellere Antworten. Und nichts geht verloren. Jede Überprüfung bestätigt, dass die Tools nach der Komprimierung zu 100 % nutzbar bleiben.
Reproduzieren Sie diese Zahlen selbst – jede Eingabe ist eine statische Testdatei im Repository, Tokens gezählt mit tiktoken cl100k_base:
python benchmarks/run_benchmark.py # the table above
python benchmarks/run_benchmark.py --json # machine-readable
python benchmarks/run_benchmark.py --fixture path/to/your_schemas.jsonRelated MCP server: Bifrost-MCP Gateway
Installation
Einzeiler (macOS / Linux) – installiert das Paket und konfiguriert Claude Desktop:
curl -sSL https://raw.githubusercontent.com/LoudiliMed/Refract/main/install-refract.sh | shDas Weiterleiten eines Skripts aus dem Internet an Ihre Shell verdient einen kurzen Blick: install-refract.sh auf GitHub ansehen. Es verwendet niemals sudo.
Oder direkt mit pip:
pip install refract-mcpOptionale Zusätze:
pip install refract-mcp[semantic] # semantic tool routing with embeddings
pip install refract-mcp[multilang] # JavaScript, TypeScript, JSX, TSX supportZwei Modi
Modus 1 – MCP-Proxy
Sitzt zwischen Ihrem Agenten und einem beliebigen MCP-Server. Komprimiert Tool-Schemata on the fly, sodass Ihr Agent nicht bei jeder Anfrage den gesamten Katalog laden muss.
Lokaler Unterprozess (stdio):
refract-proxy --target "npx @modelcontextprotocol/server-filesystem /tmp" --verboseRemote-HTTP/SSE-Server:
# --url implies SSE transport (explicit, recommended for remote endpoints)
refract-proxy --url https://my-mcp-server.com/sse
# or with --transport flag (auto-detection can be overridden)
refract-proxy --target https://my-mcp-server.com/sse --transport sseProxy-Flags:
Flag | Standard | Beschreibung |
| erforderlich | MCP-Ziel: stdio-Befehl, HTTP-URL oder JSON-Datei |
| — | Alias für |
| — | Remote-SSE/HTTP-Endpunkt – impliziert |
| auto | Erzwingt Transport zum Ziel: |
| 30 | Verbindungs-Timeout für SSE-Ziele (3× Wiederholungen) |
| stdio | Wie der Proxy Ihren Agenten bedient |
| 8080 | Proxy-Listener-Port im Modus |
| aus | Gibt Token-Anzahlen pro Anfrage aus |
| WARNING | DEBUG / INFO / WARNING / ERROR |
Zu Claude Desktop hinzufügen:
{
"mcpServers": {
"my-server-via-refract": {
"command": "/path/to/refract-proxy",
"args": [
"--target",
"npx @modelcontextprotocol/server-filesystem /path/to/folder",
"--verbose"
]
}
}
}Für einen entfernten MCP-Server (SSE):
{
"mcpServers": {
"remote-via-refract": {
"command": "/path/to/refract-proxy",
"args": ["--url", "https://my-mcp-server.com/sse"]
}
}
}refract-wrap-all – alle Server auf einmal umschließen
Anstatt Einträge einzeln zu bearbeiten (oder refract-install pro Server auszuführen), überschreibt refract-wrap-all alle stdio-Server in claude_desktop_config.json, um sie in einem einzigen Befehl durch refract-proxy zu leiten:
# Preview what would change — writes nothing
refract-wrap-all --dry-run
# Wrap every stdio server not already going through refract
refract-wrap-all
# Restore the original commands
refract-wrap-all --unwrapBeispiel: Dieser Eintrag
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "/tmp"],
"env": {"MY_VAR": "1"}
}
}
}wird zu
{
"mcpServers": {
"filesystem": {
"command": "/path/to/refract-proxy",
"args": ["--stdio-cmd", "npx @modelcontextprotocol/server-filesystem /tmp"],
"env": {"MY_VAR": "1"}
}
}
}Garantien:
Vor jedem Schreibvorgang wird ein Backup der Konfiguration erstellt (
claude_desktop_config.json.bak, dann.bak2,.bak3… – ein vorhandenes Backup wird niemals überschrieben).env,cwdund alle anderen Serverfelder bleiben erhalten.Server, die bereits über
refract-proxyoderrefract-serverlaufen, werden übersprungen (bereits umschlossen).Remote-SSE/HTTP-Server (
url-Einträge) werden übersprungen – nur stdio-Server werden umschlossen.--unwrapist eine exakte Rundreise: Umschließen und dann Entschließen stellt jeden ursprünglichen Befehl, jedes Argument und jedes Feld wieder her.
Von refract-proxy unterstützte Transporte
Flag | Wert | Beschreibung |
| Streamable HTTP | Aktueller Standard (MCP-Spezifikation 2025-03-26). Für entfernte MCP-Server verwenden. |
| SSE | Legacy-Transport, aus Kompatibilitätsgründen beibehalten. Verwenden, wenn der Server Streamable HTTP nicht unterstützt. |
| stdio-Unterprozess | Lokaler Befehl (Standard, wenn |
(weglassen) | automatische Erkennung | Wird aus |
Sowohl sse als auch http erfordern eine HTTP(S)-URL in --target.
# Connect to a remote MCP server via Streamable HTTP (recommended)
refract-proxy --target "https://my-mcp-server.com/mcp" --transport http
# Connect via SSE (legacy)
refract-proxy --target "https://my-mcp-server.com/sse" --transport sse
# Local subprocess (auto-detected, --transport stdio optional)
refract-proxy --target "npx @modelcontextprotocol/server-filesystem /tmp"Modus 2 – MCP-Server
Macht Ihre Codebasis als MCP-Server zugänglich. Ihr Agent kann ein Repository indizieren, komprimierten Dateikontext abrufen, bestimmte Funktionen erweitern, Auswirkungen analysieren, Breaking Changes erkennen und Sicherheitsrisiken kartieren.
refract-server --root /path/to/your/repoZu Claude Desktop hinzufügen:
{
"mcpServers": {
"refract-code": {
"command": "/path/to/refract-server",
"args": ["--root", "/path/to/your/repo"]
}
}
}Wie es funktioniert, ohne Fachjargon
Stellen Sie sich eine Bibliothek mit 50 Büchern vor.
Ohne Refract: Ihr Agent erhält bei jeder Frage eine detaillierte Zusammenfassung aller 50 Bücher, selbst wenn die Antwort nur eines davon benötigt.
Mit Refract: Ihr Agent erhält zunächst eine Liste der Titel (das Inhaltsverzeichnis). Sobald er weiß, welches Buch er braucht, erhält er nur den Inhalt dieses Buches.
Technisch gesehen:
Das Inhaltsverzeichnis (immer gesendet): nur Tool-Namen und eine kurze Beschreibung von jedem.
Das Detail (nur bei Bedarf gesendet): die vollständige Beschreibung des tatsächlich verwendeten Tools, alles, was für die korrekte Verwendung erforderlich ist, nicht mehr.
Die Überprüfung: Nach jeder Komprimierung prüft Refract automatisch, ob nichts Wichtiges entfernt wurde. Bei Zweifeln wird die Vollversion gesendet, anstatt ein Risiko einzugehen.
An diesem Prozess ist kein KI-Modell beteiligt. Er ist vollautomatisch, schnell und deterministisch.
MCP-Proxy-Tools
Tool | Was es tut |
Komprimierung | Komprimiert Tool-Schemata on the fly, bis zu 98 % Reduzierung |
Signalprüfung | Überprüft den aufrufbaren Vertrag nach jeder Komprimierung |
Semantisches Routing | Identifiziert das richtige Tool mithilfe von Embeddings (optional) |
Prompt-Caching | Injiziert Anthropic cache_control für wiederholte Anfragen |
MCP-Server-Tools
Tool | Eingabe | Ausgabe |
index_repo | Repository-Pfad | Aggregiertes Inhaltsverzeichnis aller Python-, JS-, TS-Dateien |
get_compressed | Dateipfad | Komprimierte Struktur + Token-Statistiken |
expand | Dateipfad + Funktionsnamen | Wörtlicher Quellcode + Abhängigkeitskontext |
blast_radius | Dateipfad + Funktionsname | Alle Funktionen, die brechen, wenn sich das Ziel ändert |
semantic_diff | Dateipfad + alter Quellcode + neuer Quellcode | Breaking Changes vs. reine Änderungen des Rumpfs |
semantic_diff_branches | Repository-Pfad + Datei + Funktion + Basis-/Kopf-Git-Referenzen | semantic_diff einer Funktion zwischen zwei Branches/Commits |
security_surface | Repository-Pfad | Karte gefährlicher Aufrufe (subprocess, eval, pickle, requests) |
Repository-Integritätsprüfung
refract-status --root /path/to/repo
refract-status --root /path/to/repo --jsonFlag | Beschreibung |
| Zu analysierender Pfad (Standard: aktuelles Verzeichnis) |
| Maschinenlesbare Ausgabe |
Zeigt: Dateien pro Sprache, rohe vs. komprimierte Tokens, indizierte Funktionen/Klassen, gefährliche Aufrufe nach Kategorie, Sprachen ohne tree-sitter-Unterstützung.
blast_radius
Fragen Sie Claude, welche Funktionen brechen, wenn Sie eine Zielfunktion ändern.
Beispielergebnis:
{
"target": "authenticate",
"direct_callers": ["login_user"],
"all_impacted": ["login_user", "verify_session", "admin_access"],
"impacted_count": 3,
"risk_level": "MEDIUM"
}Risikostufen: NIEDRIG (0 bis 2 betroffen), MITTEL (3 bis 5), HOCH (6 oder mehr).
semantic_diff
Erkennt Breaking Changes in der API durch den Vergleich von Funktionsschnittstellen, nicht von Rümpfen. Verwenden Sie es als CI-Gate.
Beispielergebnis:
{
"breaking": ["authenticate"],
"body_only": ["logout"],
"added": ["new_function"],
"removed": [],
"unchanged": ["hash_password"],
"is_breaking": true
}Wenn is_breaking wahr ist, ändert der PR die öffentliche API und muss überprüft werden.
security_surface
Kartiert jede Funktion, die gefährliche Primitive in Ihrem Repository aufruft.
HOCHES Risiko: subprocess, os.system, eval, exec, pickle, ctypes
MITTLERES Risiko: open (Schreibmodus), socket, requests, httpx, urllib
Beispielergebnis:
{
"high_risk": [
{
"file": "src/llm_client.py",
"function": "run_command",
"calls": ["subprocess.run"]
}
],
"summary": {
"high_risk_count": 1,
"medium_risk_count": 3,
"total_functions_scanned": 87,
"clean_files": 8
}
}Unterstützte Sprachen
Python (über das ast-Modul), JavaScript, TypeScript, JSX, TSX (über tree-sitter, optional mit pip install refract-mcp[multilang]).
Die Sprache wird automatisch anhand der Dateierweiterung erkannt. Graceful Fallback, wenn tree-sitter nicht installiert ist.
Integriertes Anthropic-Caching
Refract integriert sich in das Anthropic-Prompt-Caching. as_anthropic_tools() markiert den komprimierten Katalog automatisch als cacheable, was die Kosten bei wiederholten Anfragen weiter senkt.
Beispiel über 30 Tage, 100 Anfragen pro Tag, 5.000 Tokens an Schemata:
Szenario | Kosten |
Ohne Refract, ohne Cache | 45,00 € |
Mit Refract + Cache | 1,49 € |
Fehlerbehebung
"Fehler beim Erzeugen des Prozesses: Datei oder Verzeichnis nicht gefunden" in Claude Desktop
Claude Desktop kann refract-proxy nicht in seinem PATH finden. Ermitteln Sie den absoluten Pfad und verwenden Sie ihn direkt:
which refract-proxyVerwenden Sie dann den vollständigen Pfad in claude_desktop_config.json:
{
"mcpServers": {
"my-tool-via-refract": {
"command": "/full/path/to/refract-proxy",
"args": [
"--target",
"npx @modelcontextprotocol/server-filesystem /path/to/folder"
]
}
}
}Funktioniert mit
Claude Desktop, Cursor, jedem Client, der dem MCP-Standard folgt, jedem vorhandenen MCP-Server.
Lizenz
MIT – kostenlos nutzbar, auch kommerziell.
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA proxy server that wraps existing MCP servers to significantly reduce token consumption by compressing tool descriptions into a two-step interface. It enables users to integrate extensive toolsets without exceeding context limits or incurring high API costs.106Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnterprise-grade dynamic MCP proxy that eliminates token bloat by lazy-loading tool schemas based on semantic intent, enabling efficient orchestration of multiple backend tools from a single endpoint.MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP proxy that minifies tool schemas to reduce context tokens, supporting minify and defer modes for efficient tool access.
- AlicenseAqualityAmaintenanceMCP server and local proxy that compresses LLM prompts, tool output, and replies to cut token cost, with a quality gate that reverts any step that does not save. Exposes llmtrim_compress, llmtrim_compress_text, and llmtrim_stats.3213Mozilla Public 2.0
Related MCP Connectors
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/LoudiliMed/Refract'
If you have feedback or need assistance with the MCP directory API, please join our Discord server