Skip to main content
Glama
SammySnake-d

Fast Context MCP

by SammySnake-d

Fast Context MCP

Búsqueda semántica de código impulsada por IA como herramienta MCP — basada en el protocolo SWE-grep de Windsurf, diseñado mediante ingeniería inversa.

Cualquier cliente compatible con MCP (Claude Code, Claude Desktop, Cursor, etc.) puede usarlo para buscar en bases de código con consultas en lenguaje natural. Todas las herramientas se agrupan mediante npm — no se necesitan dependencias a nivel de sistema (ripgrep a través de @vscode/ripgrep, tree mediante tree-node-cli). Funciona en macOS, Windows y Linux.

Cómo funciona

You: "where is the authentication logic?"
         │
         ▼
┌─────────────────────────┐
│  Fast Context MCP       │
│  (local MCP server)     │
│                         │
│  1. Maps project → /codebase
│  2. Sends query to Windsurf Devstral API
│  3. AI generates rg/readfile/tree commands
│  4. Executes commands locally (built-in rg)
│  5. Returns results to AI
│  6. Repeats for N rounds
│  7. Returns file paths + line ranges
│     + suggested search keywords
└─────────────────────────┘
         │
         ▼
Found 3 relevant files.
  [1/3] /project/src/auth/handler.py (L10-60)
  [2/3] /project/src/middleware/jwt.py (L1-40)
  [3/3] /project/src/models/user.py (L20-80)

Suggested search keywords:
  authenticate, jwt.*verify, session.*token

Related MCP server: code-rag

Requisitos previos

  • Node.js >= 18

  • Cuenta de Windsurf — el plan gratuito funciona (necesaria para la clave de API).

No es necesario instalar ripgrep — viene incluido a través de @vscode/ripgrep.

Instalación

Opción 1: npm (recomendada)

# Latest stable release
npm install @sammysnake/fast-context-mcp

# Or beta/next release
npm install @sammysnake/fast-context-mcp@next

Opción 2: desde el código fuente

git clone https://github.com/SammySnake-d/fast-context-mcp.git
cd fast-context-mcp
npm install

Configuración

1. Obtén tu clave de API de Windsurf/Devin

El servidor extrae automáticamente la clave de API de Devin CLI/Desktop o de una instalación heredada de Windsurf. También puedes usar la herramienta MCP extract_windsurf_key después de la configuración, o establecer WINDSURF_API_KEY manualmente.

Las credenciales de escritorio se descubren en este orden: Devin, Deviv heredado y luego Windsurf.

Plataforma

Ruta

macOS

~/Library/Application Support/Devin/User/globalStorage/state.vscdb

Windows

%APPDATA%/Devin/User/globalStorage/state.vscdb

Linux

~/.config/Devin/User/globalStorage/state.vscdb

En WSL/Linux, el servidor comprueba primero las credenciales de Devin CLI en ~/.local/share/devin/credentials.toml. Si una clave extraída en Windows devuelve 403 dentro de WSL, ejecuta devin login dentro de WSL y reinténtalo.

2. Configura el cliente MCP

Claude Code

Añade a ~/.claude.json en mcpServers:

{
  "fast-context": {
    "command": "npx",
    "args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp"],
    "env": {
      "WINDSURF_API_KEY": "sk-ws-01-xxxxx"
    }
  }
}

Para la versión beta/siguiente:

{
  "fast-context": {
    "command": "npx",
    "args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp@next"],
    "env": {
      "WINDSURF_API_KEY": "sk-ws-01-xxxxx"
    }
  }
}

Claude Desktop

Añade a claude_desktop_config.json en mcpServers:

{
  "fast-context": {
    "command": "npx",
    "args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp"],
    "env": {
      "WINDSURF_API_KEY": "sk-ws-01-xxxxx"
    }
  }
}

Para la versión beta/siguiente:

{
  "fast-context": {
    "command": "npx",
    "args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp@next"],
    "env": {
      "WINDSURF_API_KEY": "sk-ws-01-xxxxx"
    }
  }
}

Si se omite WINDSURF_API_KEY, el servidor la descubre automáticamente desde tu instalación local de Windsurf.

Variables de entorno

Variable

Por defecto

Descripción

WINDSURF_API_KEY

(auto-discover)

Clave de API de Windsurf

FC_MAX_TURNS

3

Rondas de búsqueda por consulta (más = más profundo pero más lento)

FC_MAX_COMMANDS

8

Máximo de comandos en paralelo por ronda

FC_TIMEOUT_MS

30000

Connect-Timeout-Ms para solicitudes de streaming

FC_HIDE_EXTRACT_WINDSURF_KEY_TOOL

false

Oculta extract_windsurf_key de las herramientas MCP cuando se establece en 1, true, yes o on

FC_RESULT_MAX_LINES

50

Máximo de líneas por salida de comando (truncamiento)

FC_LINE_MAX_CHARS

250

Máximo de caracteres por línea de salida (truncamiento)

FC_CACHE_DISABLED

(unset)

Desactiva la caché de resultados en memoria con 1, true, yes o on

FC_CACHE_TTL_MS

300000

TTL de la caché de resultados; <=0 desactiva el almacenamiento en caché

FC_CACHE_MAX_ENTRIES

200

Máximo de entradas en la caché en memoria

FC_ALLOW_INSECURE_TLS

(unset)

Establécelo en 1 solo cuando un proxy corporativo de confianza requiera la verificación TLS deshabilitada

WS_MODEL

MODEL_SWE_1_6_FAST

Nombre del modelo de Windsurf

WS_APP_VER

1.48.2

Versión de la aplicación Windsurf (metadatos del protocolo)

WS_LS_VER

1.9544.35

Versión del servidor de lenguaje de Windsurf (metadatos del protocolo)

Modelos disponibles

El modelo se puede cambiar estableciendo WS_MODEL (consulta las variables de entorno anteriores).

Modelos disponibles

Por defecto: MODEL_SWE_1_6_FAST — máxima velocidad, las palabras clave grep más ricas y la granularidad de ubicación más fina.

Herramientas MCP

Búsqueda semántica de código impulsada por IA con parámetros ajustables.

Parámetro

Tipo

Obligatorio

Por defecto

Descripción

query

string

Consulta de búsqueda en lenguaje natural

project_path

string

No

cwd

Ruta absoluta a la raíz del proyecto

tree_depth

integer

No

3

Profundidad del árbol de directorios para el mapa del repositorio (1-6). Cuanto mayor, más contexto pero mayor carga útil. Si el árbol supera los 250KB, se reduce automáticamente a una profundidad menor. Usa 1-2 para monorepos enormes (>5000 archivos), 3 para la mayoría de proyectos, 4-6 para proyectos pequeños.

max_turns

integer

No

3

Rondas de búsqueda (1-5). Cuantas más, más profunda pero más lenta será la búsqueda. Usa 1-2 para búsquedas simples, 3 para la mayoría de consultas, 4-5 para análisis complejos.

max_results

integer

No

10

Número máximo de archivos a devolver (1-30). Cuanto menor, más centrado; cuanto mayor, exploración más amplia.

exclude_paths

string[]

No

[]

Patrones de directorio/archivo excluidos del mapa del repositorio y del contexto de búsqueda.

Devuelve:

  1. Archivos relevantes con rangos de líneas

  2. Palabras clave de búsqueda sugeridas (patrones rg utilizados durante la búsqueda con IA)

  3. Metadatos de diagnóstico (línea [config] que muestra el tree_depth real utilizado, el tamaño del árbol y si se produjo la reducción)

Ejemplo de salida:

Found 3 relevant files.

  [1/3] /project/src/auth/handler.py (L10-60, L120-180)
  [2/3] /project/src/middleware/jwt.py (L1-40)
  [3/3] /project/src/models/user.py (L20-80)

grep keywords: authenticate, jwt.*verify, session.*token

[config] tree_depth=3, tree_size=12.5KB, max_turns=3

La salida de error incluye pistas específicas según el estado:

Error: Request failed: HTTP 403

[hint] 403 Forbidden: Authentication failed. The API key may be expired or revoked.
Try re-extracting with extract_windsurf_key, or set a fresh WINDSURF_API_KEY env var.
If you are running inside WSL, run `devin login` inside WSL so `~/.local/share/devin/credentials.toml` exists.
Error: Request failed: HTTP 413

[diagnostic] tree_depth_used=3, tree_size=280.0KB (auto fell back from requested depth)
[hint] If the error is payload-related, try a lower tree_depth value.

extract_windsurf_key

Extrae la clave de API de Windsurf de la instalación local. Sin parámetros.

Establece FC_HIDE_EXTRACT_WINDSURF_KEY_TOOL=1 al iniciar el servidor MCP para ocultar esta herramienta de tools/list. Esto no desactiva el descubrimiento automático interno de la clave de API para fast_context_search.

Estructura del proyecto

fast-context-mcp/
├── package.json
├── src/
│   ├── server.mjs        # MCP server entry point
│   ├── core.mjs          # Auth, message building, streaming, search loop
│   ├── executor.mjs      # Tool executor: rg, readfile, tree, ls, glob
│   ├── extract-key.mjs   # Windsurf API Key extraction (SQLite)
│   ├── path-safety.mjs   # Project-root confinement for model-selected paths
│   ├── response-repair.mjs # Malformed response repair and evidence salvage
│   ├── shared.mjs        # Repository map, answer parser, prompt builder
│   ├── cache.mjs         # In-memory search-result cache
│   └── protobuf.mjs      # Protobuf encoder/decoder + Connect-RPC frames
├── test/                 # Unit and MCP stdio integration tests
├── README.md
└── LICENSE

Cómo funciona la búsqueda

  1. El directorio del proyecto se asigna a la ruta virtual /codebase

  2. Se genera el árbol de directorios con la profundidad solicitada (por defecto L=3), con reducción automática a una profundidad menor si el árbol supera los 250KB

  3. La consulta y el árbol de directorios se envían al modelo Devstral de Windsurf mediante Connect-RPC/Protobuf

  4. Devstral genera comandos de herramientas (ripgrep, lectura de archivos, tree, ls, glob)

  5. Los comandos se ejecutan localmente en paralelo (hasta FC_MAX_COMMANDS por ronda)

  6. Los resultados se envían de vuelta a Devstral para la siguiente ronda

  7. Después de max_turns rondas, Devstral devuelve rutas de archivo y rangos de líneas

  8. Todos los patrones rg utilizados durante la búsqueda se recopilan como palabras clave sugeridas

  9. Se añaden metadatos de diagnóstico para ayudar a la IA llamante a ajustar parámetros

Detalles técnicos

  • Protocolo: Connect-RPC sobre HTTP/1.1, codificación Protobuf, compresión gzip

  • Modelo: Devstral (MODEL_SWE_1_6_FAST, configurable)

  • Herramientas locales: rg (incluido a través de @vscode/ripgrep), readfile (fs de Node.js), tree (tree-node-cli), ls (fs de Node.js), glob (fs de Node.js)

  • Autenticación: clave de API → JWT (se obtiene automáticamente por sesión)

  • Entorno de ejecución: Node.js >= 18 (ESM)

Dependencias

Paquete

Propósito

@modelcontextprotocol/sdk

Framework de servidor MCP

@vscode/ripgrep

Binario de ripgrep incluido (multiplataforma)

tree-node-cli

Árbol de directorios multiplataforma (reemplaza al tree del sistema)

sql.js

Lee la base de datos SQLite local de Devin/Windsurf sin un paso de compilación nativa

zod (^3.25.76)

Validación de esquemas; evita el tarball incompleto 3.25.0 que sirven algunos espejos de npm

Enlaces amigos

Licencia

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
3dResponse time
8wRelease cycle
4Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI-driven semantic code search using Windsurf's reverse-engineered SWE-grep protocol to query local codebases with natural language. It executes local search tools like ripgrep and tree-node-cli to return relevant file paths and line ranges to MCP-compatible clients.
    2
    227
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A semantic code search MCP server that enables natural language queries against your codebase, supporting features like related file discovery and context expansion, all running locally.
    2
  • A
    license
    Not graded
    quality
    A
    maintenance
    Semantic code search MCP server that reduces token usage by ~95% by returning top relevant code chunks instead of full files.
    9
    MIT

View all related MCP servers

Related MCP Connectors

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • An MCP server that gives your AI access to the source code and docs of all public github repos

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

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/SammySnake-d/fast-context-mcp'

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