Skip to main content
Glama

Refract

CI

Refract MCP server

Сокращает до 98% токенов, которые ваши AI-агенты тратят на использование инструментов MCP — без потерь.


Что именно меняется

Сервер

Инструментов

До

После

Сокращение

filesystem (Anthropic)

14

1 892 ток

236 ток

−88%

sequential-thinking

1

926 ток

20 ток

−98%

Google Calendar

5

5 010 ток

660 ток

−87%

Enterprise (Cal + Gmail + Drive)

12

8 649 ток

882 ток

−90%

sample_app.js (JavaScript)

799 ток

284 ток

−64.5%

sample_app.ts (TypeScript)

378 ток

266 ток

−29.6%

ast_extractor.py (Python)

3 633 ток

890 ток

−75.5%

Меньше отправленных токенов = ниже счета за API и быстрее ответы. И ничего не теряется. Каждая проверка подтверждает, что инструменты остаются на 100% работоспособными после сжатия.

Воспроизведите эти числа самостоятельно — каждый входной файл статический фикстур в репозитории, токены подсчитаны с помощью 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.json

Related MCP server: Bifrost-MCP Gateway

Установка

Одной строкой (macOS / Linux) — устанавливает пакет и настраивает Claude Desktop:

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

Передача скрипта из интернета в оболочку требует беглого просмотра: посмотреть install-refract.sh на GitHub. Он никогда не использует sudo.

Или напрямую через pip:

pip install refract-mcp

Дополнительные возможности:

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

Два режима

Режим 1 — Прокси MCP

Располагается между вашим агентом и любым MCP-сервером. Сжимает схемы инструментов на лету, чтобы агент не загружал полный каталог при каждом запросе.

Локальный подпроцесс (stdio):

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

Удалённый 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

Флаги прокси:

Флаг

По умолчанию

Описание

--target URL

обязательный

Цель MCP: команда stdio, HTTP URL или JSON-файл

--stdio-cmd CMD

Псевдоним для --target для команд stdio

--url URL

Удалённая конечная точка SSE/HTTP — подразумевает --transport sse

--transport {stdio,sse,http}

auto

Принудительный транспорт к цели: stdio, sse (устаревший) или http (Streamable HTTP)

--sse-timeout SECONDS

30

Тайм-аут подключения для SSE-целей (3 повтора)

--mode {stdio,http}

stdio

Как прокси обслуживает вашего агента

--port PORT

8080

Порт прослушивания прокси в режиме --mode http

--verbose

выкл

Выводить количество токенов на каждый запрос

--log-level

WARNING

DEBUG / INFO / WARNING / ERROR

Добавление в Claude Desktop:

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

Для удалённого MCP-сервера (SSE):

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

refract-wrap-all — обёртка для всех серверов сразу

Вместо того чтобы редактировать записи по одной (или запускать refract-install для каждого сервера), refract-wrap-all переписывает все stdio-серверы в claude_desktop_config.json так, чтобы они проходили через refract-proxy одной командой:

# 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

Пример: эта запись

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

превращается в

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

Гарантии:

  • Резервная копия конфигурации создаётся перед каждой записью (claude_desktop_config.json.bak, затем .bak2, .bak3… — существующая резервная копия никогда не перезаписывается).

  • Поля env, cwd и любые другие поля сервера сохраняются.

  • Серверы, уже проходящие через refract-proxy или refract-server, пропускаются (already wrapped).

  • Удалённые SSE/HTTP-серверы (записи с url) пропускаются — обёртываются только stdio-серверы.

  • --unwrap — точная обратимая операция: wrap затем unwrap восстанавливает исходную команду, аргументы и поля.

Транспорты, поддерживаемые refract-proxy

Флаг

Значение

Описание

--transport http

Streamable HTTP

Текущий стандарт (спецификация MCP 2025-03-26). Используйте с удалёнными MCP-серверами.

--transport sse

SSE

Устаревший транспорт, оставлен для совместимости. Используйте, если сервер не поддерживает Streamable HTTP.

--transport stdio

stdio-подпроцесс

Локальная команда (по умолчанию, когда --target — команда).

(опущен)

автоопределение

Определяется по --target: HTTP URL → SSE, команда → stdio.

Оба sse и http требуют HTTP(S) URL в --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"

Режим 2 — MCP-сервер

Предоставляет вашу кодовую базу как MCP-сервер. Ваш агент может проиндексировать репозиторий, получить сжатый контекст файла, развернуть конкретные функции, проанализировать влияние, обнаружить критические изменения и нанести на карту риски безопасности.

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

Добавление в Claude Desktop:

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

Как это работает (без жаргона)

Представьте библиотеку с 50 книгами.

Без Refract: ваш агент получает подробное описание всех 50 книг на каждый вопрос, даже если ответу нужна только одна.

С Refract: агент сначала получает список названий (индекс). Как только он понимает, какая книга нужна, он получает только содержимое этой книги.

Технически:

Индекс (всегда отправляется): только названия инструментов и краткое описание каждого.

Детали (отправляются только при необходимости): полное описание используемого инструмента, всё необходимое для его правильного использования, ничего лишнего.

Проверка: после каждого сжатия Refract автоматически проверяет, что ничего важного не удалено. Если есть сомнения, отправляется полная версия — без риска.

В этом процессе не задействована ни одна AI-модель. Он полностью автоматический, быстрый и детерминированный.


Инструменты прокси MCP

Инструмент

Что делает

Сжатие

Сжимает схемы инструментов на лету, до 98% сокращения

Проверка сигнала

Проверяет вызываемый контракт после каждого сжатия

Семантическая маршрутизация

Определяет нужный инструмент с помощью эмбеддингов (опционально)

Кэширование подсказок

Вставляет Anthropic cache_control для повторяющихся запросов

Инструменты MCP-сервера

Инструмент

Вход

Выход

index_repo

путь к репозиторию

агрегированный индекс всех файлов Python, JS, TS

get_compressed

путь к файлу

сжатая структура + статистика токенов

expand

путь к файлу + имена функций

исходный код + контекст зависимостей

blast_radius

путь к файлу + имя функции

все функции, которые сломаются при изменении цели

semantic_diff

путь к файлу + старый исходник + новый исходник

критические изменения против изменений только тела

semantic_diff_branches

путь к репозиторию + файл + функция + базовая/целевая ссылки git

semantic_diff одной функции между двумя ветками/коммитами

security_surface

путь к репозиторию

карта опасных вызовов (subprocess, eval, pickle, requests)


Проверка здоровья репозитория

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

Флаг

Описание

--root PATH

Путь для анализа (по умолчанию: текущая директория)

--json

Машиночитаемый вывод

Показывает: файлы по языкам, исходные и сжатые токены, функции/классы в индексе, опасные вызовы по категориям, языки без поддержки tree-sitter.


blast_radius

Попросите Claude показать, какие функции сломаются, если вы измените целевую функцию.

Пример результата:

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

Уровни риска: LOW (от 0 до 2 затронутых), MEDIUM (от 3 до 5), HIGH (6 и более).


semantic_diff

Обнаруживает критические изменения API, сравнивая интерфейсы функций, а не их тела. Используйте как шлюз CI.

Пример результата:

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

Если is_breaking равно true, PR изменяет публичный API и требует проверки.


security_surface

Наносит на карту каждую функцию, вызывающую опасные примитивы, во всём репозитории.

HIGH риск: subprocess, os.system, eval, exec, pickle, ctypes

MEDIUM риск: open (режим записи), socket, requests, httpx, urllib

Пример результата:

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

Поддерживаемые языки

Python (через модуль ast), JavaScript, TypeScript, JSX, TSX (через tree-sitter, опционально: pip install refract-mcp[multilang]).

Язык определяется автоматически по расширению файла. Элегантный откат, если tree-sitter не установлен.


Встроенное кэширование Anthropic

Refract интегрируется с кэшированием подсказок Anthropic. as_anthropic_tools() автоматически помечает сжатый каталог как кэшируемый, что ещё больше снижает затраты на повторные запросы.

Пример за 30 дней, 100 запросов в день, 5 000 токенов схем:

Сценарий

Стоимость

Без Refract, без кэша

$45.00

С Refract + кэш

$1.49


Устранение неполадок

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

Claude Desktop не может найти refract-proxy в своём PATH. Найдите абсолютный путь и используйте его напрямую:

which refract-proxy

Затем используйте полный путь в claude_desktop_config.json:

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

Работает с

Claude Desktop, Cursor, любым клиентом, соответствующим стандарту MCP, любым существующим MCP-сервером.


Лицензия

MIT — свободное использование, включая коммерческое.

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