本地MCP服务器
这是一个本地MCP服务器,提供访问本地文件系统的工具。它公开了一个SSE(服务器发送事件)端点,供LLM连接。
先决条件
- Node.js(建议使用v18或更高版本)
npm
安装
- 克隆此存储库或导航到该目录。
- 安装依赖项:
npm install用法
启动服务器
您可以在开发模式下启动服务器:
npm start或者构建并运行:
npm run build
node dist/server.js服务器将在端口上运行 3000 默认情况下。
连接MCP客户端
服务器在以下位置公开SSE端点: http://localhost:3000/sse
配置您的MCP客户端(例如,在 claude_desktop_config.json 或LLM工具设置)来使用此SSE端点。
日志记录
服务器将所有工具调用、参数和错误记录到 mcp-server.log 在项目根目录中。它还将日志打印到控制台。
注: 此服务器允许对本地文件系统进行读取访问。确保您信任连接到它的客户端。
可用工具
list_directory:列出指定绝对路径中的文件和子目录。read_file:读取指定绝对路径下的文件内容。
安全与最佳实践
⚠️ 重要提示:此服务器允许对您的本地系统进行广泛访问。小心使用。
风险
- 任意文件访问:工具(
list_directory,read_file)接受绝对路径。理论上,恶意或混淆的LLM可以读取您的用户帐户可以访问的任何文件(例如SSH密钥、配置文件)。 - 网络曝光:默认情况下,
app.listen(3000)可能会接受来自本地网络上其他设备的连接,具体取决于您的操作系统防火墙配置。这可能会将您的文件暴露给同一Wi-Fi上的其他人。 - 无认证:没有内置的身份验证机制。依靠网络隔离。
推荐优化
如果您计划在不太可信的环境中使用此功能,请考虑添加:
- 路径白名单:修改
resolvePath在src/server.ts如果路径不在特定的允许目录内(例如。,process.cwd()). - 绑定到本地主机:更改listen命令以显式绑定到
127.0.0.1仅限于:
app.listen(3000, "127.0.0.1", () => { ... });