# io.github.marin1321/mcp-devtools (npm · @oscarmarin/mcp-devtools)

MCP server giving AI agents safe access to filesystem, databases, processes, and APIs.

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

## Components

- npm · `@oscarmarin/mcp-devtools`: 65/100 (this document), [markdown](https://verifymcp.io/servers/marin1321-mcp-devtools/oscarmarin-mcp-devtools.md), [page](https://verifymcp.io/servers/marin1321-mcp-devtools/oscarmarin-mcp-devtools)

## Channel facts

- Registry: `npm`
- Package: `@oscarmarin/mcp-devtools`
- Version: `1.0.1`
- 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 (135 of 139), 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 (135 of 139), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 95 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 857 tokens (~50/item across 17 items; 15 tools + 2 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 72/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 17% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add marin1321-mcp-devtools -- npx -y @oscarmarin/mcp-devtools
```

### Codex

```bash
codex mcp add marin1321-mcp-devtools -- npx -y @oscarmarin/mcp-devtools
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "marin1321-mcp-devtools": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@oscarmarin/mcp-devtools"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add marin1321-mcp-devtools --command npx --arg -y --arg @oscarmarin/mcp-devtools
```

### Hermes

```yaml
mcp_servers:
  marin1321-mcp-devtools:
    command: "npx"
    args: ["-y", "@oscarmarin/mcp-devtools"]
```

### Other

```json
{
  "mcpServers": {
    "marin1321-mcp-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "@oscarmarin/mcp-devtools"
      ]
    }
  }
}
```

## 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 65, +3)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-02 (score 62, +31)

- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Security disclosure: fail → unverified
- [functional regression] License: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Maintenance: pass → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → fair
- [functional] Licence: MIT

### 2026-08-01 (score 31, +8)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-07-31 (score 23, +17)

- [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, −43)

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

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

First indexed and scored.

## MCP tools (15)

### `echo_test` (~45 tokens)

Echo test

Returns the provided message and a server-side ISO timestamp. Used to verify the MCP server pipeline end-to-end.

Input parameters:

- `message` (string, required): Arbitrary string the server will echo back

### `read_file` (~79 tokens)

Read file

Read a text file inside the configured scope. Optionally restrict to a line range.

Input parameters:

- `endLine` (integer): 1-based, inclusive. Returns up to and including this line.
- `path` (string, required): Relative path from the configured scope root
- `startLine` (integer): 1-based, inclusive. Returns from this line onwards.

### `write_file` (~56 tokens)

Write file

Write a file atomically inside the configured scope (writes to a temp file then renames).

Input parameters:

- `content` (string, required)
- `createDirs` (boolean)
- `encoding` (string)
- `path` (string, required)

### `list_directory` (~52 tokens)

List directory

List directory entries inside the configured scope, with optional recursion and glob filtering.

Input parameters:

- `depth` (integer)
- `glob` (string)
- `includeHidden` (boolean)
- `path` (string)

### `search_files` (~92 tokens)

Search files

Search for a pattern (literal or regex) across files inside the configured scope.

Input parameters:

- `caseInsensitive` (boolean)
- `contextLines` (integer)
- `glob` (string)
- `includeHidden` (boolean)
- `maxResults` (integer)
- `path` (string)
- `pattern` (string, required)
- `regex` (boolean): Treat `pattern` as a regular expression

### `get_file_info` (~38 tokens)

Get file info

Return metadata (size, type, MIME, line count, symlink info) for a file or directory.

Input parameters:

- `path` (string, required)

### `query_db` (~62 tokens)

Query database

Execute a parameterized SQL query against a configured database connection. Read-only by default.

Input parameters:

- `connection` (string)
- `maxRows` (integer)
- `params` (array)
- `sql` (string, required)
- `timeoutMs` (integer)

### `list_tables` (~30 tokens)

List tables

List tables in a configured database connection.

Input parameters:

- `connection` (string)
- `schema` (string)

### `describe_table` (~41 tokens)

Describe table

Return column metadata for a table in a configured database connection.

Input parameters:

- `connection` (string)
- `schema` (string)
- `table` (string, required)

### `run_command` (~73 tokens)

Run command

Spawn a process from the configured allowedCommands list. Captures stdout/stderr with caps and a timeout.

Input parameters:

- `args` (array)
- `command` (string, required): Binary name (must be in allowedCommands)
- `cwd` (string)
- `env` (object)
- `timeoutMs` (integer)

### `read_logs` (~49 tokens)

Read logs

Read the tail of a configured log file with optional filter.

Input parameters:

- `filter` (string)
- `jsonField` (string)
- `path` (string, required)
- `tail` (integer)

### `get_env` (~52 tokens)

Get environment

Return environment variables (process env or .env file) with optional masking.

Input parameters:

- `keys` (array)
- `maskSecrets` (boolean)
- `path` (string)
- `source` (string)

### `list_processes` (~60 tokens)

List processes

List running processes, optionally filtered by name or listening port.

Input parameters:

- `limit` (integer): Maximum number of results
- `name` (string): Filter processes by name substring (case-insensitive)
- `port` (integer): Filter by TCP listening port

### `parse_openapi` (~28 tokens)

Parse OpenAPI

Parse an OpenAPI spec and return a summary of operations.

Input parameters:

- `path` (string, required)

### `call_api` (~62 tokens)

Call API

Invoke an operation defined in an OpenAPI spec.

Input parameters:

- `body`
- `headers` (object)
- `operationId` (string, required)
- `pathParams` (object)
- `queryParams` (object)
- `specPath` (string, required)

## Diagnostics

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

## Score history

- 2026-08-03: 65
- 2026-08-02: 62
- 2026-08-01: 31
- 2026-07-31: 23
- 2026-07-30: 6
- 2026-07-28: 49
- 2026-07-27: 49

## Links

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