mcp-devtools
mcp-devtools
Model Context Protocol을 통한 AI 네이티브 개발자 도구. AI 에이전트(Claude, Cursor, Copilot, Continue 등)가 로컬 개발 환경에 안전하고 제한된 범위 내에서 접근할 수 있도록 하는 프로덕션급 MCP 서버입니다.
목적
MCP 생태계는 단일 목적의 튜토리얼과 특정 벤더에 종속된 어댑터들로 가득 차 있습니다. 일상적인 개발 도구로 사용할 수 있는, 잘 관리되고 다중 도구를 지원하며 프레임워크에 구애받지 않는 프로덕션 품질의 MCP 패키지는 부족한 실정입니다.
mcp-devtools는 14개의 도구, 3개의 MCP 리소스, 4개의 MCP 프롬프트, 플러그인 API, 두 가지 전송 모드(stdio + 인증이 포함된 HTTP), 그리고 감사 로그를 제공하여 이러한 공백을 메웁니다. 이는 DailyBot의 프로덕션 환경에서 검증된 패턴을 기반으로 구축되었습니다.
Related MCP server: GPT Commander
빠른 시작
stdio (기본값)
npx @oscarmarin/mcp-devtoolsClaude Desktop 설정(~/Library/Application Support/Claude/claude_desktop_config.json)에 추가하세요:
{
"mcpServers": {
"devtools": {
"command": "npx",
"args": ["-y", "@oscarmarin/mcp-devtools"]
}
}
}또는 Cursor (~/.cursor/mcp.json)에 동일한 블록을 추가하세요.
HTTP 전송
프로젝트 루트에 mcp-devtools.json 파일을 생성하세요:
{
"transport": "http",
"port": 3333,
"auth": {
"token": "env:MCP_AUTH_TOKEN"
}
}그런 다음 서버를 시작하세요:
npx @oscarmarin/mcp-devtoolsMCP 엔드포인트는 http://localhost:3333에서 사용할 수 있습니다.
도구
그룹 | 도구 |
파일 시스템 |
|
데이터베이스 |
|
프로세스 |
|
OpenAPI |
|
도구별 참조: docs/tools/.
MCP 리소스
이 서버는 MCP 리소스를 통해 읽기 전용 데이터를 노출합니다:
URI | 설명 |
| 스키마를 포함한 모든 등록된 도구 카탈로그 |
| 서버 버전, 전송 방식, 범위, 도구 개수 |
MCP 프롬프트
일반적인 개발 워크플로우를 위한 엄선된 프롬프트 템플릿입니다:
프롬프트 | 설명 |
| mcp-devtools 도구를 사용하여 체계적으로 오류 디버깅 |
| 파일의 버그, 보안 문제 및 코드 품질 검토 |
| 프로젝트 구조 및 규칙 탐색 및 이해 |
| 가독성, 성능 또는 테스트 용이성을 위해 함수 리팩토링 |
플러그인 API
포크(fork) 없이 사용자 정의 도구로 mcp-devtools를 확장하세요.
설정 기반(시작 시 로드):
{
"plugins": ["./my-tools.js", "@scope/mcp-plugin-foo"]
}각 플러그인 모듈은 도구 정의 배열을 기본으로 내보냅니다(default-export):
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() },
}),
}),
];설정
설정은 mcp-devtools.json, .mcp-devtoolsrc 또는 package.json의 mcpDevtools 키에서 cosmiconfig를 통해 로드됩니다. 전체 스키마는 mcp-devtools.example.json 및 docs/configuration.md를 참조하세요.
설정 없이도 사용할 수 있습니다: 설정 없이 npx @oscarmarin/mcp-devtools를 실행하면 스키마 기본값이 사용됩니다(RNF-05).
보안
우회할 수 없는 네 가지 제어 장치:
파일 시스템 범위 제한. 모든 경로는 절대 경로로 확인되며
config.scope와 비교됩니다. 범위를 벗어나는 심볼릭 링크는SCOPE_VIOLATION오류를 발생시킵니다.명령어 허용 목록.
run_command는 basename이allowedCommands에 포함된 바이너리만 실행합니다. 호출 시spawn(file, args)를 사용(쉘 미사용)하므로 명령어 인수를 통한 쉘 인젝션은 구조적으로 불가능합니다.데이터베이스 읽기 전용 모드.
readOnly: true일 경우 모든 SQL이 파싱되며INSERT/UPDATE/DELETE/DROP/CREATE/GRANT는 거부됩니다. 쿼리는 PostgreSQL에서BEGIN READ ONLY ... ROLLBACK으로 실행됩니다.HTTP Bearer 인증.
auth.token이 설정된 경우 모든 HTTP 요청에는Authorization: Bearer <token>이 포함되어야 합니다. 비교는 타이밍 공격을 방지하기 위해crypto.timingSafeEqual을 사용합니다.
추가 안전 조치:
감사 로그. 모든 도구 호출에 대해 타이밍, 정제된 입력, 결과 상태를 포함하는 선택적 NDJSON 로그를 제공합니다.
비밀값 마스킹.
get_env는 일반적인 비밀 패턴(SECRET,TOKEN,PASSWORD,KEY등)과 일치하는 값을 자동으로 마스킹합니다.OpenAPI 호스트 제한.
call_api는 사양의servers배열에 나열된 호스트로만 요청을 보냅니다.출력 제한. 모든 도구는 컨텍스트 과부하를 방지하기 위해 출력을 제한합니다(명령어 100KB, 파일 1MB, 쿼리 200행).
기여하기
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 .전체 워크플로우는 CONTRIBUTING.md를, 커뮤니티 가이드라인은 CODE_OF_CONDUCT.md를 참조하세요.
라이선스
MIT © Oscar Humberto Marin Molina — oscarmarindev.com
Available Tools
15 toolscall_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
Scored across 15 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceOpen-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.97MIT
- AlicenseCqualityDmaintenanceA security-first MCP server that provides LLMs with structured tools for filesystem, process, search, build/test/lint, IDE integration, and more.402PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityDmaintenanceAn 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 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA self-hosted MCP server that gives AI agents controlled access to a machine: filesystem, shell, background processes, git, web fetching and persistent key-value memory.GPL 3.0