# OpenGrok MCP Server (npm · opengrok-mcp-server)

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

- Trust score: 67/100 (medium)
- Change this week: +21
- Registry status: deprecated
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

> **Deprecated**: this server is marked deprecated in the MCP registry.

## Components

- npm · `opengrok-mcp-server`: 67/100 (this document), [markdown](https://verifymcp.io/servers/icyhot09-opengrok/opengrok-mcp-server.md), [page](https://verifymcp.io/servers/icyhot09-opengrok/opengrok-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `opengrok-mcp-server`
- Version: `3.3.5`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (108 of 112), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (108 of 112), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: the license (PolyForm-Noncommercial-1.0.0) isn't a recognized OSI-approved license.
  - Actively maintained (last published 113 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 681 tokens (~48/item across 14 items; 14 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add icyhot09-opengrok -- npx -y opengrok-mcp-server
```

### Codex

```bash
codex mcp add icyhot09-opengrok -- npx -y opengrok-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "icyhot09-opengrok": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "opengrok-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add icyhot09-opengrok --command npx --arg -y --arg opengrok-mcp-server
```

### Hermes

```yaml
mcp_servers:
  icyhot09-opengrok:
    command: "npx"
    args: ["-y", "opengrok-mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "icyhot09-opengrok": {
      "command": "npx",
      "args": [
        "-y",
        "opengrok-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 66, +45)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] License: unverified → fail
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: PolyForm-Noncommercial-1.0.0

### 2026-07-31 (score 21, +15)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −40)

- [security regression] Malware scan: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (14)

### `search_code` (~53 tokens)

Search OpenGrok. Types: full (text), defs (definitions), refs (references), path (filenames), hist (commit messages). Prefer defs/refs for known symbol names. Use batch_search for multiple queries.

### `find_file` (~19 tokens)

Find files by name/path pattern across the codebase.

### `get_file_content` (~43 tokens)

Get file contents. ALWAYS pass start_line/end_line — never fetch full files. Use search_code first to find line numbers. For full symbol context use get_symbol_context.

### `get_file_history` (~15 tokens)

Commit history for a file.

### `browse_directory` (~16 tokens)

List files/subdirectories at a path.

### `list_projects` (~15 tokens)

List indexed OpenGrok projects.

### `get_file_annotate` (~29 tokens)

Blame annotations (who changed each line). Use start_line/end_line to limit output.

### `search_suggest` (~17 tokens)

Autocomplete suggestions for a partial query.

### `batch_search` (~33 tokens)

Execute up to 5 searches in parallel in one call. Always prefer this over multiple search_code calls for the same investigation.

### `search_and_read` (~37 tokens)

Search and return matching code with surrounding context in one call. Use instead of search_code + get_file_content. Never fetches full files.

### `get_symbol_context` (~37 tokens)

Complete symbol investigation in one call: definition with context + corresponding header + references. Use this first for any unknown C++ symbol or function.

### `index_health` (~25 tokens)

OpenGrok server connection status and diagnostics. Call if results seem stale or incomplete.

### `get_compile_info` (~41 tokens)

Get compilation details for a source file: compiler, include paths, preprocessor defines, and language standard. Requires compile_commands.json to be present in the workspace.

### `get_file_symbols` (~42 tokens)

List all symbols defined in a file: functions, classes, structs, macros with line numbers and signatures. Use this to understand a file's structure before reading it.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/icyhot09-opengrok/opengrok-mcp-server#diagnostics

## Score history

- 2026-08-03: 67
- 2026-08-02: 66
- 2026-08-01: 21
- 2026-07-31: 21
- 2026-07-30: 6
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/opengrok-mcp-server
- Socket report: https://socket.dev/npm/package/opengrok-mcp-server
- Repository: https://github.com/IcyHot09/opengrok-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/icyhot09-opengrok/opengrok-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/icyhot09-opengrok/opengrok-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/icyhot09-opengrok/opengrok-mcp-server
