本地文件与SQLite访问服务

MCP Server是一个通过TypeScript构建的模型上下文协议服务器,为AI客户端如Claude Desktop提供本地文件和SQLite数据库的访问功能。

  • by gajarhalwa14
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 gajarhalwa14/mcp-server

使用说明

MCP服务器

一种模型上下文协议(MCP)服务器,向Claude Desktop等AI客户端公开本地文件和SQLite访问权限。使用TypeScript和官方MCP SDK构建。

特性

工具

工具 说明
read_file 从本地文件系统读取文件。路径必须在 ALLOWED_DIRS。返回内容、大小和MIME类型。
query_sqlite 以只读模式运行 SELECT 对本地SQLite数据库的查询。支持参数绑定、行限制和超时。

资源

URI 描述
config://server 非敏感服务器配置(传输、限制、允许的目录)。
schema://sqlite/{db_path} SQLite数据库的表和列模式。

提示

提示 描述
analyse-file 引导模型通过以下方式读取文件 read_file 并生成结构化分析。
query-and-explain 引导模型运行 query_sqlite 并用通俗易懂的语言解释结果。

运输方式

模式 用例 如何启用
工作室 Claude Desktop、MCP检查员、本地开发人员 MCP_TRANSPORT=stdio (默认)
超文本传输协议 远程部署,多用户 MCP_TRANSPORT=http

HTTP模式包括CORS、速率限制(每IP 100个请求/15分钟)和DNS重新绑定保护。

设置

1.安装依赖项

npm install

2.配置环境

复制 .env.example 到 .env 并设置所需变量:

cp .env.example .env

编辑 .env 并设置 ALLOWED_DIRS 对于服务器可能读取的逗号分隔的绝对路径:

ALLOWED_DIRS=/path/to/your/data,/path/to/another/dir

3.构建和运行

npm run build
npm run dev      # Development (tsx, hot reload)
# or
npm run start    # Production (node build/src/server.js)

配置

变量 必填 默认 描述
ALLOWED_DIRS 是 -- 文件和数据库访问的逗号分隔绝对路径
MCP_TRANSPORT 没有 stdio stdio 或 http
PORT 没有 3000 HTTP端口(当 MCP_TRANSPORT=http)
LOG_LEVEL 没有 info debug, info, warn, error
MAX_FILE_BYTES 没有 1048576 的最大文件大小 read_file (1 MB)
SQLITE_MAX_ROWS 没有 500 每行的最大行数 query_sqlite 结果
QUERY_TIMEOUT_MS 没有 10000 查询超时(毫秒)

Claude桌面集成

将服务器添加到Claude Desktop的配置中(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "mcp-server": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/build/src/server.js"],
      "env": {
        "ALLOWED_DIRS": "/path/to/your/data"
      }
    }
  }
}

重新启动Claude Desktop以加载服务器。

HTTP模式

对于远程部署,请设置 MCP_TRANSPORT=http 并且可选 PORT:

MCP_TRANSPORT=http PORT=3000 ALLOWED_DIRS=/data npm run start

服务器在给定端口上侦听。MCP客户端连接到 http://host:port/mcp 用于通过流式HTTP的JSON-RPC。

测试

npm run test          # Run tests (watch mode)
npm run test:run      # Run once
npm run test:coverage # Run with coverage report

MCP检查员

使用以下命令调试服务器 MCP检查员,在STDIO模式下运行服务器,并将检查器指向它:

npm run dev

然后在MCP Inspector中,使用命令添加服务器 node 和args ["build/src/server.js"],或使用 inspect 脚本可用时。

文档

  • 规格 — SPEC.md 功能和技术栈
  • 建筑 — ARCHITECTURE.md 用于目录布局和设计
  • 实施 — TODO.md 用于实施检查表

许可证

麻省理工学院