关于 mcp-devtools
mcp-devtools 是面向开发者和 AI Agent 的 MCP 服务,可在范围与权限限制下访问本地开发环境。它将文件、数据库、进程和 OpenAPI 操作集中为工具,并支持资源、提示词及插件扩展。
主要功能
- 01文件、数据库、进程和 API 工具
- 02stdio 与带认证的 HTTP 传输
- 03MCP 资源和提示词
- 04插件 API 扩展自定义工具
- 05路径范围、命令白名单和只读 SQL 控制
- 06调用审计、密钥屏蔽与输出限制
适用场景
- 01在项目范围内读取和搜索文件
- 02运行命令并查看进程或日志
- 03执行受只读限制的数据库查询
- 04按 OpenAPI 规范调用受限主机
MCP 相关
该 MCP 服务向客户端提供 14 个工具、3 个 MCP 资源和 4 个 MCP 提示词,并支持 stdio 或带认证的 HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
15收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| message | string | 是 | 服务器将回显的任意字符串 |
详细介绍
mcp-devtools
通过 Model Context Protocol 提供 AI 原生开发者工具。 一个适用于生产环境的 MCP 服务,为 AI Agent(Claude、Cursor、Copilot、Continue 等) 提供安全且范围受限的本地开发环境访问权限。
为什么选择它
MCP 生态中充斥着单一用途的教程和受供应商锁定的适配器。目前还没有维护良好、支持多种工具、不依赖特定框架且适用于生产环境的 MCP 软件包,可满足日常开发工具需求。
mcp-devtools 填补了这一空白,提供 14 个工具、3 个 MCP 资源、
4 个 MCP 提示词、插件 API、两种传输模式(stdio + HTTP
身份验证)以及审计日志 — 基于在 DailyBot 生产环境中不断完善的实践构建。
快速开始
stdio(默认)
npx @oscarmarin/mcp-devtools
将其添加到 Claude 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-devtools
MCP 端点将在 http://localhost:3333 上可用。
工具
| 分组 | 工具 |
|---|---|
| 文件系统 | read_file、write_file、list_directory、search_files、get_file_info |
| 数据库 | query_db、list_tables、describe_table |
| 进程 | run_command、read_logs、get_env、list_processes |
| OpenAPI | parse_openapi、call_api |
各工具的参考文档:docs/tools/。
MCP 资源
该服务通过 MCP 资源公开只读数据:
| URI | 描述 |
|---|---|
devtools://tools | 包含所有已注册工具及其架构的目录 |
devtools://server-info | 服务版本、传输方式、范围和工具数量 |
MCP 提示词
为常见开发工作流精选的提示词模板:
| 提示词 | 描述 |
|---|---|
debug_error | 使用 mcp-devtools 工具系统地调试错误 |
code_review | 检查文件中的错误、安全问题和代码质量 |
explore_codebase | 探索并了解项目的结构和约定 |
refactor_function | 重构函数,以提升可读性、性能或可测试性 |
插件 API
通过自定义工具扩展 mcp-devtools,无需分叉项目。
基于配置(启动时加载):
{
"plugins": ["./my-tools.js", "@scope/mcp-plugin-foo"]
}
每个插件模块都默认导出一个工具定义数组:
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() },
}),
}),
];
配置
配置由 cosmiconfig
从 mcp-devtools.json、.mcp-devtoolsrc 或 package.json 中的
mcpDevtools 键加载。完整架构请参阅 mcp-devtools.example.json
和 docs/configuration.md。
支持零配置:不提供配置运行 npx @oscarmarin/mcp-devtools 时,将使用架构默认值(RNF-05)。
安全
四项不可绕过的控制措施:
- 文件系统范围边界。 每个路径都会解析为绝对路径,并与
config.scope进行比较。逃出范围的符号链接会触发SCOPE_VIOLATION。 - 命令允许列表。
run_command仅执行其基本名称在allowedCommands中的二进制文件。调用使用spawn(file, args)(不使用 shell),因此在结构上不可能通过命令参数进行 shell 注入。 - 数据库只读模式。 当
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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。