# devtools MCP server

> Provides AI agents with safe, scoped access to local filesystems, databases, system processes, and OpenAPI endpoints.

- Repository: https://github.com/marin1321/mcp-devtools
- Page: https://hostedmcp.org/servers/marin1321/mcp-devtools
- Transport: stdio
- Stars: 4
- License: MIT
- Latest version: 1.0.1

## Install

### Claude Code

```sh
claude mcp add mcp-devtools -- npx -y @oscarmarin/mcp-devtools
```

### Cursor (`~/.cursor/mcp.json`)

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

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "mcp-devtools": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@oscarmarin/mcp-devtools"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"mcp-devtools","type":"stdio","command":"npx","args":["-y","@oscarmarin/mcp-devtools"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

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

### Codex

```sh
codex mcp add mcp-devtools -- npx -y @oscarmarin/mcp-devtools
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.mcp-devtools]
command = "npx"
args = ["-y", "@oscarmarin/mcp-devtools"]
```

### Gemini CLI

```sh
gemini mcp add -s user mcp-devtools npx -- -y @oscarmarin/mcp-devtools
```

### Gemini settings.json (`~/.gemini/settings.json`)

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

## FAQ

### How can I extend the server with my own tools?

You can use the Plugin API to extend the server with custom tools without forking it, either via config-based loading at startup or by defining tool modules.

### Can I use this server over HTTP?

Yes, the server supports two transport modes: stdio (default) and HTTP with authentication.

### Does the server prevent shell injection?

Yes, the run_command tool uses spawn(file, args) without a shell, making shell-injection via command arguments structurally impossible.
