Connects AI assistants to Hawkeye's local search engine for navigating large codebases without uploading code. Exposes nine MCP tools that let Claude or Copilot find references to classes, functions, symbols, assets, and localization keys across indexed projects. Runs entirely on-premises with no AI-based indexing. The main win is token efficiency: instead of reading files blindly, your assistant queries Hawkeye first and gets back precise locations, cutting context usage by roughly 80%. Requires both Hawkeye and Hawkeye AI Bridge installed locally. Works with Claude Desktop (via .mcpb), Claude Code, VS Code Copilot in Agent mode, Cursor, and OpenCode. Includes a skill file so Claude knows when to reach for search instead of guessing.
Local codebase search for Claude Code, VS Code, Cursor, and AI agents.
Hawkeye AI Bridge lets AI coding assistants query Hawkeye’s local project index through MCP, so they can find exact references across large codebases, assets, scripts, localization, config files, and project content without uploading the full repository.
Instead of giving an AI agent huge raw grep output, Hawkeye can return compact file/line results that help the agent decide which files are actually worth reading next.
This repository is the official public setup and discovery repository for using Hawkeye AI Bridge as an MCP server.
It does not contain the proprietary Hawkeye AI Bridge source code. Hawkeye and Hawkeye AI Bridge are proprietary software owned by Zaragsoft.
Hawkeye helps developers quickly search and understand large projects. With MCP support, AI coding assistants can ask Hawkeye for fast local search results, saving tokens on each call.
Typical use cases:
Recommended install path: Place the AIBridge folder at C:\Program Files\Hawkeye\AIBridge\. Use this path in all examples below. If you install elsewhere, substitute your actual path throughout.
You don't need this zip for Claude Desktop. Download Hawkeye.mcpb from the release page and install it directly:
.mcpb is a recognised file type on your system: double-click the file.AIBridge folder to a permanent location — recommended: C:\Program Files\Hawkeye\AIBridge\. Don't run it from Downloads; the registered path must keep working.claude mcp add hawkeye --scope user -- "C:\Program Files\Hawkeye\AIBridge\HawkeyeAIBridge.exe"
$skillDir = "$env:USERPROFILE\.claude\skills\hawkeye-search"
New-Item -ItemType Directory -Force -Path $skillDir | Out-Null
Copy-Item "C:\Program Files\Hawkeye\AIBridge\hawkeye-search.skill" "$skillDir\SKILL.md"
claude mcp list
You should see hawkeye with 9 tools available.The MCP server needs to locate hawkeye.exe. Pick one option:
Option A (recommended): Set HAWKEYE_PATH
# PowerShell — persistent
[Environment]::SetEnvironmentVariable("HAWKEYE_PATH", "C:\Program Files\Hawkeye\hawkeye.exe", "User")
:: Command Prompt — persistent
setx HAWKEYE_PATH "C:\Program Files\Hawkeye\hawkeye.exe"
After setting an environment variable, close and reopen your terminal so the new value takes effect.
Option B: Add Hawkeye to PATH via Windows GUI
Win, type Environment Variables, open Edit the system environment variables.C:\Program Files\Hawkeye and click OK on all dialogs.Avoid
setx PATH "%PATH%;..."from the command line — it can truncate PATH at 1024 characters. Use the GUI instead.
--scope user makes Hawkeye available in every Claude Code session, not just the current folder.-- separator is required. It tells Claude Code where its own flags end and the registered command begins. Without it, registration may fail.Hawkeye works as an MCP server in VS Code's Copilot Agent mode. Register the exe, then open Copilot Chat in Agent mode.
Click the button above, then click Allow in VS Code.
Add this to your .vscode/mcp.json (create the file if it doesn't exist):
{
"servers": {
"hawkeye": {
"type": "stdio",
"command": "C:\\Program Files\\Hawkeye\\AIBridge\\HawkeyeAIBridge.exe"
}
}
}
To make Hawkeye available across all projects, add it to your user-level config instead:
// %APPDATA%\Code\User\mcp.json
{
"servers": {
"hawkeye": {
"type": "stdio",
"command": "C:\\Program Files\\Hawkeye\\AIBridge\\HawkeyeAIBridge.exe"
}
}
}
Ctrl+Alt+I)Note: The
hawkeye-search.skillfile is for Claude Code and Claude Desktop only — VS Code uses Copilot's own context system and doesn't need it.
Open Settings → Tools & MCP → New MCP Server and add:
{
"mcpServers": {
"hawkeye": {
"command": "cmd",
"args": ["/c", "C:\\Program Files\\Hawkeye\\AIBridge\\HawkeyeAIBridge.exe"],
"env": {}
}
}
}
Why
cmd /c? Cursor passes the command path to the shell without quoting it, which breaks paths containing spaces (likeC:\Program Files\). Wrapping it withcmd /cworks around this.
Adjust the path if Hawkeye AI Bridge is installed somewhere else.
Add the following to your opencode.json (create it in your project root or home directory if it doesn't exist):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hawkeye": {
"type": "local",
"command": ["C:\\Program Files\\Hawkeye\\AIBridge\\HawkeyeAIBridge.exe"]
}
}
}
Three things differ from the Claude Code config:
"mcp", not "mcpServers"command is an array of strings, not a command + args split"type": "local" is requiredThe Skill is required for OpenCode. Without it, OpenCode will try to call hawkeye.exe directly on the command line rather than routing tool calls through the MCP server.
OpenCode expects skills to be extracted from the .skill zip archive:
$skillDir = "$env:USERPROFILE\.opencode\skills"
New-Item -ItemType Directory -Force -Path $skillDir | Out-Null
$tempZip = "$env:TEMP\hawkeye-search.zip"
Copy-Item "C:\Program Files\Hawkeye\AIBridge\hawkeye-search.skill" $tempZip -Force
Expand-Archive -Path $tempZip -DestinationPath $skillDir -Force
Remove-Item $tempZip
Once both are in place, restart OpenCode and try: "Find where PlayerController is defined." You should see it call hawkeye_search_minimal.
The Skill teaches Claude when and how to use the Hawkeye tools. Without it, Claude has to guess from tool descriptions alone — results will be worse.
The shipped file is called hawkeye-search.skill but Claude Code expects it to be named SKILL.md inside a named folder.
PowerShell (one command):
$skillDir = "$env:USERPROFILE\.claude\skills\hawkeye-search"
New-Item -ItemType Directory -Force -Path $skillDir | Out-Null
Copy-Item "C:\Program Files\Hawkeye\AIBridge\hawkeye-search.skill" "$skillDir\SKILL.md"
Manual:
%USERPROFILE%\.claude\skills\ (create the skills folder if it doesn't exist).hawkeye-search.hawkeye-search.skill into it.hawkeye-search.skill to SKILL.md. (Enable "File name extensions" in File Explorer's View menu if you can't see the extension.)To restrict the Skill to a single project, place
SKILL.mdat<your-project>\.claude\skills\hawkeye-search\SKILL.mdinstead.
| Tool | Description |
|---|---|
hawkeye_search_minimal | Token-efficient search — returns only file paths and line numbers. 91% fewer tokens than grep. Best for chat-based lookups. |
hawkeye_search | Full search with metadata — returns complete result objects with context. Best for detailed analysis. |
hawkeye_get_groups | List all searchable code groups configured in Hawkeye. |
hawkeye_get_editors | List configured editors for opening files. |
hawkeye_execute_editor | Open a file in a configured editor at a specific line number. |
hawkeye_health_check | Verify Hawkeye service is running and accessible. |
validate_hawkeye_path | Check that the configured Hawkeye path exists and is valid. |
get_settings | Retrieve current Hawkeye configuration (path, max results, case sensitivity). |
save_settings | Save Hawkeye configuration. |
copy_to_clipboard | Copy text to the system clipboard. |
| Approach | Tokens used |
|---|---|
| Blind file reading (no Hawkeye) | ~100,000 per session |
With hawkeye_search_minimal | ~20,000 per session |
| Savings | ~80% reduction |
Ask your AI coding assistant:
When a new version of HawkeyeAIBridge.exe is released:
claude mcp remove hawkeye
claude mcp add hawkeye --scope user -- "C:\Program Files\Hawkeye\AIBridge\HawkeyeAIBridge.exe"
When a new hawkeye-search.skill ships, repeat the Skill install step — Copy-Item will overwrite the existing SKILL.md.
# Unregister from Claude Code
claude mcp remove hawkeye
# Delete the Skill (optional)
Remove-Item -Recurse "$env:USERPROFILE\.claude\skills\hawkeye-search"
# Delete the install folder (optional)
Remove-Item -Recurse "C:\Program Files\Hawkeye\AIBridge"
# Remove the HAWKEYE_PATH environment variable (optional)
[Environment]::SetEnvironmentVariable("HAWKEYE_PATH", $null, "User")
claude command not foundClaude Code isn't installed or isn't on your PATH. Install from https://docs.claude.com/en/docs/build-with-claude/claude-code and restart your terminal.
claude mcp list doesn't show hawkeyeYou may have registered it in a different scope. Re-register with --scope user:
claude mcp remove hawkeye
claude mcp add hawkeye --scope user -- "C:\Program Files\Hawkeye\AIBridge\HawkeyeAIBridge.exe"
claude mcp list shows hawkeye but with 0 toolsThe exe was registered but failed to start. Common causes:
AIBridge folder was moved or deleted after registration.hawkeye --version in a fresh terminal to check.claude mcp remove hawkeye then re-register.Error: Failed to start Hawkeye process
hawkeye --version.HAWKEYE_PATH (see Prerequisites above) and close/reopen your terminal.%USERPROFILE%\.claude\skills\hawkeye-search\SKILL.md.SKILL.md.skill — Windows may hide the original .skill extension. Enable "File name extensions" in File Explorer's View menu to check.If Cursor logs show 'C:\Program' is not recognized as an internal or external command, the path with spaces is being passed unquoted. Use the cmd /c workaround shown in the Cursor section above.
No groups available / Empty group list
hawkeye --getgroups manually to test.Error: Operation timed out waiting for Hawkeye
Dual License:
See LICENSE for complete terms.
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp