Serveur MCP devtools
✓ VérifiéOffre aux agents IA un accès sécurisé et limité au système de fichiers local, aux bases de données, aux processus système et aux points de terminaison OpenAPI.
Aussi connu sous marin1321/mcp-devtools, @oscarmarin/mcp-devtools
- Étoiles
- 4
- Outils
- —
- Téléchargements, 30 jours
- —
- Dernière version
- 1.0.1
- Dernier commit
- 1 juil. 2026
- Licence
- MIT
Qu'est-ce que devtools MCP ?
devtools est un serveur MCP. Offre aux agents IA un accès sécurisé et limité au système de fichiers local, aux bases de données, aux processus système et aux points de terminaison OpenAPI.
Résumé généré à partir du README du projet
À propos du MCP server devtools
mcp-devtools permet d'offrir un accès sécurisé à votre environnement de développement local pour des agents IA tels que Claude, Cursor ou Copilot. Il fournit une interface unifiée permettant aux agents d'interagir avec les systèmes de fichiers, les bases de données, les processus système et les points de terminaison OpenAPI grâce à 14 outils spécialisés. Les développeurs peuvent exécuter le serveur localement en utilisant stdio via npx ou configurer un transport HTTP avec une authentification Bearer pour un accès à distance.
Le serveur inclut des mesures de sécurité intégrées telles que des limites de portée pour le système de fichiers, une liste blanche de commandes pour l'exécution de processus et un mode lecture seule pour les requêtes de base de données. Il dispose également d'un journal d'audit pour suivre les invocations d'outils et d'un masquage automatique des secrets pour les variables d'environnement. Les utilisateurs peuvent étendre les fonctionnalités sans forker le code en utilisant l'API Plugin pour charger des définitions d'outils personnalisées via des fichiers de configuration. Cela en fait un choix polyvalent pour les développeurs qui ont besoin d'un package unique de qualité production pour gérer de multiples tâches de développement au sein d'un flux de travail piloté par l'IA.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer devtools MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller devtools MCP dans Claude Code
$ claude mcp add mcp-devtools -- npx -y @oscarmarin/mcp-devtoolsInstaller devtools MCP dans Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp-devtools": {
"command": "npx",
"args": [
"-y",
"@oscarmarin/mcp-devtools"
]
}
}
}Installer devtools MCP dans VS Code
.vscode/mcp.json
{
"servers": {
"mcp-devtools": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@oscarmarin/mcp-devtools"
]
}
}
}Installer devtools MCP dans VS Code CLI
$ code --add-mcp '{"name":"mcp-devtools","type":"stdio","command":"npx","args":["-y","@oscarmarin/mcp-devtools"]}'Installer devtools MCP dans Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp-devtools": {
"command": "npx",
"args": [
"-y",
"@oscarmarin/mcp-devtools"
]
}
}
}Installer devtools MCP dans Codex
$ codex mcp add mcp-devtools -- npx -y @oscarmarin/mcp-devtoolsInstaller devtools MCP dans Codex config.toml
~/.codex/config.toml
[mcp_servers.mcp-devtools] command = "npx" args = ["-y", "@oscarmarin/mcp-devtools"]
Installer devtools MCP dans Gemini CLI
$ gemini mcp add -s user mcp-devtools npx -- -y @oscarmarin/mcp-devtoolsInstaller devtools MCP dans Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"mcp-devtools": {
"command": "npx",
"args": [
"-y",
"@oscarmarin/mcp-devtools"
]
}
}
}Vérifications automatisées
Exécuté le 15 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessiblemarin1321/mcp-devtools is public and reachablegithub.com/marin1321/mcp-devtools ↗Réussi
- Le nom du package correspond au dépôt source@oscarmarin/mcp-devtools names marin1321/mcp-devtools as sourcenpmjs.com/package/@oscarmarin/mcp-devtools ↗Réussi
- Provenance du build (attestation Sigstore)No build attestation published for this releaseNon vérifié
- Licence open source (OSI)MITspdx.org/licenses/MIT.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit or release 2026-07-01github.com/marin1321/mcp-devtools ↗Réussi
- OpenSSF ScorecardNon vérifié
- Nom du package non proche d'un package populaireNo popular package one edit away from @oscarmarin/mcp-devtoolsRéussi
- Aucun avis critique dans le package ou ses dépendances139 resolved dependencies checked; no critical advisoryosv.dev ↗Réussi
- Aucune instruction cachée destinée au modèle0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersRéussi
- Les outils destructifs sont étiquetésNon vérifié
- Le point de terminaison distant répond à la poignée de main MCPNon vérifié
README
Voir sur GitHubmcp-devtools
AI-native developer tools via Model Context Protocol. A production-grade MCP server that gives AI agents (Claude, Cursor, Copilot, Continue, ...) safe, scoped access to your local development environment.
Why
The MCP ecosystem is full of single-purpose tutorials and vendor-locked adapters. There is no well-maintained, multi-tool, framework-agnostic, production-quality MCP package for everyday developer tooling.
mcp-devtools fills that gap with 14 tools, 3 MCP Resources,
4 MCP Prompts, a Plugin API, two transport modes (stdio + HTTP
with auth), and an audit log — built on patterns refined in production
at DailyBot.
Quick start
stdio (default)
npx @oscarmarin/mcp-devtools
Add it to Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"devtools": {
"command": "npx",
"args": ["-y", "@oscarmarin/mcp-devtools"]
}
}
}
Or Cursor (~/.cursor/mcp.json): same block.
HTTP transport
Create a mcp-devtools.json in your project root:
{
"transport": "http",
"port": 3333,
"auth": {
"token": "env:MCP_AUTH_TOKEN"
}
}
Then start the server:
npx @oscarmarin/mcp-devtools
The MCP endpoint will be available at http://localhost:3333.
Tools
| Group | Tools |
|---|---|
| Filesystem | read_file, write_file, list_directory, search_files, get_file_info |
| Database | query_db, list_tables, describe_table |
| Process | run_command, read_logs, get_env, list_processes |
| OpenAPI | parse_openapi, call_api |
Per-tool reference: docs/tools/.
MCP Resources
The server exposes read-only data via MCP Resources:
| URI | Description |
|---|---|
devtools://tools |
Catalog of all registered tools with schemas |
devtools://server-info |
Server version, transport, scope, tool count |
MCP Prompts
Curated prompt templates for common development workflows:
| Prompt | Description |
|---|---|
debug_error |
Systematically debug an error using mcp-devtools tools |
code_review |
Review a file for bugs, security issues, and code quality |
explore_codebase |
Explore and understand a project's structure and conventions |
refactor_function |
Refactor a function for readability, performance, or testability |
Plugin API
Extend mcp-devtools with custom tools — no fork required.
Config-based (load at startup):
{
"plugins": ["./my-tools.js", "@scope/mcp-plugin-foo"]
}
Each plugin module default-exports an array of tool definitions:
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() },
}),
}),
];
Configuration
Configuration is loaded by cosmiconfig
from mcp-devtools.json, .mcp-devtoolsrc, or the mcpDevtools key in
package.json. See mcp-devtools.example.json
and docs/configuration.md for the full schema.
Zero-config is supported: running npx @oscarmarin/mcp-devtools with no config uses
schema defaults (RNF-05).
Security
Four non-bypassable controls:
- Filesystem scope boundary. Every path is resolved to an absolute and
compared against
config.scope. Symlinks that escape scope throwSCOPE_VIOLATION. - Command allowlist.
run_commandonly executes binaries whose basename is inallowedCommands. Invocation usesspawn(file, args)(no shell), so shell-injection via the command argument is structurally impossible. - Database read-only mode. When
readOnly: true, all SQL is parsed andINSERT/UPDATE/DELETE/DROP/CREATE/GRANTare rejected. Queries run inBEGIN READ ONLY ... ROLLBACKon PostgreSQL. - HTTP Bearer auth. When
auth.tokenis configured, every HTTP request must includeAuthorization: Bearer <token>. Comparison usescrypto.timingSafeEqualto prevent timing attacks.
Additional safety measures:
- Audit log. Opt-in NDJSON log of every tool invocation with timing, sanitized inputs, and result status.
- Secret masking.
get_envautomatically masks values matching common secret patterns (SECRET,TOKEN,PASSWORD,KEY, etc.). - OpenAPI host restriction.
call_apionly sends requests to hosts listed in the spec'sserversarray. - Output capping. All tools cap their output to prevent context flooding (100KB for commands, 1MB for files, 200 rows for queries).
Contributing
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 .
See CONTRIBUTING.md for the full workflow and
CODE_OF_CONDUCT.md for community guidelines.
License
MIT © Oscar Humberto Marin Molina — oscarmarindev.com
Questions sur devtools MCP
Comment ajouter devtools MCP à Claude Code ?
Exécutez claude mcp add mcp-devtools -- npx -y @oscarmarin/mcp-devtools dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter devtools MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Comment puis-je étendre le serveur avec mes propres outils ?
Vous pouvez utiliser l'API Plugin pour étendre le serveur avec des outils personnalisés sans avoir à le forker, soit via un chargement basé sur la configuration au démarrage, soit en définissant des modules d'outils.
Puis-je utiliser ce serveur via HTTP ?
Oui, le serveur prend en charge deux modes de transport : stdio (par défaut) et HTTP avec authentification.
Le serveur empêche-t-il l'injection de shell ?
Oui, l'outil run_command utilise spawn(file, args) sans shell, ce qui rend l'injection de shell via les arguments de commande structurellement impossible.