当前位置: 首页 > news >正文

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统

也是在学习中...

起因:

抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》  提到: Claude开源的MCP太强了,视频后面是快速演示,反正看了好几遍也没弄明白。菜单都不一样,感觉用的不是同一家 Claude.  

探索:

有用的信息有源:TUTORIAL: GET MCP WORKING ON WINDOWS (教程:在 Windows 上运行 MCP) 

1. 什么是 MCP

MCP:Claude Model Context Protocol  暂定义为 模型关联(上下方)协议

信息来源:Introducing the Model Context Protocol \ Anthropic  几段翻译:

“今天,我们开源了 Model Context Protocol(MCP),这是一个将人工智能助手与数据存储系统(包括内容库、业务工具和开发环境)连接的新标准。其目的是帮助前沿模型生成更好、更相关的响应。”

“MCP 解决了这个挑战(模型与数据隔离)。它提供了一种通用的开放标准,用于将 AI 系统与数据源连接,取代了分散的集成,使用单一协议。结果是为 AI 系统提供所需数据的方式更简单、更可靠。”

“MCP是一种开放标准,使开发者能够在他们的数据源和人工智能工具之间建立安全的双向连接。架构很简单:开发者可以通过 MCP 服务器公开他们的数据,或者构建连接到这些服务器的人工智能应用程序(MCP 客户端)。”

MCP 三个主要组成部分:

  • MCP规范和 SDK
  • 本地的 MCP 服务器支持在 Claude Desktop App.  (点右侧下载:Claude Desktop Apps​​​​​​)
  • 一个开源的 MCP 服务器库

2. 开始构建第一个 MCP 服务器

信息来源:https://modelcontextprotocol.io/quickstart

我想省略这部分,但看到这个实践过程小于5分钟,还是代手翻译一下。

MCP 是一种协议,能够在主机应用程序(如 Claude Desktop)和本地服务之间建立安全连接。

“Claude Desktop’s MCP support is currently in developer preview and only supports connecting to local MCP servers running on your machine. Remote MCP connections are not yet supported. This integration is only available in the Claude Desktop app, not the Claude web interface (claude.ai).”   仅集成在 Claude Desktop App,网页不行。 所以要安装 Claude Desktop Apps​​​​​​

a. MCP 如何工作

MCP 实现 AI 应用程序与本地或远程资源之间的安全的、受控的对话。

i. 总体架构

在其核心,MCP 遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:

来自:https://modelcontextprotocol.io/quickstart

这里有几个名字解释

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

ii. 实践 1 使用 SQLite 

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

来自: Quickstart - Model Context Protocol

MCP Client:Claude Desktop App
MCP Server:SQLlite 提供数据库的访问
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

把上面框里,不带 # 开头的,每行在 CMD 运行去安装

C:\Users\dave>winget install --id=astral-sh.uv -e
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").Do you agree to all the source agreements terms?
[Y] Yes  [N] No: y
Found uv [astral-sh.uv] Version 0.5.5
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:- PackagesMicrosoft.VCRedist.2015+.x64
Downloading https://github.com/astral-sh/uv/releases/download/0.5.5/uv-x86_64-pc-windows-msvc.zip██████████████████████████████  14.4 MB / 14.4 MB
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Path environment variable modified; restart your shell to use the new value.
Command line alias added: "uv"
Command line alias added: "uvx"
Successfully installed
C:\Users\dave>winget install git.git sqlite.sqlite
(1/2) Found Git [Git.Git] Version 2.47.1
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/Git-2.47.1-64-bit.exe██████████████████████████████  65.9 MB / 65.9 MB
Successfully verified installer hash
Starting package install...
The installer will request to run as administrator, expect a prompt.
Successfully installed(2/2) Found SQLite [SQLite.SQLite] Version 3.47.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://www.sqlite.org/2024/sqlite-tools-win-x64-3470000.zip██████████████████████████████  6.04 MB / 6.04 MB
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Path environment variable modified; restart your shell to use the new value.
Command line alias added: "sqldiff"
Command line alias added: "sqlite3_analyzer"
Command line alias added: "sqlite3"
Successfully installed
2)创建一个样本数据库

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

Z:\>mkdir practiceZ:\>cd practiceZ:\practice>notepad create_db.ps1Z:\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

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

3)配置 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 操作。

4)验证

再次起动 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
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>
5)小结

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

iii. 实践 2 访问文件系统

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

在电脑上运行 JavaScript 代码,需要 Node.js (链接是下载 LTS 版).

npx 需要 uv tools : Tools | uv

2)配置 Claude Desktop

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

"filesystem": {"command": "npx","args": ["/c", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/claude-server"]
}
3)配置文件: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 也行。

4)验证

结束所有的 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:

iii. 实践 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"]}}
}
3)node.js 三个配置文件

同 实践ii.3  提到的三个文件复制到 Z:\2024-MyProgramFiles 目录下就好。

4)验证

Prompt: list local file

牢骚几句:

本来写了一编个 AI 的比较:

竟然说我打 广告:

写了很多对比,这审查制度,是不是因为我没充值?  没有设置收费?

相关文章:

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统

也是在学习中... 起因&#xff1a; 抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》 提到: Claude开源的MCP太强了&#xff0c;视频后面是快速演示&#xff0c;反正看了好几遍也没弄明白。菜单都不一样&#xff0c;感觉用的不是同一家 Claude. 探…...

GIT的使用方法以及汉化方法

1.下载git软件&#xff0c;可以从官网下载 下载后默认安装即可。 2.找到一个文件夹&#xff0c;或者直接打开gitbash gitbash可以使用cd指令切换目录的 打开后输入 git clone https:[git仓库的网页]即可克隆仓库 就是这个地址 克隆后即可使用代码 如果忘记了命令可以使用 -…...

公因子的数目

给你两个正整数 a 和 b &#xff0c;返回 a 和 b 的 公 因子的数目。 如果 x 可以同时整除 a 和 b &#xff0c;则认为 x 是 a 和 b 的一个 公因子 。 输入&#xff1a;a 12, b 6 输出&#xff1a;4 解释&#xff1a;12 和 6 的公因子是 1、2、3、6 。 class Solution {pu…...

数据结构(三)——双向链表的介绍以及实现

前言 前面两期数据结构的文章我们介绍了顺序表和单向链表&#xff0c;那么本篇博文我们将来了解双向链表&#xff0c;作为最好用的一种链表&#xff0c;双向链表有什么特殊之处呢&#xff0c;接下来就让我们一起了解一下吧。 下面是前两篇数据结构的文章&#xff1a; 数据结…...

Webpack开发模式及处理样式资源

一、开发模式介绍 开发模式顾名思义就是我们开发代码时使用的模式。 这个模式下我们主要做两件事&#xff1a; 编译代码&#xff0c;使浏览器能识别运行 开发时我们有样式资源、字体图标、图片资源、html 资源等&#xff0c;webpack 默认都不能处理这些资源&#xff0c;所以我…...

leetcode--设计链表

707.设计链表 你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需要属性 prev 以指示链表中的…...

【MySQL】:数据库操作

MySQL 数据库基础理论 2.1 数据库系统概述 介绍数据库系统的基本概念、发展历程、分类及 MySQL 在其中的地位与特点。 2.2 MySQL 数据库体系结构 解析 MySQL 的整体架构&#xff0c;包括服务器层与存储引擎层的功能与交互机制&#xff0c;重点探讨 InnoDB、MyISAM 等存…...

刷蓝桥杯历年考题(更新至15届~)

第十五届 CA组省赛 AcWing5980.训练士兵 方法一&#xff1a;树状数组:O(nlogn) self-complete /*先枚举组团&#xff0c;后分析每个士兵&#xff0c;有一个特点&#xff0c;组团费用是固定的&#xff0c;那当然是让所有士兵一块训练&#xff0c;训练完的士兵也不会有损失当还…...

AI与BI的火花:大语言模型如何重塑商业智能的未来

大家好&#xff0c;我是独孤风。 在当今这个数据驱动的时代&#xff0c;企业对于信息的需求如同对于氧气的需求一般至关重要。商业智能&#xff08;BI&#xff09;作为企业获取、分析和呈现数据的关键工具&#xff0c;正在经历一场深刻的变革&#xff0c;而这一变革的催化剂正是…...

Qt 详解QtNFC 读写模式

文章目录 Qt NFC 读写模式详解1. NFC 读写模式简介1.1 什么是 NFC 读写模式&#xff1f;主要功能&#xff1a; 1.2 常见应用场景 2. Qt NFC 读写模式原理3. 配置 QtNFC 模块4. NFC 读写操作实现4.1 NFC 标签读取代码示例功能解析 4.2 NFC 标签写入代码示例功能解析 5. 使用注意…...

增删改查文档

列表 : 列表包含 : 模糊查找 分页 列表jsp页面 : 一 :导入外部文件 (举例 : 用户点进来就可以看到菜单,这是预加载属于,使用文档就绪函数实现) 二 : body 上 ① : 文档就绪函数 ${ function() //获取条件查询的字段 //组装对象 //调用文档就绪函数 } ② : 封装ajax方…...

C语言蓝桥杯2023年省赛真题

文章目录 持续更新中...第一题题目描述输入格式输出格式样例输出提示 2 第二题题目描述 第三题题目描述输入格式输出格式样例输入样例输出 第四题题目描述输入格式输出格式样例输入样例输出提示 第四题题目描述输入格式输出格式样例输入样例输出提示 第五题题目描述输入格式输出…...

Python迭代器-大数据量的处理

一 生成器的实际使用&#xff08;大量数据的导出&#xff09; #分批导出数据然后分批写入excel import pandas as pd import openpyxl from openpyxl.utils.dataframe import dataframe_to_rowsdef execute_query(query):# 假设这是执行 SQL 查询的函数# 返回查询结果passdef …...

自动化包括态交互与感交互,而智能化包括势交互与知交互

“自动化包括态交互与感交互&#xff0c;而智能化包括势交互与知交互”交互框架将交互过程划分为不同类型&#xff0c;有助于更清晰地理解自动化和智能化的本质及其在未来agent应用中的差异与联系。 1. 自动化&#xff1a;态交互与感交互 自动化主要关注的是高效、无差错地执行…...

VideoBooth: Diffusion-based Video Generation with Image Prompts

VideoBooth: Diffusion-based Video Generation with Image Prompts 概括 文章提出了一个视频生成模型VideoBooth&#xff0c;输入一张图片和一个文本提示词&#xff0c;即可输出保持图片中物体且符合文本提示词要求的视频。 方法 粗-细两阶段设计&#xff1a;1&#xff09;…...

模拟简单的iOT工作流

没有实际接触过iOT的流程&#xff0c;应该实际使用比这个接口返回要复杂&#xff0c;只是演示~希望能参与实际的接口接入&#xff0c;而不是只展示个假数据。 启动RabbitQ 使用的是3.8.5 启动命令 RabbitMQ Service - start RabbitMQ Command Prompt rabbitmqctl start_app …...

C++学习0.2: RAII

引用&#xff1a; 【代码质量】RAII在C编程中的必要性_raii 在c中的重要性-CSDN博客 C RAII典型应用之lock_guard和unique_lock模板_raii lock-CSDN博客 前言: 常用的线程间同步/通信&#xff08;IPC&#xff09;方式有锁&#xff08;互斥锁、读写锁、自旋锁&#xff09;、…...

k8s,进一步理解Pod

比如&#xff0c;凡是调度、网络、存储&#xff0c;以及安全相关的属性&#xff0c;基本上是Pod 级别的。 这些属性的共同特征是&#xff0c;它们描述的是“机器”这个整体&#xff0c;而不是里面运行的“程序”。比如&#xff0c;配置这个“机器”的网卡&#xff08;即&#…...

MFC图形函数学习13——在图形界面输出文字

本篇是图形函数学习的最后一篇&#xff0c;相关内容暂告一段落。 在图形界面输出文字&#xff0c;涉及文字字体、大小、颜色、背景、显示等问题&#xff0c;完成这些需要系列函数的支持。下面做简要介绍。 一、输出文本函数 原型&#xff1a;virtual BOOL te…...

【Canvas与雷达】点鼠标可暂停金边蓝屏雷达显示屏

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>点鼠标可暂停金边蓝屏雷达显示屏 Draft1</title><style typ…...

React第十二节组件之间通讯之发布订阅模式(使用pubsub-js插件)

组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 1、安装 pubsub-js 插件 yarn add pubsub-js 常用的事件 a、发布事件&#xff1a;传入一个自定义事件名称&#xff08;name&#xff09;&#xff0c;以及要发布的消息内…...

Vue3安装 运行教程

本文是综合了所有vue安装教程而成 更细化 更简略 希望对各位读者有所帮助&#xff01; Vue安装 1. Vue-cli脚手架安装 安装vue的方式有很多 我们这里选择npm方式安装vue npm方式 npm方式安装vue&#xff0c;详细介绍见下文。 1.node.js安装和配置 安装npm 需要安装note.js&…...

MySQL:约束constraint

约束就是表中数据的限制条件. 表在设计的时候加入约束的目的是为了保证表中记录的完整性和有效性&#xff0c;如用户表有些列的值&#xff08;手机号&#xff09;不能为空&#xff0c;有些列的值&#xff08;身份证号&#xff09;不能重复。 主键约束(primary key) PK MySQL主…...

使用Rufus制作Ubuntu需要注意

‌在使用Rufus制作Ubuntu启动盘并进行BIOS设置时&#xff0c;需要注意以下几点‌&#xff1a; ‌关闭RST&#xff08;英特尔 快速存储技术&#xff09;‌&#xff1a;在BIOS设置中&#xff0c;如果电脑启用了RST功能&#xff0c;需要将其关闭。因为Ubuntu可能无法检测到硬盘&a…...

探索Go语言的高级特性:性能分析与安全性

Go语言性能分析与安全性 引言 Go语言因其高效的并发特性、简洁的语法和强大的工具链而受到广泛欢迎。在实际开发中&#xff0c;性能分析和安全性是需要特别关注的两个方面。本文将深入探讨Go语言中的性能分析工具和安全性考虑&#xff0c;帮助开发者编写高效、安全的Go应用程…...

SearchSploit配合gcc的使用

渗透测试中&#xff0c;SearchSploit是一个非常有用的工具&#xff0c;用于在Exploit数据库中搜索漏洞利用代码。其使用方法如下&#xff1a; 安装SearchSploit&#xff1a;首先确保你的系统中已经安装了Kali Linux&#xff0c;因为SearchSploit是Kali Linux的一部分。如果没有…...

无人机设计:云台挂载!

一、无人机云台挂载设置 安装与固定 将云台固定到无人机的挂载点上&#xff0c;通常需要使用专用的固定架和螺丝等工具。 确保云台与无人机之间的连接牢固&#xff0c;避免在飞行过程中出现松动或脱落的情况。 连接与调试 将云台与无人机之间的连接线缆&#xff08;如电源…...

Spring Native适用场景、代理使用及测试部署策略

文章目录 1. Spring Native 适用的应用程序2. 在 Spring Native 中使用代理3. 测试和部署 Spring Native 应用测试部署 1. Spring Native 适用的应用程序 微服务&#xff1a;微服务架构中每个服务都相对独立&#xff0c;快速启动时间和较低的资源消耗对于提高部署效率和服务响…...

LeetCode—11. 盛最多水的容器(中等)

题目描述&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;…...

第一部分:入门准备 1.欢迎来到新手村 --[JavaScript 新手村:开启编程之旅的第一步]

为什么学习 JavaScript&#xff1f; 学习 JavaScript 有多个重要的理由&#xff0c;它在现代 Web 开发中扮演着不可或缺的角色。以下是几个关键原因&#xff1a; 1. 广泛的应用 JavaScript 是唯一可以在浏览器端直接运行的编程语言&#xff0c;几乎所有的网站和Web应用都使用…...