问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

配置Claude Desktop连接本地SQLite数据库和文件系统

创作时间:
作者:
@小白创作中心

配置Claude Desktop连接本地SQLite数据库和文件系统

引用
CSDN
1.
https://m.blog.csdn.net/davenian/article/details/144164804

本文将详细介绍如何在Windows系统上配置Claude Desktop连接本地SQLite数据库和文件系统。通过MCP(Model Context Protocol)协议,用户可以实现Claude Desktop与本地资源的安全连接,从而打破AI的信息孤岛。

起因

在抖音博客上,艾克AI分享了他的视频《Claude开源MCP彻底打破AI的信息孤岛》。视频中提到Claude开源的MCP非常强大,但视频中的快速演示让人难以理解。虽然菜单看起来不同,但感觉使用的是不同的Claude版本。

探索

什么是 MCP

MCP(Model Context Protocol)是Claude开发的一种模型关联(上下文)协议。其目的是帮助前沿模型生成更好、更相关的响应。MCP提供了一种通用的开放标准,用于将AI系统与数据源连接,取代了分散的集成,使用单一协议。结果是为AI系统提供所需数据的方式更简单、更可靠。

MCP的主要组成部分包括:

  • MCP规范和SDK
  • 本地的MCP服务器支持在Claude Desktop App中使用
  • 一个开源的MCP服务器库

MCP如何工作

MCP实现AI应用程序与本地或远程资源之间的安全的、受控的对话。其核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器。

总体架构

  • MCP Hosts:程序如Claude Desktop、IDE或者AI工具,希望通过MCP访问资源
  • MCP Clients:保持着与服务器1对1的连接的协议客户端
  • MCP Servers:通过标准化的MCP协议展露特定功能的每个轻量级程序
  • Local Resources:MCP servers能访问的计算机上的资源,如数据库、文档、应用/系统服务
  • Remote Resources:MCP Servers能通过互联网连接到的可用资源,如APIs

实践1:使用SQLite

使用SQLite实现一个示例(在Windows 11上操作):

MCP Client:Claude Desktop App
MCP Server:SQLite提供数据库的访问
Local Resource:本地的SQLite数据库

  1. 准备环境

安装Claude Desktop App、uv(Python包管理器和虚拟环境工具)、SQLite(轻量级的关系型数据库管理系统)、Git(版本控制系统):

# Using winget
winget install --id=astral-sh.uv -e
winget install git.git sqlite.sqlite
# Or download directly:
# uv: https://docs.astral.sh/uv/
# Git: https://git-scm.com
# SQLite: https://www.sqlite.org/download.html
  1. 创建一个样本数据库

以下是复制于指南的,这是PowerShell命令格式,创建一个create_db.ps1文件:

Z:\>mkdir practice
Z:\>cd practice
Z:\practice>notepad create_db.ps1
Z:\practice>

把以下内容复制到create_db.ps1文件里:

# Create a new SQLite database
$sql = @'
CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  name TEXT,
  price REAL
);
INSERT INTO products (name, price) VALUES
  ('Widget', 19.99),
  ('Gadget', 29.99),
  ('Gizmo', 39.99),
  ('Smart Watch', 199.99),
  ('Wireless Earbuds', 89.99),
  ('Portable Charger', 24.99),
  ('Bluetooth Speaker', 79.99),
  ('Phone Stand', 15.99),
  ('Laptop Sleeve', 34.99),
  ('Mini Drone', 299.99),
  ('LED Desk Lamp', 45.99),
  ('Keyboard', 129.99),
  ('Mouse Pad', 12.99),
  ('USB Hub', 49.99),
  ('Webcam', 69.99),
  ('Screen Protector', 9.99),
  ('Travel Adapter', 27.99),
  ('Gaming Headset', 159.99),
  ('Fitness Tracker', 119.99),
  ('Portable SSD', 179.99);
'@
cd ~
& sqlite3 test.db $sql

在PowerShell里运行这个文件,会去创建一个test.db数据库(包含为products表,其有20条记录),还可以用sqlite3打开应用,在里面用命令行操作,略...

  1. 配置Claude Desktop

在文本编辑器中打开%APPDATA%\Claude\claude_desktop_config.json文件(Claude Desktop应用的配置)

因为Windows 11上有安装VS code,可以在CMD打开这个配置文件:

PS C:\Users\dave> code $env:AppData\Roaming\Claude\claude_desktop_config.json

注1:你需要查看Claude Desktop安装目录,指南上是“$env:AppData\Claude\claude_desktop_config.json”,我的Win 11的位置是上面的。
注2:在我的Claude目录下并没有claude_desktop_config.json这个文件。

添加以下内容到json文件(替换YOUR_USERNAME):

{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "Z:\\practice\\test.db"
      ]
    }
  }
}

让Claude Desktop去连接刚才创建的test.db数据库。现在就可以保存json文件,并重启Claude Desktop(我是用Task Manger去找Claude.exe右键end task,再点图标)

注:Norton会检测Claude Desktop App有病毒,需要做exception操作。

  1. 验证

再次启动Claude Desktop App,

原文章中的Prompt:

Can you connect to my SQLite database and tell me what products are available, and their prices?

执行时,会有一个CMD窗口来运行uvx mcp-server-sqlite --db-path连接数据库,不要关闭!还会遇到授权:

C:\Users\dave>sqlite3
SQLite version 3.47.0 2024-10-21 16:30:22
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open test.db
![](https://wy-static.wenxiaobai.com/chat-rag-image/17697130203423134310)
sqlite> .schema table_name
sqlite> SELECT * FROM sqlite_master WHERE type='table';
table|products|products|2|CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  name TEXT,
  price REAL
)
table|orders|orders|3|CREATE TABLE orders (
    order_id INTEGER PRIMARY KEY,
    customer_name TEXT NOT NULL,
    customer_email TEXT,
    product_id INTEGER,
    quantity INTEGER NOT NULL DEFAULT 1,
    order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
    total_amount REAL NOT NULL,
    status TEXT DEFAULT 'pending',
    shipping_address TEXT,
    FOREIGN KEY (product_id) REFERENCES products(id)
)
sqlite>
  1. 小结

查询表中内容、创建新表都可以用prompt来执行,中英文都行。

实践2:访问文件系统

  1. 准备环境,安装Node.js, uv工具

在电脑上运行JavaScript代码,需要Node.js(链接是下载LTS版)。
npx需要uv tools : Tools | uv

  1. 配置Claude Desktop

添加以下内容到claude_desktop_config.json文件:(替换YOUR_USERNAME为你的实际用户名),你也可以设置为其它路径。我这里用的是claude-server文件夹。

"filesystem": {
  "command": "npx",
  "args": ["/c", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/claude-server"]
}
  1. 配置文件:index.ts package.json tsconfig.json

servers/src/filesystem at main · dave2nian/servers · GitHub
上面三个文件带有链接,下载后放后你需要Claude AI访问的目录。我实践用的是C:\Users\dave\claude-server

然后安装NODE依赖库,命令如下:
cd C:\Users\dave\claude-server
npm install
注:package.json中有写需要的库,或者用npm install express也行。

  1. 验证

结束所有的Claude.exe进程与node.exe进程(如果有),再次启动Claude Desktop App
如果在对话框中有“小锤子”(我删除了SQLite,只保留Filesystem所以是9个功能)。
借用我在GITHUB posts.
prompt: to create a text file that name is greeting with content "hello word!" in my folder
Claude Desktop app利用node.js在我的计算机上,创建了一个文本文件,并内容是“Hello Word!"(想起以前学basicII)
重点是:
我在网上看到的所有(其实就2处)都是"-y"参数,一定要用"/c"。看我的配置文件里都用debug,为这实现这个功能,耗了两晚上。
added below on 4DEC2024:

实践3:网络文件系统(Windows mapping network driver)


Claude 3天前更新了Claude Desktop去修复了npx在Windows上的问题,如图:

用我之前的配置,也是可以正常工作的。
因为我的laptop只有一个C盘,其它的都是NAS的映射盘符,这个实践来演示,MCP filesystem在Windows 11系统上如何实现文件系统访问

  1. 准备环境:同实践ii
    见上面。

  2. 配置Claude Desktop,参考z: mapping \davens\davens\Multimedia
    目标目录:Z:\2024-MyProgramFiles
    Desktop配置文件:C:\Users<your windows ID/account>\AppData\Roaming\Claude\claude_desktop_config.json

{
    "mcpServers": {
        "filesystem": {
            "command": "npx",
            "args": [
                "-y",
                "@modelcontextprotocol/server-filesystem",
                "\\\\davens\\Multimedia\\2024-MyProgramFiles"
            ]
        }
    }
}
  1. node.js三个配置文件
    同实践ii.3提到的三个文件复制到Z:\2024-MyProgramFiles目录下就好。

  2. 验证
    Prompt:list local file

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号