<工具 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 的比较:

竟然说我打 广告:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(78)MPSK基带调制通信系统瑞利平坦衰落信道传输性能的MATLAB仿真

文章目录 前言一、MATLAB仿真1.仿真代码2.仿真结果 二、子函数与完整代码总结 前言 本文给出瑞利平坦衰落信道上的M-PSK通信系统性能仿真的MATLAB源代码与仿真结果。其中&#xff0c;调制方式M-PSK包括BPSK、QPSK、8-PSK、16-PSK、32-PSK等方式。 一、MATLAB仿真 1.仿真代码 …

go语言 Pool实现资源池管理数据库连接资源或其他常用需要共享的资源

go Pool Pool用于展示如何使用有缓冲的通道实现资源池&#xff0c;来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况&#xff08;如共享数据库连接或者内存缓冲区&#xff09;下非 常有用。如果goroutine需要从池里得到这些资…

Android 系统之Init进程分析

1、Init进程流程 2、Init细节逻辑 2.1 Init触发shutdown init进程触发系统重启是一个很合理的逻辑&#xff0c;为什么合理&#xff1f; init进程是android世界的一切基石&#xff0c;如果android世界的某些服务或者进程出现异常&#xff0c;那么会导致整个系统无法正常使用…

用micropython 操作stm32f4单片机的定时器实现蜂鸣器驱动

import pyb import time # 初始化引脚和定时器通道作为PWM输出 # 注意&#xff1a;这里我们假设您使用的是支持PWM的引脚和定时器 # 在不同的MicroPython板上&#xff0c;支持的引脚和定时器可能不同 # 请查阅您的板的文档以确认正确的引脚和定时器 buzzer_pin pyb.Pin(PD15,…

长沙市的科技查新单位

1、中南大学图书馆科技查新站&#xff1a; 中南大学图书馆科技查新站成立于2003年12月&#xff0c;中南大学图书馆科技查新站作为教育部首批批准的科技查新工作站之一&#xff0c;具备了在全国范围内开展科技查新工作的专业资质。 2、湖南大学科技查新站&#xff1a; 湖南大学…

java基础语法光速入门

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理Java的基础语法部分 适合有编程基础的人快点掌握语法使用 没学过一两门语言的话。。还是不建议看了 极致的浓缩没有一点解释 注释 单行注释 // 多行注释 /**/ 数据类型 布尔型:true false 整型:int,lon…

【redis】集群详解

redis集群 一、集群的概念二、数据分片算法2.1哈希求余算法2.2一致性哈希算法2.3哈希槽分区算法 三、集群的搭建3.1配置docker-compose.yml文件3.2配置generate.sh脚本文件3.3构建redis集群3.4简单测试redis集群 四、故障处理流程4.1故障判定4.2故障转移 五、集群扩容 一、集群…

Linux | Linux的开机启动流程

对于linux系统的初学者来说&#xff0c;理解并掌握linux系统启动流程能够使你够深入的理解linux系统&#xff0c;还可以通过系统的启动过程来分析问题解决问题。 Linux开机启动的流程如下图 power on 开机 post自检&#xff08;检查一部分大的硬件&#xff09; BIOS&#xf…

TiDB如何保证数据一致性

1. 分布式事务协议 TiDB 采用了类似 Google Percolator 的分布式事务协议来处理分布式事务。这个协议基于两阶段提交&#xff08;2PC&#xff09;的思想&#xff0c;但进行了优化和改进&#xff0c;以适应分布式环境的特殊需求。在 TiDB 中&#xff0c;当一个事务需要跨多个节…

【Maven系列】深入解析 Maven 常用命令

前言 在当今的软件开发过程中&#xff0c;项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中&#xff0c;Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具&#xff0c;主要…

DBA面试题-1

面临失业&#xff0c;整理一下面试题&#xff0c;找下家继续搬砖 主要参考&#xff1a;https://www.csdn.net/?spm1001.2101.3001.4476 略有修改 一、mysql有哪些数据类型 1&#xff0c; 整形 tinyint,smallint,medumint,int,bigint&#xff1b;分别占用1字节、2字节、3字节…

【Rust WebAssembly 入门实操遇到的问题】

Rust WebAssembly 入门实操遇到的问题 什么是WebAssembly跟着教程走wasm-pack build error总结 什么是WebAssembly WebAssembly&#xff08;简称Wasm&#xff09;是一种基于堆栈的虚拟机的二进制指令 格式。Wasm 被设计为编程语言的可移植编译目标&#xff0c;支持在 Web 上部…

数据挖掘之数据预处理

​​​​​​​ 引言 数据挖掘是从大量数据中提取有用信息和知识的过程。在这个过程中&#xff0c;数据预处理是不可或缺的关键步骤。数据预处理旨在清理和转换数据&#xff0c;以提高数据质量&#xff0c;从而为后续的数据挖掘任务奠定坚实的基础。由于现实世界中的数据通常…

21个Python脚本自动执行日常任务(1)

引言 作为编程领域摸爬滚打超过十年的老手&#xff0c;我深刻体会到&#xff0c;自动化那些重复性工作能大大节省我们的时间和精力。 Python以其简洁的语法和功能强大的库支持&#xff0c;成为了编写自动化脚本的首选语言。无论你是专业的程序员&#xff0c;还是希望简化日常工…

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;五&#xff09;—— CSS盒子模型 前言一、盒子模型的组成margin&#xff08;外边距&#xff09;&#xff1a;border&#xff08;边框&#xff09;&#xff1a;padding&#xff08;内边距&#xff09;&#xff1a;conten…

使用Feign远程调用丢失请求头问题

在使用Feign进行远程调用时&#xff0c;当前服务是能拿到请求头信息的&#xff0c;请求头包含有登录认证Cookie等重要信息&#xff0c;但是在调用远程服务时&#xff0c;远程服务却拿不到请求头信息&#xff0c;因为使用Feign进行远程调用实际上是发起新的Request请求了&#x…

2021数学分析【南昌大学】

2021 数学分析 求极限 lim ⁡ n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n \lim_{n \to \infty} \frac{1}{n} \sqrt [n]{(n+1)(n+2) \cdots (n+n)} n→∞lim​n1​n(n+1)(n+2)⋯(n+n) ​ lim ⁡ n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n = lim ⁡ n → ∞ ( n + …

vue+mars3d点击图层展示炫酷的popup弹窗

展示效果 目录 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 二、封装自定义的popup&#xff0c;样式可以自行调整 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 这里我根据数据不同&#xff0c;展示的…

【AIGC】如何使用高价值提示词Prompt提升ChatGPT响应质量

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 &#x1f4af;前言&#x1f4af;提示词英文模板&#x1f4af;提示词中文解析1. 明确需求2. 建议额外角色3. 角色确认与修改4. 逐步完善提示5. 确定参考资料6. 生成和优化提示7.…

FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现

FPGA存在的意义&#xff1a;为什么adc连续采样需要fpga来做&#xff0c;而不会直接用iic来实现 原因ADS111x连续采样实现连续采样功能说明iic读取adc的数据速率 VS adc连续采样的速率adc连续采样的速率iic读取adc的数据速率结论分析 FPGA读取adc数据问题一&#xff1a;读取adc数…