Skip to main content
Glama

mcp-devtools

npm version CI License: MIT Node.js

Herramientas de desarrollo nativas para IA a través del Model Context Protocol. Un servidor MCP de nivel de producción que brinda a los agentes de IA (Claude, Cursor, Copilot, Continue, ...) acceso seguro y delimitado a su entorno de desarrollo local.

Por qué

El ecosistema MCP está lleno de tutoriales de un solo propósito y adaptadores vinculados a proveedores. No existe un paquete MCP bien mantenido, multiherramienta, agnóstico al framework y de calidad de producción para las herramientas de desarrollo cotidianas.

mcp-devtools llena ese vacío con 14 herramientas, 3 recursos MCP, 4 prompts MCP, una API de plugins, dos modos de transporte (stdio + HTTP con autenticación) y un registro de auditoría, construidos sobre patrones perfeccionados en producción en DailyBot.

Related MCP server: GPT Commander

Inicio rápido

stdio (predeterminado)

npx @oscarmarin/mcp-devtools

Añádalo a Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

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

O a Cursor (~/.cursor/mcp.json): mismo bloque.

Transporte HTTP

Cree un archivo mcp-devtools.json en la raíz de su proyecto:

{
  "transport": "http",
  "port": 3333,
  "auth": {
    "token": "env:MCP_AUTH_TOKEN"
  }
}

Luego inicie el servidor:

npx @oscarmarin/mcp-devtools

El endpoint MCP estará disponible en http://localhost:3333.

Herramientas

Grupo

Herramientas

Sistema de archivos

read_file, write_file, list_directory, search_files, get_file_info

Base de datos

query_db, list_tables, describe_table

Proceso

run_command, read_logs, get_env, list_processes

OpenAPI

parse_openapi, call_api

Referencia por herramienta: docs/tools/.

Recursos MCP

El servidor expone datos de solo lectura a través de recursos MCP:

URI

Descripción

devtools://tools

Catálogo de todas las herramientas registradas con esquemas

devtools://server-info

Versión del servidor, transporte, alcance, recuento de herramientas

Prompts MCP

Plantillas de prompts seleccionadas para flujos de trabajo de desarrollo comunes:

Prompt

Descripción

debug_error

Depurar sistemáticamente un error usando herramientas de mcp-devtools

code_review

Revisar un archivo en busca de errores, problemas de seguridad y calidad de código

explore_codebase

Explorar y comprender la estructura y convenciones de un proyecto

refactor_function

Refactorizar una función para mejorar la legibilidad, el rendimiento o la capacidad de prueba

API de plugins

Extienda mcp-devtools con herramientas personalizadas, sin necesidad de hacer un fork.

Basado en configuración (cargar al inicio):

{
  "plugins": ["./my-tools.js", "@scope/mcp-plugin-foo"]
}

Cada módulo de plugin exporta por defecto una matriz de definiciones de herramientas:

import { defineTool } from "@oscarmarin/mcp-devtools";
import { z } from "zod";

export default [
  defineTool({
    name: "my_tool",
    description: "Does something useful",
    inputSchema: z.object({ input: z.string() }),
    handler: async (args, config) => ({
      ok: true,
      data: { result: args.input.toUpperCase() },
    }),
  }),
];

Configuración

La configuración es cargada por cosmiconfig desde mcp-devtools.json, .mcp-devtoolsrc o la clave mcpDevtools en package.json. Consulte mcp-devtools.example.json y docs/configuration.md para ver el esquema completo.

Se admite la configuración cero: ejecutar npx @oscarmarin/mcp-devtools sin configuración utiliza los valores predeterminados del esquema (RNF-05).

Seguridad

Cuatro controles no eludibles:

  1. Límite de alcance del sistema de archivos. Cada ruta se resuelve a una absoluta y se compara con config.scope. Los enlaces simbólicos que escapan del alcance lanzan SCOPE_VIOLATION.

  2. Lista de permitidos de comandos. run_command solo ejecuta binarios cuyo nombre base esté en allowedCommands. La invocación utiliza spawn(file, args) (sin shell), por lo que la inyección de shell a través del argumento de comando es estructuralmente imposible.

  3. Modo de solo lectura de base de datos. Cuando readOnly: true, todo SQL se analiza y se rechazan INSERT/UPDATE/DELETE/DROP/CREATE/GRANT. Las consultas se ejecutan en BEGIN READ ONLY ... ROLLBACK en PostgreSQL.

  4. Autenticación HTTP Bearer. Cuando auth.token está configurado, cada solicitud HTTP debe incluir Authorization: Bearer <token>. La comparación utiliza crypto.timingSafeEqual para evitar ataques de temporización.

Medidas de seguridad adicionales:

  • Registro de auditoría. Registro NDJSON opcional de cada invocación de herramienta con tiempos, entradas saneadas y estado del resultado.

  • Enmascaramiento de secretos. get_env enmascara automáticamente los valores que coinciden con patrones de secretos comunes (SECRET, TOKEN, PASSWORD, KEY, etc.).

  • Restricción de host OpenAPI. call_api solo envía solicitudes a los hosts enumerados en la matriz servers de la especificación.

  • Limitación de salida. Todas las herramientas limitan su salida para evitar inundar el contexto (100 KB para comandos, 1 MB para archivos, 200 filas para consultas).

Contribución

git clone https://github.com/marin1321/mcp-devtools.git
cd mcp-devtools
npm install
npm run dev       # tsup --watch
npm run test      # vitest
npm run typecheck # tsc --noEmit
npm run lint      # eslint .

Consulte CONTRIBUTING.md para conocer el flujo de trabajo completo y CODE_OF_CONDUCT.md para las pautas de la comunidad.

Licencia

MIT © Oscar Humberto Marin Molina — oscarmarindev.com

Available Tools

15 tools
call_apiCall APIC

Invoke an operation defined in an OpenAPI spec.

Inputs: specPath (required), operationId (required), pathParams, queryParams, +2 more.

describe_tableDescribe tableC

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

Inputs: table (required), connection, schema.

echo_testEcho testA

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

Inputs: message (required).

get_envGet environmentC

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

Inputs: source, path, keys, maskSecrets.

get_file_infoGet file infoA

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

Inputs: path (required).

list_directoryList directoryC

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

Inputs: path, depth, glob, includeHidden.

list_processesList processesB

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

Inputs: name, port, limit.

list_tablesList tablesC

List tables in a configured database connection.

Inputs: connection, schema.

parse_openapiParse OpenAPIB

Parse an OpenAPI spec and return a summary of operations.

Inputs: path (required).

query_dbQuery databaseC

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

Inputs: sql (required), connection, params, timeoutMs, +1 more.

read_fileRead fileB

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

Inputs: path (required), startLine, endLine.

read_logsRead logsC

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

Inputs: path (required), tail, filter, jsonField.

run_commandRun commandC

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

Inputs: command (required), args, cwd, timeoutMs, +1 more.

search_filesSearch filesC

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

Inputs: pattern (required), path, glob, regex, +4 more.

write_fileWrite fileA

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

Inputs: path (required), content (required), encoding, createDirs.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool targets a distinct operation: database metadata vs query, file read vs write vs listing vs search, process listing vs command execution, API calling vs spec parsing, etc. No two tools have overlapping purposes.

    Naming Consistency5/5

    All tools follow a verb_noun pattern in snake_case (e.g., list_directory, read_file, query_db). The verbs vary but are appropriate for the action, and the naming is uniform throughout.

    Tool Count4/5

    15 tools is slightly broad for a devtools server covering databases, files, processes, APIs, logs, and environment variables, but each tool has a clear role and the count is not excessive for a general-purpose utility server.

    Completeness3/5

    Core developer utilities are covered (file ops, database queries, command execution, API handling), but there are gaps like no process kill, no file editing, no HTTP utilities, and database is read-only. The set feels like a curated collection rather than a comprehensive toolkit.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      Open-source, local macOS MCP server for AI agents. Automate background Safari/Chrome tabs, native apps, files and shell with scoped permissions, optional approvals and delegated coding agents.
      97
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that gives your AI assistant full awareness of your local dev environment — running processes, Docker containers, git state, open ports, log files, and more.
      8 npm
      1
      MIT