Fast Context MCP
Fast Context MCP
AI駆動のセマンティックコード検索をMCPツールとして提供します — WindsurfのリバースエンジニアリングされたSWE-grepプロトコルを利用。
MCP互換のクライアント(Claude Code、Claude Desktop、Cursorなど)は、自然言語クエリでコードベースを検索できます。すべてのツールはnpm経由でバンドルされています — システムレベルの依存関係は不要です(ripgrepは @vscode/ripgrep、treeは tree-node-cli を使用)。macOS、Windows、Linuxで動作します。
動作の仕組み
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.*tokenRelated MCP server: code-rag
前提条件
Node.js >= 18
Windsurfアカウント — 無料枠で利用可能(APIキーに必要)
ripgrepをインストールする必要はありません — @vscode/ripgrep 経由でバンドルされています。
インストール
オプション1: npm(推奨)
# Latest stable release
npm install @sammysnake/fast-context-mcp
# Or beta/next release
npm install @sammysnake/fast-context-mcp@nextオプション2: ソースから
git clone https://github.com/SammySnake-d/fast-context-mcp.git
cd fast-context-mcp
npm installセットアップ
1. Windsurf/Devin APIキーを取得する
サーバーはDevin CLI/DesktopまたはレガシーなWindsurfインストールからAPIキーを自動抽出します。セットアップ後に extract_windsurf_key MCPツールを使用するか、手動で WINDSURF_API_KEY を設定することもできます。
デスクトップの認証情報は、Devin、レガシーの Deviv、その後 Windsurf の順で検出されます。
プラットフォーム | パス |
macOS |
|
Windows |
|
Linux |
|
WSL/Linuxでは、サーバーは最初に ~/.local/share/devin/credentials.toml でDevin CLIの認証情報を確認します。WSL内でWindowsで抽出したキーが403を返す場合は、WSL内で devin login を実行して再試行してください。
2. MCPクライアントを設定する
Claude Code
~/.claude.json の mcpServers に追加します:
{
"fast-context": {
"command": "npx",
"args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp"],
"env": {
"WINDSURF_API_KEY": "sk-ws-01-xxxxx"
}
}
}ベータ/次期リリースの場合:
{
"fast-context": {
"command": "npx",
"args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp@next"],
"env": {
"WINDSURF_API_KEY": "sk-ws-01-xxxxx"
}
}
}Claude Desktop
claude_desktop_config.json の mcpServers に追加します:
{
"fast-context": {
"command": "npx",
"args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp"],
"env": {
"WINDSURF_API_KEY": "sk-ws-01-xxxxx"
}
}
}ベータ/次期リリースの場合:
{
"fast-context": {
"command": "npx",
"args": ["-y", "--prefer-online", "@sammysnake/fast-context-mcp@next"],
"env": {
"WINDSURF_API_KEY": "sk-ws-01-xxxxx"
}
}
}
WINDSURF_API_KEYが省略された場合、サーバーはローカルのWindsurfインストールから自動的に検出します。
環境変数
変数 | デフォルト | 説明 |
| (自動検出) | Windsurf APIキー |
|
| クエリごとの検索ラウンド数(多いほど深く検索されますが、遅くなります) |
|
| ラウンドごとの最大並列コマンド数 |
|
| ストリーミングリクエストのConnect-Timeout-Ms |
|
|
|
|
| コマンド出力の最大行数(切り詰め) |
|
| 出力行の最大文字数(切り詰め) |
| (未設定) |
|
|
| 結果キャッシュのTTL。 |
|
| インメモリキャッシュの最大エントリ数 |
| (未設定) | 信頼された企業プロキシがTLS検証の無効化を必要とする場合にのみ |
|
| Windsurfモデル名 |
|
| Windsurfアプリバージョン(プロトコルメタデータ) |
|
| Windsurf言語サーバーバージョン(プロトコルメタデータ) |
利用可能なモデル
モデルは WS_MODEL を設定することで変更できます(上記の環境変数を参照)。

デフォルト: MODEL_SWE_1_6_FAST — 最速の速度、最も豊富なgrepキーワード、最も細かい位置の粒度。
MCPツール
fast_context_search
調整可能なパラメータを備えたAI駆動のセマンティックコード検索。
パラメータ | 型 | 必須 | デフォルト | 説明 |
| string | はい | — | 自然言語の検索クエリ |
| string | いいえ | cwd | プロジェクトルートへの絶対パス |
| integer | いいえ |
| リポジトリマップのディレクトリツリーの深さ(1〜6)。大きいほどコンテキストが増えますが、ペイロードも大きくなります。ツリーが250KBを超えると、自動的に浅い深さにフォールバックします。巨大なモノレポ(5000ファイル超)では1〜2、ほとんどのプロジェクトでは3、小規模プロジェクトでは4〜6を使用します。 |
| integer | いいえ |
| 検索ラウンド数(1〜5)。多いほど深く検索されますが、遅くなります。単純な検索では1〜2、ほとんどのクエリでは3、複雑な分析では4〜5を使用します。 |
| integer | いいえ |
| 返すファイルの最大数(1〜30)。小さいほど焦点が絞られ、大きいほど広く探索されます。 |
| string[] | いいえ |
| リポジトリマップと検索コンテキストから除外するディレクトリ/ファイルパターン。 |
戻り値:
関連ファイル と行範囲
提案された検索キーワード(AI検索で使用されたrgパターン)
診断メタデータ(使用された実際のtree_depth、ツリーサイズ、フォールバックが発生したかどうかを示す
[config]行)
出力例:
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エラー出力にはステータス別のヒントが含まれます:
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
ローカルインストールからWindsurf APIキーを抽出します。パラメータはありません。
MCPサーバー起動時に FC_HIDE_EXTRACT_WINDSURF_KEY_TOOL=1 を設定すると、このツールを tools/list から非表示にできます。これは fast_context_search の内部APIキー自動検出を無効にするものではありません。
プロジェクト構造
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検索の仕組み
プロジェクトディレクトリを仮想パス
/codebaseにマッピング要求された深さ(デフォルトL=3)でディレクトリツリーを生成。ツリーが250KBを超える場合は、浅い深さに自動フォールバックします。
クエリとディレクトリツリーをConnect-RPC/Protobuf経由でWindsurfのDevstralモデルに送信
Devstralがツールコマンド(ripgrep、ファイル読み取り、tree、ls、glob)を生成
コマンドをローカルで並列実行(ラウンドごとに最大
FC_MAX_COMMANDS)結果をDevstralに送り返して次のラウンドへ
max_turnsラウンド後、Devstralがファイルパスと行範囲を返す検索中に使用されたすべてのrgパターンを提案キーワードとして収集
診断メタデータを追加して、呼び出し元のAIがパラメータを調整できるようにする
技術詳細
プロトコル: Connect-RPC over HTTP/1.1、Protobufエンコーディング、gzip圧縮
モデル: Devstral (
MODEL_SWE_1_6_FAST、設定可能)ローカルツール:
rg(@vscode/ripgrep経由でバンドル)、readfile(Node.js fs)、tree(tree-node-cli)、ls(Node.js fs)、glob(Node.js fs)認証: APIキー → JWT(セッションごとに自動取得)
ランタイム: Node.js >= 18 (ESM)
依存関係
パッケージ | 用途 |
| MCPサーバーフレームワーク |
| バンドルされたripgrepバイナリ(クロスプラットフォーム) |
| クロスプラットフォームのディレクトリツリー(システムの |
| ネイティブビルドステップなしでDevin/WindsurfのローカルSQLite DBを読み取る |
| スキーマ検証。一部のnpmミラーが配信する不完全な |
関連リンク
ライセンス
MIT
Maintenance
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
- AlicenseAqualityDmaintenanceEnables 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.2227MIT
- FlicenseNot gradedqualityCmaintenanceA 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
- AlicenseAqualityDmaintenanceLocal-first MCP server for semantic + keyword hybrid code search. Zero external services, no API keys required.2MIT
- AlicenseNot gradedqualityAmaintenanceSemantic code search MCP server that reduces token usage by ~95% by returning top relevant code chunks instead of full files.9MIT
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.
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/SammySnake-d/fast-context-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server