---
bezeichner: "io.github.IcyHot09/opengrok-mcp-server"
art: "mcp_server"
slug: "io-github-icyhot09-opengrok-mcp-server"
paketkoordinate: "npm:opengrok-mcp-server"
status: "aktiv"
homepage: "https://github.com/IcyHot09/opengrok-mcp-server"
erhebungsstand: "2026-10-12T01:17:02.346Z"
namensraum: "io.github.IcyHot09"
registerseite: "https://tracevero.de/mcp/io-github-icyhot09-opengrok-mcp-server"
abgerufen_am: "2026-10-12"
zugangsdaten_erforderlich: false
ausfuehrungsort: "lokal"
dateisystem_pfadargument: false
quelloffen_einsehbar: true
roh_beschreibung: "MCP server bridging OpenGrok search engine with AI for instant context across massive codebases."
version: "9.6.0"
roh_umgebungsvariablen: "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"
roh_geheime_pflichtvariablen: ""
roh_transportarten: "stdio"
roh_pfadargumente: ""
roh_repository_url: "https://github.com/IcyHot09/opengrok-mcp-server"
roh_paketquellen: "npm"
roh_geheime_pflichtkopfzeilen: ""
roh_pfad_umgebungsvariablen: ""
roh_remote_adressen: ""
roh_remote_hosts: ""
roh_statusmeldung: ""
roh_veroeffentlicht_am: "2026-09-16"
roh_aktualisiert_am: "2026-09-16"
roh_schemafassung: "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"
roh_bereitstellungsform: "paket"
roh_repository_quelle: "github"
roh_repository_unterordner: ""
roh_paketbezeichner: "opengrok-mcp-server"
roh_paketversionen: "9.6.0"
roh_laufzeithinweise: "npx"
roh_umgebungsformate: "boolean, string"
roh_umgebungsbeschreibungen: "HTTP_PROXY=HTTP/HTTPS proxy URL for all OpenGrok API requests (e.g. http://proxy.company.com:8080). Also set as HTTPS_PROXY. · OPENGROK_API_VERSION=OpenGrok REST API version. Use v2 for call graph features (requires OpenGrok 1.12+). · OPENGROK_AUDIT_LOG_FILE=Path to write structured audit events (CSV/JSON). Appends tool invocations, elicitation events, and errors. Leave unset to disable. · OPENGROK_BASE_URL=OpenGrok server base URL (e.g. https://opengrok.example.com/source/) · OPENGROK_CODE_MODE=Enable Code Mode: 2-tool sandbox interface with env.opengrok.* JavaScript API. Reduces AI token usage by ~90%. · OPENGROK_CONTEXT_BUDGET=Response size tier controlling token usage. · OPENGROK_DEFAULT_MAX_RESULTS=Default maximum number of results returned per search query. Default: 25. · OPENGROK_DEFAULT_PROJECT=Default project to scope all searches. Can be overridden per call. · OPENGROK_ENABLE_ELICITATION=Interactive AI Prompts — the AI pauses to ask questions during investigations (project selection, file disambiguation). Requires Claude Code v2.1.76+ or a client that supports MCP Elicitation. · OPENGROK_ENABLE_FILES_API=Files API Cache — avoids re-uploading unchanged investigation notes. Requires Files API support in the MCP client. · OPENGROK_ENABLE_MEMORY_TOOLS=Register the 3 memory tools in Code Mode (memory status, read, update). Off = api + execute only. · OPENGROK_ENABLE_OBSERVATION_MASKER=Observation Masker — prepend compact history summaries to opengrok_execute results after N turns. Disabled by default; has no benefit for clients that retain full context (Claude Code, Cursor). · OPENGROK_ENABLE_SAMPLING=AI Sampling — allow the server to request LLM completions for error explanations and summaries. Off by default to avoid consuming premium requests (e.g. GitHub Copilot). · OPENGROK_GRAMMAR_DIR=Directory containing tree-sitter WASM grammars. Overrides the bundled grammar lookup. · OPENGROK_JWT_ISSUER=Expected JWT issuer (iss claim) for HTTP transport OAuth. When set, JWTs from other issuers are rejected. · OPENGROK_LOCAL_COMPILE_DB_PATHS=Comma-separated paths to compile_commands.json for C/C++ compiler flag and include-path extraction. Leave unset for automatic workspace discovery. · OPENGROK_MAX_RESPONSE_BYTES=Hard cap on response payload size in bytes. Overrides the context-budget default. Non-positive values are ignored. · OPENGROK_MEMORY_BANK_DIR=Directory where the AI stores investigation notes (active-task.md, investigation-log.md). Defaults to ~/.config/opengrok-mcp/memory-bank/ or workspace-relative when set by the VS Code extension. · OPENGROK_OBSERVATION_MASKER_TURNS=Number of most-recent opengrok_execute results to keep as full text before masking older ones. Default: 10. · OPENGROK_PASSWORD=OpenGrok authentication password. Prefer storing via OS keychain using 'npx opengrok-mcp-server setup'. · OPENGROK_PASSWORD_FILE=Path to a file containing the OpenGrok password (file-mounted secret for containers). Takes precedence over the OS keychain when OPENGROK_PASSWORD is unset. · OPENGROK_PER_TOOL_RATELIMIT=Per-tool rate limits in requests per minute, as comma-separated tool:rpm pairs (e.g. opengrok_execute:15,opengrok_search_code:30). Overrides OPENGROK_RATELIMIT_RPM for specific tools. · OPENGROK_RATELIMIT_RPM=Maximum requests per minute to the OpenGrok server. Default: 60. · OPENGROK_RESPONSE_FORMAT_OVERRIDE=Force a specific response format for all tools. Leave unset for per-tool auto-selection (recommended). · OPENGROK_SAMPLING_MAX_TOKENS=Maximum tokens for AI sampling responses (error explanation, query reformulation). Range: 64–4096. · OPENGROK_SAMPLING_MODEL=Model preference for MCP Sampling (used for error explanation and query reformulation). · OPENGROK_SEARCH_AND_READ_CAP=Cap for the search_and_read compound tool in bytes. Overrides the context-budget default (2–8 KB depending on tier). Non-positive values are ignored. · OPENGROK_STRICT_SSRF=When true, reject OPENGROK_BASE_URL values pointing at private/loopback IPs at startup. Default: false (warn only; per-request guards still apply). · OPENGROK_TIMEOUT=HTTP request timeout in seconds for OpenGrok API calls. Increase for slow servers. Default: 30. · OPENGROK_USERNAME=OpenGrok authentication username. Leave unset for anonymous access. · OPENGROK_VERIFY_SSL=Verify TLS certificates. Set to false for self-signed or internal CA certs."
roh_symbolformate: ""
roh_verbindungswege: "{\"packages\":[{\"registryType\":\"npm\",\"identifier\":\"opengrok-mcp-server\",\"version\":\"9.6.0\",\"runtimeHint\":\"npx\",\"transport\":\"stdio\",\"environment\":[{\"name\":\"OPENGROK_BASE_URL\",\"description\":\"OpenGrok server base URL (e.g. https://opengrok.example.com/source/)\",\"format\":\"string\",\"required\":true,\"secret\":false},{\"name\":\"OPENGROK_USERNAME\",\"description\":\"OpenGrok authentication username. Leave unset for anonymous access.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_PASSWORD\",\"description\":\"OpenGrok authentication password. Prefer storing via OS keychain using 'npx opengrok-mcp-server setup'.\",\"format\":\"string\",\"required\":false,\"secret\":true},{\"name\":\"OPENGROK_VERIFY_SSL\",\"description\":\"Verify TLS certificates. Set to false for self-signed or internal CA certs.\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_CODE_MODE\",\"description\":\"Enable Code Mode: 2-tool sandbox interface with env.opengrok.* JavaScript API. Reduces AI token usage by ~90%.\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_ENABLE_MEMORY_TOOLS\",\"description\":\"Register the 3 memory tools in Code Mode (memory status, read, update). Off = api + execute only.\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_DEFAULT_PROJECT\",\"description\":\"Default project to scope all searches. Can be overridden per call.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_CONTEXT_BUDGET\",\"description\":\"Response size tier controlling token usage.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_API_VERSION\",\"description\":\"OpenGrok REST API version. Use v2 for call graph features (requires OpenGrok 1.12+).\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"HTTP_PROXY\",\"description\":\"HTTP/HTTPS proxy URL for all OpenGrok API requests (e.g. http://proxy.company.com:8080). Also set as HTTPS_PROXY.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_RESPONSE_FORMAT_OVERRIDE\",\"description\":\"Force a specific response format for all tools. Leave unset for per-tool auto-selection (recommended).\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_MEMORY_BANK_DIR\",\"description\":\"Directory where the AI stores investigation notes (active-task.md, investigation-log.md). Defaults to ~/.config/opengrok-mcp/memory-bank/ or workspace-relative when set by the VS Code extension.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_LOCAL_COMPILE_DB_PATHS\",\"description\":\"Comma-separated paths to compile_commands.json for C/C++ compiler flag and include-path extraction. Leave unset for automatic workspace discovery.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_ENABLE_ELICITATION\",\"description\":\"Interactive AI Prompts — the AI pauses to ask questions during investigations (project selection, file disambiguation). Requires Claude Code v2.1.76+ or a client that supports MCP Elicitation.\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_ENABLE_SAMPLING\",\"description\":\"AI Sampling — allow the server to request LLM completions for error explanations and summaries. Off by default to avoid consuming premium requests (e.g. GitHub Copilot).\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_SAMPLING_MODEL\",\"description\":\"Model preference for MCP Sampling (used for error explanation and query reformulation).\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_ENABLE_FILES_API\",\"description\":\"Files API Cache — avoids re-uploading unchanged investigation notes. Requires Files API support in the MCP client.\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_ENABLE_OBSERVATION_MASKER\",\"description\":\"Observation Masker — prepend compact history summaries to opengrok_execute results after N turns. Disabled by default; has no benefit for clients that retain full context (Claude Code, Cursor).\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_OBSERVATION_MASKER_TURNS\",\"description\":\"Number of most-recent opengrok_execute results to keep as full text before masking older ones. Default: 10.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_SAMPLING_MAX_TOKENS\",\"description\":\"Maximum tokens for AI sampling responses (error explanation, query reformulation). Range: 64–4096.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_AUDIT_LOG_FILE\",\"description\":\"Path to write structured audit events (CSV/JSON). Appends tool invocations, elicitation events, and errors. Leave unset to disable.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_RATELIMIT_RPM\",\"description\":\"Maximum requests per minute to the OpenGrok server. Default: 60.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_PER_TOOL_RATELIMIT\",\"description\":\"Per-tool rate limits in requests per minute, as comma-separated tool:rpm pairs (e.g. opengrok_execute:15,opengrok_search_code:30). Overrides OPENGROK_RATELIMIT_RPM for specific tools.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_TIMEOUT\",\"description\":\"HTTP request timeout in seconds for OpenGrok API calls. Increase for slow servers. Default: 30.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_DEFAULT_MAX_RESULTS\",\"description\":\"Default maximum number of results returned per search query. Default: 25.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_PASSWORD_FILE\",\"description\":\"Path to a file containing the OpenGrok password (file-mounted secret for containers). Takes precedence over the OS keychain when OPENGROK_PASSWORD is unset.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_MAX_RESPONSE_BYTES\",\"description\":\"Hard cap on response payload size in bytes. Overrides the context-budget default. Non-positive values are ignored.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_SEARCH_AND_READ_CAP\",\"description\":\"Cap for the search_and_read compound tool in bytes. Overrides the context-budget default (2–8 KB depending on tier). Non-positive values are ignored.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_STRICT_SSRF\",\"description\":\"When true, reject OPENGROK_BASE_URL values pointing at private/loopback IPs at startup. Default: false (warn only; per-request guards still apply).\",\"format\":\"boolean\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_JWT_ISSUER\",\"description\":\"Expected JWT issuer (iss claim) for HTTP transport OAuth. When set, JWTs from other issuers are rejected.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"OPENGROK_GRAMMAR_DIR\",\"description\":\"Directory containing tree-sitter WASM grammars. Overrides the bundled grammar lookup.\",\"format\":\"string\",\"required\":false,\"secret\":false}],\"additional_arguments_declared\":false}],\"remotes\":[]}"
---

# OpenGrok MCP Server

## Gemessene Werte

| Merkmal | Wert | Quelle | Erhoben am | Vertrauensgrad | Rohangabe |
| --- | --- | --- | --- | --- | --- |
| Pflicht-Geheimnisse deklariert | false | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_geheime_pflichtvariablen: ; roh_geheime_pflichtkopfzeilen: |
| Ausführungsort | lokal | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_transportarten: stdio |
| Pfadargument vorhanden | false | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_pfadargumente: ; roh_pfad_umgebungsvariablen: |
| Repository-Adresse geführt | true | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_repository_url: https://github.com/IcyHot09/opengrok-mcp-server |
| Beschreibung (Rohangabe) | MCP server bridging OpenGrok search engine with AI for instant context across massive codebases. | MCP-Register | 2026-08-26T16:45:01.514Z | selbstauskunft |  |
| Deklarierte Version | 9.6.0 | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |
| Umgebungsvariablen (Rohangabe) | 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 | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |
| Geheime Pflichtvariablen (Rohangabe) |  | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Transportarten (Rohangabe) | stdio | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Pfadargumente (Rohangabe) |  | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Repository (Rohangabe) | https://github.com/IcyHot09/opengrok-mcp-server | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Paketquellen (Rohangabe) | npm | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Geheime Pflichtkopfzeilen (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Pfad-Umgebungsvariablen (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Remote-Adressen (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Remote-Hosts (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Statusmeldung des Registers (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Im Register eingetragen am (Rohangabe) | 2026-09-16 | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |
| Im Register geändert am (Rohangabe) | 2026-09-16 | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |
| Schemafassung des Rohsatzes (Rohangabe) | https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Bereitstellungsform (Rohangabe) | paket | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Repository-Plattform (Rohangabe) | github | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Repository-Unterordner (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Paketbezeichner (Rohangabe) | opengrok-mcp-server | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Paketversionen (Rohangabe) | 9.6.0 | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |
| Laufzeithinweise (Rohangabe) | npx | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Formate der Umgebungsvariablen (Rohangabe) | boolean, string | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Beschreibungen der Umgebungsvariablen (Rohangabe) | HTTP_PROXY=HTTP/HTTPS proxy URL for all OpenGrok API requests (e.g. http://proxy.company.com:8080). Also set as HTTPS_PROXY. · OPENGROK_API_VERSION=OpenGrok REST API version. Use v2 for call graph features (requires OpenGrok 1.12+). · OPENGROK_AUDIT_LOG_FILE=Path to write structured audit events (CSV/JSON). Appends tool invocations, elicitation events, and errors. Leave unset to disable. · OPENGROK_BASE_URL=OpenGrok server base URL (e.g. https://opengrok.example.com/source/) · OPENGROK_CODE_MODE=Enable Code Mode: 2-tool sandbox interface with env.opengrok.* JavaScript API. Reduces AI token usage by ~90%. · OPENGROK_CONTEXT_BUDGET=Response size tier controlling token usage. · OPENGROK_DEFAULT_MAX_RESULTS=Default maximum number of results returned per search query. Default: 25. · OPENGROK_DEFAULT_PROJECT=Default project to scope all searches. Can be overridden per call. · OPENGROK_ENABLE_ELICITATION=Interactive AI Prompts — the AI pauses to ask questions during investigations (project selection, file disambiguation). Requires Claude Code v2.1.76+ or a client that supports MCP Elicitation. · OPENGROK_ENABLE_FILES_API=Files API Cache — avoids re-uploading unchanged investigation notes. Requires Files API support in the MCP client. · OPENGROK_ENABLE_MEMORY_TOOLS=Register the 3 memory tools in Code Mode (memory status, read, update). Off = api + execute only. · OPENGROK_ENABLE_OBSERVATION_MASKER=Observation Masker — prepend compact history summaries to opengrok_execute results after N turns. Disabled by default; has no benefit for clients that retain full context (Claude Code, Cursor). · OPENGROK_ENABLE_SAMPLING=AI Sampling — allow the server to request LLM completions for error explanations and summaries. Off by default to avoid consuming premium requests (e.g. GitHub Copilot). · OPENGROK_GRAMMAR_DIR=Directory containing tree-sitter WASM grammars. Overrides the bundled grammar lookup. · OPENGROK_JWT_ISSUER=Expected JWT issuer (iss claim) for HTTP transport OAuth. When set, JWTs from other issuers are rejected. · OPENGROK_LOCAL_COMPILE_DB_PATHS=Comma-separated paths to compile_commands.json for C/C++ compiler flag and include-path extraction. Leave unset for automatic workspace discovery. · OPENGROK_MAX_RESPONSE_BYTES=Hard cap on response payload size in bytes. Overrides the context-budget default. Non-positive values are ignored. · OPENGROK_MEMORY_BANK_DIR=Directory where the AI stores investigation notes (active-task.md, investigation-log.md). Defaults to ~/.config/opengrok-mcp/memory-bank/ or workspace-relative when set by the VS Code extension. · OPENGROK_OBSERVATION_MASKER_TURNS=Number of most-recent opengrok_execute results to keep as full text before masking older ones. Default: 10. · OPENGROK_PASSWORD=OpenGrok authentication password. Prefer storing via OS keychain using 'npx opengrok-mcp-server setup'. · OPENGROK_PASSWORD_FILE=Path to a file containing the OpenGrok password (file-mounted secret for containers). Takes precedence over the OS keychain when OPENGROK_PASSWORD is unset. · OPENGROK_PER_TOOL_RATELIMIT=Per-tool rate limits in requests per minute, as comma-separated tool:rpm pairs (e.g. opengrok_execute:15,opengrok_search_code:30). Overrides OPENGROK_RATELIMIT_RPM for specific tools. · OPENGROK_RATELIMIT_RPM=Maximum requests per minute to the OpenGrok server. Default: 60. · OPENGROK_RESPONSE_FORMAT_OVERRIDE=Force a specific response format for all tools. Leave unset for per-tool auto-selection (recommended). · OPENGROK_SAMPLING_MAX_TOKENS=Maximum tokens for AI sampling responses (error explanation, query reformulation). Range: 64–4096. · OPENGROK_SAMPLING_MODEL=Model preference for MCP Sampling (used for error explanation and query reformulation). · OPENGROK_SEARCH_AND_READ_CAP=Cap for the search_and_read compound tool in bytes. Overrides the context-budget default (2–8 KB depending on tier). Non-positive values are ignored. · OPENGROK_STRICT_SSRF=When true, reject OPENGROK_BASE_URL values pointing at private/loopback IPs at startup. Default: false (warn only; per-request guards still apply). · OPENGROK_TIMEOUT=HTTP request timeout in seconds for OpenGrok API calls. Increase for slow servers. Default: 30. · OPENGROK_USERNAME=OpenGrok authentication username. Leave unset for anonymous access. · OPENGROK_VERIFY_SSL=Verify TLS certificates. Set to false for self-signed or internal CA certs. | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |
| Symbolformate (Rohangabe) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Verbindungswege (Quellstruktur) | {"packages":[{"registryType":"npm","identifier":"opengrok-mcp-server","version":"9.6.0","runtimeHint":"npx","transport":"stdio","environment":[{"name":"OPENGROK_BASE_URL","description":"OpenGrok server base URL (e.g. https://opengrok.example.com/source/)","format":"string","required":true,"secret":false},{"name":"OPENGROK_USERNAME","description":"OpenGrok authentication username. Leave unset for anonymous access.","format":"string","required":false,"secret":false},{"name":"OPENGROK_PASSWORD","description":"OpenGrok authentication password. Prefer storing via OS keychain using 'npx opengrok-mcp-server setup'.","format":"string","required":false,"secret":true},{"name":"OPENGROK_VERIFY_SSL","description":"Verify TLS certificates. Set to false for self-signed or internal CA certs.","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_CODE_MODE","description":"Enable Code Mode: 2-tool sandbox interface with env.opengrok.* JavaScript API. Reduces AI token usage by ~90%.","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_ENABLE_MEMORY_TOOLS","description":"Register the 3 memory tools in Code Mode (memory status, read, update). Off = api + execute only.","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_DEFAULT_PROJECT","description":"Default project to scope all searches. Can be overridden per call.","format":"string","required":false,"secret":false},{"name":"OPENGROK_CONTEXT_BUDGET","description":"Response size tier controlling token usage.","format":"string","required":false,"secret":false},{"name":"OPENGROK_API_VERSION","description":"OpenGrok REST API version. Use v2 for call graph features (requires OpenGrok 1.12+).","format":"string","required":false,"secret":false},{"name":"HTTP_PROXY","description":"HTTP/HTTPS proxy URL for all OpenGrok API requests (e.g. http://proxy.company.com:8080). Also set as HTTPS_PROXY.","format":"string","required":false,"secret":false},{"name":"OPENGROK_RESPONSE_FORMAT_OVERRIDE","description":"Force a specific response format for all tools. Leave unset for per-tool auto-selection (recommended).","format":"string","required":false,"secret":false},{"name":"OPENGROK_MEMORY_BANK_DIR","description":"Directory where the AI stores investigation notes (active-task.md, investigation-log.md). Defaults to ~/.config/opengrok-mcp/memory-bank/ or workspace-relative when set by the VS Code extension.","format":"string","required":false,"secret":false},{"name":"OPENGROK_LOCAL_COMPILE_DB_PATHS","description":"Comma-separated paths to compile_commands.json for C/C++ compiler flag and include-path extraction. Leave unset for automatic workspace discovery.","format":"string","required":false,"secret":false},{"name":"OPENGROK_ENABLE_ELICITATION","description":"Interactive AI Prompts — the AI pauses to ask questions during investigations (project selection, file disambiguation). Requires Claude Code v2.1.76+ or a client that supports MCP Elicitation.","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_ENABLE_SAMPLING","description":"AI Sampling — allow the server to request LLM completions for error explanations and summaries. Off by default to avoid consuming premium requests (e.g. GitHub Copilot).","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_SAMPLING_MODEL","description":"Model preference for MCP Sampling (used for error explanation and query reformulation).","format":"string","required":false,"secret":false},{"name":"OPENGROK_ENABLE_FILES_API","description":"Files API Cache — avoids re-uploading unchanged investigation notes. Requires Files API support in the MCP client.","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_ENABLE_OBSERVATION_MASKER","description":"Observation Masker — prepend compact history summaries to opengrok_execute results after N turns. Disabled by default; has no benefit for clients that retain full context (Claude Code, Cursor).","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_OBSERVATION_MASKER_TURNS","description":"Number of most-recent opengrok_execute results to keep as full text before masking older ones. Default: 10.","format":"string","required":false,"secret":false},{"name":"OPENGROK_SAMPLING_MAX_TOKENS","description":"Maximum tokens for AI sampling responses (error explanation, query reformulation). Range: 64–4096.","format":"string","required":false,"secret":false},{"name":"OPENGROK_AUDIT_LOG_FILE","description":"Path to write structured audit events (CSV/JSON). Appends tool invocations, elicitation events, and errors. Leave unset to disable.","format":"string","required":false,"secret":false},{"name":"OPENGROK_RATELIMIT_RPM","description":"Maximum requests per minute to the OpenGrok server. Default: 60.","format":"string","required":false,"secret":false},{"name":"OPENGROK_PER_TOOL_RATELIMIT","description":"Per-tool rate limits in requests per minute, as comma-separated tool:rpm pairs (e.g. opengrok_execute:15,opengrok_search_code:30). Overrides OPENGROK_RATELIMIT_RPM for specific tools.","format":"string","required":false,"secret":false},{"name":"OPENGROK_TIMEOUT","description":"HTTP request timeout in seconds for OpenGrok API calls. Increase for slow servers. Default: 30.","format":"string","required":false,"secret":false},{"name":"OPENGROK_DEFAULT_MAX_RESULTS","description":"Default maximum number of results returned per search query. Default: 25.","format":"string","required":false,"secret":false},{"name":"OPENGROK_PASSWORD_FILE","description":"Path to a file containing the OpenGrok password (file-mounted secret for containers). Takes precedence over the OS keychain when OPENGROK_PASSWORD is unset.","format":"string","required":false,"secret":false},{"name":"OPENGROK_MAX_RESPONSE_BYTES","description":"Hard cap on response payload size in bytes. Overrides the context-budget default. Non-positive values are ignored.","format":"string","required":false,"secret":false},{"name":"OPENGROK_SEARCH_AND_READ_CAP","description":"Cap for the search_and_read compound tool in bytes. Overrides the context-budget default (2–8 KB depending on tier). Non-positive values are ignored.","format":"string","required":false,"secret":false},{"name":"OPENGROK_STRICT_SSRF","description":"When true, reject OPENGROK_BASE_URL values pointing at private/loopback IPs at startup. Default: false (warn only; per-request guards still apply).","format":"boolean","required":false,"secret":false},{"name":"OPENGROK_JWT_ISSUER","description":"Expected JWT issuer (iss claim) for HTTP transport OAuth. When set, JWTs from other issuers are rejected.","format":"string","required":false,"secret":false},{"name":"OPENGROK_GRAMMAR_DIR","description":"Directory containing tree-sitter WASM grammars. Overrides the bundled grammar lookup.","format":"string","required":false,"secret":false}],"additional_arguments_declared":false}],"remotes":[]} | MCP-Register | 2026-09-17T01:17:02.009Z | selbstauskunft |  |

## Verweise

- Namensraum: [[namensraum/io-github-icyhot09|io.github.IcyHot09]]

---

- Registerseite: <https://tracevero.de/mcp/io-github-icyhot09-opengrok-mcp-server>
- Abgerufen am: 2026-10-12
