Skip to main content
Glama

Reract

CI

Reract MCP server

Reuce hasta el 98 % de los tokens que tus agentes de IA gastan al usar herramientas MCP — sin perder nada.


Lo que realmente cambia

Servidor

Herramientas

Antes

Después

Reducción

filesystem (Anthropic)

14

1892 tok

236 tok

−88 %

sequential-thinking

1

926 tok

20 tok

−98 %

Google Calendr

5

5010 tok

660 tok

−87 %

Entrprise (Cal + Gmail + Drve)

12

8649 tok

882 tok

−90 %

sample_ap.js (JvScript)

799 tok

284 tok

−64.5 %

sample_ap.ts (TypeScript)

378 tok

266 tok

−29.6 %

ast_extractor.py (Pyhon)

3633 tok

890 tok

−75.5 %

Menos tokens envíados = facturas de API más bajas, respuestas más rápidas. Y no se pierde nada. Cada comprobación confirma que las herramientas siguen siendo 100% usables tras la compresión.

Reproduce estos números tú mismo — cada entrada es un fijo estático en el repo, tokens contados con tiktoken cl00k_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.json

Related MCP server: Bifrost-MCP Gateway

Instalar

Un a linea (macOS / Linux) — instala el paquete y configura Claude Desktop:

curl -sSL https://raw.githubusercontent.com/LoudiliMed/Refract/main/install-refract.sh | sh

Pasar un script de internet a tu shell merece un vistazo rápido primero: inspectar instalar-refract.sh en GitHub. Nunca usa sudo.

O directamente con pip:

pip install refract-mcp

Extras opcionales:

pip install refract-mcp[semantic]   # semantic tool routing with embeddings
pip install refract-mcp[multilang]  # JavaScript, TypeScript, JSX, TSX support

Dos modos

Modo 1 — Proxy MCP

Se interpone entre tu agente y cualquier servidor MCP. Comprie los esquemas de las herramientas sobre la marcha para que tu agente no cargue el catálogo completo en cada petición.

Subproceso local (stdio):

refract-proxy --target "npx @modelcontextprotocol/server-filesystem /tmp" --verbose

Servidor remoto HTTP/SSE:

# --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 sse

Flags del proxy:

Flag

Defecto

Descripción

--target URL

requerido

Destino MCP: comando stdio, URL HTTP o archivo JSON

--stdio-cmd CMD

Alias para --target para comandos stdio

--url URL

Punto final SSE/HTTP remoto — implica --transport sse

--transport {stdio,sse,http}

auto

Forzar transporte al destino: stdio, sse (heredado) o http (Streamable HTTP)

--sse-timeout SECONDS

30

Tiempo de espera de conexión para destinos SSE (reintentos 3×)

--mode {stdio,http}

stdio

Cómo sirve el proxy a tu agente

--port PORT

8080

Puerto de escucha del proxy en --mode http

--verbose

off

Imprime conteos de tokens por petición

--log-level

WARNING

DEBUG / INFO / WARNING / ERROR

Agrégalo a Claude Desktop:

{
  "mcpServers": {
    "my-server-via-refract": {
      "command": "/path/to/refract-proxy",
      "args": [
        "--target",
        "npx @modelcontextprotocol/server-filesystem /path/to/folder",
        "--verbose"
      ]
    }
  }
}

Para un servidor MCP remoto (SSE):

{
  "mcpServers": {
    "remote-via-refract": {
      "command": "/path/to/refract-proxy",
      "args": ["--url", "https://my-mcp-server.com/sse"]
    }
  }
}

refract-wrap-all — envuelve todos los servidores a la vez

En lugar de editar las entradas una por una (o ejecutar refract-install por servidor), refract-wrap-all reescribe todos los servidores stdio en claude_desktop_config.json para que pasen por refract-proxy en un solo comando:

# 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 --unwrap

Ejemplo: esta entrada

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-filesystem", "/tmp"],
      "env": {"MY_VAR": "1"}
    }
  }
}

se convierte en

{
  "mcpServers": {
    "filesystem": {
      "command": "/path/to/refract-proxy",
      "args": ["--stdio-cmd", "npx @modelcontextprotocol/server-filesystem /tmp"],
      "env": {"MY_VAR": "1"}
    }
  }
}

Garantías:

  • Se hace una copia de seguridad de la configuración antes de cada escritura (claude_desktop_config.json.bak, luego .bak2, .bak3… — nunca se sobrescribe una copia existente).

  • env, cwd y cualquier otro campo del servidor se conservan.

  • Los servidores que ya pasan por refract-proxy o refract-server se saltan (already wrapped).

  • Los servidores remotos SSE/HTTP (entradas url) se saltan — solo se envuelven servidores stdio.

  • --unwrap es un viaje de ida y vuelta exacto: envolver y luego desenvolver restaura cada comando, argumentos y campos originales.

Transportes soportados por refract-proxy

Flag

Valor

Descripción

--transport http

Streamable HTTP

Estándar actual (especificación MCP 2025-03-26). Usar con servidores MCP remotos.

--transport sse

SSE

Transporte heredado, mantenido por compatibilidad. Usar si el servidor no soporta Streamable HTTP.

--transport stdio

stdio subprocess

Comando local (defecto cuando --target es un comando).

(omitir)

detección automática

Inferido de --target: URL HTTP → SSE, comando → stdio.

Tanto sse como http requieren una URL HTTP(S) en --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"

Modo 2 — Servidor MCP

Expone tu base de código como un servidor MCP. Tu agente puede indexar un repositorio, obtener contexto comprimido de archivos, expandir funciones específicas, analizar impacto, detectar cambios disruptivos y mapear riesgos de seguridad.

refract-server --root /path/to/your/repo

Agrégalo a Claude Desktop:

{
  "mcpServers": {
    "refract-code": {
      "command": "/path/to/refract-server",
      "args": ["--root", "/path/to/your/repo"]
    }
  }
}

Cómo funciona, sin tecnicismos

Imagina una biblioteca con 50 libros.

Sin Refract: tu agente recibe un resumen detallado de los 50 libros en cada pregunta, incluso si la respuesta solo necesita uno de ellos.

Con Refract: tu agente primero recibe una lista de títulos (el índice). Una vez que sabe qué libro necesita, solo recibe el contenido de ese libro.

Técnicamente:

El índice (siempre enviado): solo los nombres de las herramientas y una breve descripción de cada una.

El detalle (enviado solo cuando es necesario): la descripción completa de la herramienta realmente utilizada, todo lo necesario para usarla correctamente, nada más.

La verificación: después de cada compresión, Refract comprueba automáticamente que no se haya eliminado nada importante. Si hay alguna duda, envía la versión completa en lugar de arriesgarse.

Ningún modelo de IA está involucrado en este proceso. Es completamente automático, rápido y determinista.


Herramientas del proxy MCP

Herramienta

Qué hace

Compresión

Comprime los esquemas de las herramientas sobre la marcha, hasta un 98% de reducción

Verificación de señal

Verifica el contrato invocable después de cada compresión

Enrutamiento semántico

Identifica la herramienta correcta usando embeddings (optativo)

Caché de prompts

Inyecta cache_control de Anthropic para peticiones repetidas

Herramientas del servidor MCP

Herramienta

Entrada

Salida

index_repo

ruta del repo

índice agregado de todos los archivos Python, JS, TS

get_compressed

ruta del archivo

estructura comprimida + estadísticas de tokens

expand

ruta del archivo + nombres de funciones

fuente textual + contexto de dependencias

blast_radius

ruta del archivo + nombre de función

todas las funciones que se rompen si el objetivo cambia

semantic_diff

ruta del archivo + fuente antigua + fuente nueva

cambios disruptivos vs cambios solo de cuerpo

semantic_diff_branches

ruta del repo + archivo + función + referencias git base/head

semantic_diff de una función entre dos ramas/commits

security_surface

ruta del repo

mapa de llamadas peligrosas (subprocess, eval, pickle, requests)


Verificación de salud del repositorio

refract-status --root /path/to/repo
refract-status --root /path/to/repo --json

Flag

Descripción

--root PATH

Ruta a analizar (defecto: directorio actual)

--json

Salida legible por máquina

Muestra: archivos por lenguaje, tokens brutos vs comprimidos, funciones/clases indexadas, llamadas peligrosas por categoría, lenguajes sin soporte de tree-sitter.


blast_radius

Pide a Claude qué funciones se rompen si cambias una función objetivo.

Ejemplo de resultado:

{
  "target": "authenticate",
  "direct_callers": ["login_user"],
  "all_impacted": ["login_user", "verify_session", "admin_access"],
  "impacted_count": 3,
  "risk_level": "MEDIUM"
}

Niveles de riesgo: BAJO (de 0 a 2 afectadas), MEDIO (de 3 a 5), ALTO (6 o más).


semantic_diff

Detecta cambios disruptivos en la API comparando interfaces de funciones, no cuerpos. Úsalo como puerta de CI.

Ejemplo de resultado:

{
  "breaking": ["authenticate"],
  "body_only": ["logout"],
  "added": ["new_function"],
  "removed": [],
  "unchanged": ["hash_password"],
  "is_breaking": true
}

Si is_breaking es true, el PR cambia la API pública y debe ser revisado.


security_surface

Mapa cada función que llama a primitivas peligrosas en todo tu repositorio.

RIESGO ALTO: subprocess, os.system, eval, exec, pickle, ctypes

RIESGO MEDIO: open (modo escritura), socket, requests, httpx, urllib

Ejemplo de resultado:

{
  "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
  }
}

Lenguajes soportados

Python (mediante módulo ast), JavaScript, TypeScript, JSX, TSX (mediante tree-sitter, optativo con pip install refract-mcp[multilang]).

El lenguaje se detecta automáticamente de la extensión del archivo. Caída gaci si tree-sitter no est instalado.


Caché integradio de Anthropic

Refact se integra con el cché de prompts de Anthropic. as_anthropic_tols() marca automáticamente el catálogo comprimido como caable, reduciendo aú más ls costos en petiones repetidas.

Ejemplo en 30 días, 100 petiones al día, 5000 tokens de esquemas:

Escenario

Coste

Sin Refract, sin caché

$45.00

Con Refract + caché

$1.49


Solución de problemas

"Failed to spawn process: No such file or directory" en Claude Desktop

Claude Desktop no encuentra refract-proxy en su PATH. Encuentra la ruta absoluta y úsala directamente:

which refract-proxy

Luego usa la ruta completa en claude_desktop_config.json:

{
  "mcpServers": {
    "my-tool-via-refract": {
      "command": "/full/path/to/refract-proxy",
      "args": [
        "--target",
        "npx @modelcontextprotocol/server-filesystem /path/to/folder"
      ]
    }
  }
}

Funciona con

Claude Desktop, Cursor, cualquier cliente que siga el estándar MCP, cualquier servidor MCP existente.


Licencia

MIT — libre de usar, incluso comercialmente.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A 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.
    106
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enterprise-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
  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP proxy that minifies tool schemas to reduce context tokens, supporting minify and defer modes for efficient tool access.
  • A
    license
    A
    quality
    A
    maintenance
    MCP 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.
    3
    213
    Mozilla Public 2.0

View all related MCP servers

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.

View all MCP Connectors

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/LoudiliMed/Refract'

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