Back to MCP Servers
🧩

OpenGrok MCP Server

API key required

MCP server bridging OpenGrok search engine with AI for instant context across massive codebases.

To add OpenGrok MCP Server to Claude, run the install command below or copy the ready-made config for Claude Code, Claude Desktop, Cursor and VS Code further down. Restart your client after adding it and its tools show up in your next conversation. It needs 31 environment variables, listed below.

SearchAIDevTools

Install

npx -y opengrok-mcp-server@9.6.0

Environment variables

OPENGROK_BASE_URLSet in your MCP config
OPENGROK_USERNAMESet in your MCP config
OPENGROK_PASSWORDSet in your MCP config
OPENGROK_VERIFY_SSLSet in your MCP config
OPENGROK_CODE_MODESet in your MCP config
OPENGROK_ENABLE_MEMORY_TOOLSSet in your MCP config
OPENGROK_DEFAULT_PROJECTSet in your MCP config
OPENGROK_CONTEXT_BUDGETSet in your MCP config
OPENGROK_API_VERSIONSet in your MCP config
HTTP_PROXYSet in your MCP config
OPENGROK_RESPONSE_FORMAT_OVERRIDESet in your MCP config
OPENGROK_MEMORY_BANK_DIRSet in your MCP config
OPENGROK_LOCAL_COMPILE_DB_PATHSSet in your MCP config
OPENGROK_ENABLE_ELICITATIONSet in your MCP config
OPENGROK_ENABLE_SAMPLINGSet in your MCP config
OPENGROK_SAMPLING_MODELSet in your MCP config
OPENGROK_ENABLE_FILES_APISet in your MCP config
OPENGROK_ENABLE_OBSERVATION_MASKERSet in your MCP config
OPENGROK_OBSERVATION_MASKER_TURNSSet in your MCP config
OPENGROK_SAMPLING_MAX_TOKENSSet in your MCP config
OPENGROK_AUDIT_LOG_FILESet in your MCP config
OPENGROK_RATELIMIT_RPMSet in your MCP config
OPENGROK_PER_TOOL_RATELIMITSet in your MCP config
OPENGROK_TIMEOUTSet in your MCP config
OPENGROK_DEFAULT_MAX_RESULTSSet in your MCP config
OPENGROK_PASSWORD_FILESet in your MCP config
OPENGROK_MAX_RESPONSE_BYTESSet in your MCP config
OPENGROK_SEARCH_AND_READ_CAPSet in your MCP config
OPENGROK_STRICT_SSRFSet in your MCP config
OPENGROK_JWT_ISSUERSet in your MCP config
OPENGROK_GRAMMAR_DIRSet in your MCP config

Install with your client

Terminal
claude mcp add opengrok --env OPENGROK_BASE_URL=<YOUR_OPENGROK_BASE_URL> --env OPENGROK_USERNAME=<YOUR_OPENGROK_USERNAME> --env OPENGROK_PASSWORD=<YOUR_OPENGROK_PASSWORD> --env OPENGROK_VERIFY_SSL=<YOUR_OPENGROK_VERIFY_SSL> --env OPENGROK_CODE_MODE=<YOUR_OPENGROK_CODE_MODE> --env OPENGROK_ENABLE_MEMORY_TOOLS=<YOUR_OPENGROK_ENABLE_MEMORY_TOOLS> --env OPENGROK_DEFAULT_PROJECT=<YOUR_OPENGROK_DEFAULT_PROJECT> --env OPENGROK_CONTEXT_BUDGET=<YOUR_OPENGROK_CONTEXT_BUDGET> --env OPENGROK_API_VERSION=<YOUR_OPENGROK_API_VERSION> --env HTTP_PROXY=<YOUR_HTTP_PROXY> --env OPENGROK_RESPONSE_FORMAT_OVERRIDE=<YOUR_OPENGROK_RESPONSE_FORMAT_OVERRIDE> --env OPENGROK_MEMORY_BANK_DIR=<YOUR_OPENGROK_MEMORY_BANK_DIR> --env OPENGROK_LOCAL_COMPILE_DB_PATHS=<YOUR_OPENGROK_LOCAL_COMPILE_DB_PATHS> --env OPENGROK_ENABLE_ELICITATION=<YOUR_OPENGROK_ENABLE_ELICITATION> --env OPENGROK_ENABLE_SAMPLING=<YOUR_OPENGROK_ENABLE_SAMPLING> --env OPENGROK_SAMPLING_MODEL=<YOUR_OPENGROK_SAMPLING_MODEL> --env OPENGROK_ENABLE_FILES_API=<YOUR_OPENGROK_ENABLE_FILES_API> --env OPENGROK_ENABLE_OBSERVATION_MASKER=<YOUR_OPENGROK_ENABLE_OBSERVATION_MASKER> --env OPENGROK_OBSERVATION_MASKER_TURNS=<YOUR_OPENGROK_OBSERVATION_MASKER_TURNS> --env OPENGROK_SAMPLING_MAX_TOKENS=<YOUR_OPENGROK_SAMPLING_MAX_TOKENS> --env OPENGROK_AUDIT_LOG_FILE=<YOUR_OPENGROK_AUDIT_LOG_FILE> --env OPENGROK_RATELIMIT_RPM=<YOUR_OPENGROK_RATELIMIT_RPM> --env OPENGROK_PER_TOOL_RATELIMIT=<YOUR_OPENGROK_PER_TOOL_RATELIMIT> --env OPENGROK_TIMEOUT=<YOUR_OPENGROK_TIMEOUT> --env OPENGROK_DEFAULT_MAX_RESULTS=<YOUR_OPENGROK_DEFAULT_MAX_RESULTS> --env OPENGROK_PASSWORD_FILE=<YOUR_OPENGROK_PASSWORD_FILE> --env OPENGROK_MAX_RESPONSE_BYTES=<YOUR_OPENGROK_MAX_RESPONSE_BYTES> --env OPENGROK_SEARCH_AND_READ_CAP=<YOUR_OPENGROK_SEARCH_AND_READ_CAP> --env OPENGROK_STRICT_SSRF=<YOUR_OPENGROK_STRICT_SSRF> --env OPENGROK_JWT_ISSUER=<YOUR_OPENGROK_JWT_ISSUER> --env OPENGROK_GRAMMAR_DIR=<YOUR_OPENGROK_GRAMMAR_DIR> -- npx -y opengrok-mcp-server@9.6.0

Run this in a terminal to add the server to Claude Code.

What this does

OpenGrok MCP Server exposes a set of tools to Claude over the Model Context Protocol. After you add it to claude_desktop_config.json (snippet above) and restart Claude Desktop, those tools become callable inside any conversation.

Requirements

This server needs the following environment variables to be set before it can run:

OPENGROK_BASE_URL
OPENGROK_USERNAME
OPENGROK_PASSWORD
OPENGROK_VERIFY_SSL
OPENGROK_CODE_MODE
OPENGROK_ENABLE_MEMORY_TOOLS
OPENGROK_DEFAULT_PROJECT
OPENGROK_CONTEXT_BUDGET
OPENGROK_API_VERSION
HTTP_PROXY
OPENGROK_RESPONSE_FORMAT_OVERRIDE
OPENGROK_MEMORY_BANK_DIR
OPENGROK_LOCAL_COMPILE_DB_PATHS
OPENGROK_ENABLE_ELICITATION
OPENGROK_ENABLE_SAMPLING
OPENGROK_SAMPLING_MODEL
OPENGROK_ENABLE_FILES_API
OPENGROK_ENABLE_OBSERVATION_MASKER
OPENGROK_OBSERVATION_MASKER_TURNS
OPENGROK_SAMPLING_MAX_TOKENS
OPENGROK_AUDIT_LOG_FILE
OPENGROK_RATELIMIT_RPM
OPENGROK_PER_TOOL_RATELIMIT
OPENGROK_TIMEOUT
OPENGROK_DEFAULT_MAX_RESULTS
OPENGROK_PASSWORD_FILE
OPENGROK_MAX_RESPONSE_BYTES
OPENGROK_SEARCH_AND_READ_CAP
OPENGROK_STRICT_SSRF
OPENGROK_JWT_ISSUER
OPENGROK_GRAMMAR_DIR

Set these via the env object in your MCP config (see claude_desktop_config.json snippet above).

Frequently asked questions

How do I install OpenGrok MCP Server?

Run the Claude Code command in the install section to add OpenGrok MCP Server to Claude Code, or copy the ready-made config for your client from the install section on this page. Restart your client afterwards and the tools appear in your next conversation.

Which clients work with OpenGrok MCP Server?

This page carries setup and config for Claude Code, Claude Desktop, Cursor and VS Code. Any other MCP client that accepts a standard server config can connect to OpenGrok MCP Server as well.

Does OpenGrok MCP Server need an API key?

Yes. Before it can run, set these environment variables: OPENGROK_BASE_URL, OPENGROK_USERNAME, OPENGROK_PASSWORD, OPENGROK_VERIFY_SSL, OPENGROK_CODE_MODE, OPENGROK_ENABLE_MEMORY_TOOLS, OPENGROK_DEFAULT_PROJECT, OPENGROK_CONTEXT_BUDGET, OPENGROK_API_VERSION, HTTP_PROXY, OPENGROK_RESPONSE_FORMAT_OVERRIDE, OPENGROK_MEMORY_BANK_DIR, OPENGROK_LOCAL_COMPILE_DB_PATHS, OPENGROK_ENABLE_ELICITATION, OPENGROK_ENABLE_SAMPLING, OPENGROK_SAMPLING_MODEL, OPENGROK_ENABLE_FILES_API, OPENGROK_ENABLE_OBSERVATION_MASKER, OPENGROK_OBSERVATION_MASKER_TURNS, OPENGROK_SAMPLING_MAX_TOKENS, OPENGROK_AUDIT_LOG_FILE, OPENGROK_RATELIMIT_RPM, OPENGROK_PER_TOOL_RATELIMIT, OPENGROK_TIMEOUT, OPENGROK_DEFAULT_MAX_RESULTS, OPENGROK_PASSWORD_FILE, OPENGROK_MAX_RESPONSE_BYTES, OPENGROK_SEARCH_AND_READ_CAP, OPENGROK_STRICT_SSRF, OPENGROK_JWT_ISSUER, OPENGROK_GRAMMAR_DIR. They go in the env block of your MCP config.

Imported from the Official MCP Registry. The details above come from the registry entry; the maker can claim this listing to correct them, add docs, and see its traffic.

Is this your MCP server?

Claim this listing to see its traffic, fix details yourself, and skip the review queue on future updates.

Listed on clauderules.net

Add this badge to your README

Show visitors this server is listed in the ClaudeRules directory. The badge links straight to this listing.

Markdown
[![Listed on clauderules.net](https://clauderules.net/api/badge/io-github-icyhot09-opengrok-mcp-server)](https://clauderules.net/mcp/io-github-icyhot09-opengrok-mcp-server)
HTML
<a href="https://clauderules.net/mcp/io-github-icyhot09-opengrok-mcp-server" target="_blank" rel="noopener noreferrer"><img src="https://clauderules.net/api/badge/io-github-icyhot09-opengrok-mcp-server" alt="Listed on clauderules.net" /></a>