Atlas / MCP servers / mcollina / Ripgrep

RipgrepBLOCK

mcp/mcollina/ripgrep

An MCP server to wrap ripgrep

Verdict
BLOCK
Grade
D
Trust score
65 /100
Exposed tools
5 5r · 0w · 0d
Transport
stdio
License
MIT
Stars
75
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

An MCP server that provides ripgrep (rg) search capabilities to any MCP client such as Claude.

Overview

This server provides a Model Context Protocol (MCP) interface for the powerful ripgrep search tool. It enables Claude AI and other MCP-compatible clients to perform high-performance text searches across files on your system.

Prerequisites

  • Node.js (v18 or higher)
  • ripgrep (rg) command installed and available in your PATH. Install it with brew install ripgrep on macOS.

Usage with Claude for Desktop

To use this MCP server with Claude for Desktop:

  1. Edit your Claude for Desktop configuration file:
  2. macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Windows: %APPDATA%\Claude\claude_desktop_config.json
  1. Add the following to your configuration:
{
"mcpServers": {
"ripgrep": {
"command": "npx",
"args": ["-y", "mcp-ripgrep@latest"]
}
}
}

Replace /path/to/mcp-ripgrep with the absolute path to where you cloned this repository.

  1. Restart Claude for Desktop.

Available Tools

search

Basic search with ripgrep:

Pattern: error
Path: ./src

advanced-search

More advanced search with additional options:

Pattern: function
Path: ./src
FixedStrings: true
FileType: ts
IncludeHidden: false

count-matches

Count occurrences of a pattern:

Pattern: TODO
Path: ./src
CountLines: true

list-files

List files that would be searched without actually searching them:

Path: ./src
FileType: js

list-file-types

List all supported file types in ripgrep.

Security Considerations

This MCP server executes shell commands using the ripgrep tool. While efforts have been made to safely escape arguments, use caution when providing input as it runs commands on your machine.

License

MIT

Read from source at commit f1df98a898b7OBSERVED · 2026-10-07
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add mcp-ripgrep -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-ripgrep": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (5)

5 read · 0 write · 0 destructive.

ToolRiskDescription
advanced-searchreadAdvanced search with ripgrep with more options
count-matchesreadCount matches in files using ripgrep
list-file-typesreadList all supported file types in ripgrep
list-filesreadList files that would be searched by ripgrep without actually searching them
searchreadSearch files for patterns using ripgrep (rg)
04

Trust audit

BLOCKgrade D · trust 65/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (6)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/index.ts:245
const { stdout, stderr } = await exec(command);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/index.ts:363
const { stdout, stderr } = await exec(command);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/index.ts:424
const { stdout, stderr } = await exec(command);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/index.ts:472
const { stdout, stderr } = await exec(command);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/index.ts:494
const { stdout, stderr } = await exec(command);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, zod, @types/node, typescript
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha f1df98a898b7full audit observations/trust-audit/mcp-server/mcollina__ripgrep.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-07f1df98a898b7BLOCKD65first audit
06

Questions

What is the Ripgrep MCP server?

An MCP server to wrap ripgrep

What tools does Ripgrep expose?

5 in total: 5 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Ripgrep safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (65/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does Ripgrep need?

No credential environment variables were found in its source, so it appears to need none.

How does Ripgrep run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as mcp-ripgrep at 0.4.0.

How current is this page?

The grade is for one exact copy of the source (f1df98a898b7), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement