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

news2024/12/11 23:39:06

也是在学习中...

起因:

抖音博客 艾克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:
  - Packages
      Microsoft.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 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

在 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.coloradmin.cn/o/2254022.html

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

相关文章

交易所 Level-2 历史行情数据自动化导入攻略

用户部署完 DolphinDB 后&#xff0c;需要将历史股票数据批量导入数据库&#xff0c;再进行数据查询、计算和分析等操作。DolphinDB 开发了 ExchData 模块&#xff0c;主要用于沪深交易所 Level-2 行情原始数据的自动化导入&#xff0c;目前已支持的数据源包括&#xff1a; 沪…

matlab finv()函数解释 F分布 和 逆累积分布函数 卡方分布

1.Earths flattening 翻译并解释含义 "Earths flattening" 翻译为中文是“地球的扁率”。 含义解释&#xff1a; 地球的扁率是指地球形状偏离完美球形的程度。地球并非一个完美的球体&#xff0c;而是一个扁球体&#xff0c;即在两极略微扁平&#xff0c;赤道略微…

Istio笔记01--快速体验Istio

Istio笔记01--快速体验Istio 介绍部署与测试部署k8s安装istio测试istio 注意事项说明 介绍 Istio是当前最热门的服务网格产品&#xff0c;已经被广泛应用于各个云厂商和IT互联网公司。企业可以基于Istio轻松构建服务网格&#xff0c;在接入过程中应用代码无需更改&#xff0c;…

国家烟草局招聘信息查看

以下是官网链接&#xff1a; 国家烟草专卖局 在首页&#xff0c;鼠标移到行业资讯&#xff0c;点击人事与培训&#xff0c;即可看到相应的招聘信息了。

【SpringMVC】用户登录器项目,加法计算器项目的实现

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;用户登录项目实现 1&#xff1a;需求 2&#xff1a;准备工作 &#xff08;1&#xf…

联通光猫DT741-csf 完全po解 改桥接

1.管理员密码破解&#xff0c;把光猫的loid pppoe用户名密码&#xff0c;各个连接vlan id记下来 打开链接 http://192.168.1.1/hidden_version_switch.html version选择Default Version&#xff0c;点击submit&#xff0c;光猫默认重启。重启后ip地址变为192.168.1.1 并且dhcp…

12月2日星期一今日早报简报微语报早读

12月2日星期一&#xff0c;农历十一月初二&#xff0c;早报#微语早读。 1、公安部&#xff1a;全国机动车所有人12月2日起均可申领电子行驶证&#xff1b; 2、2025年国考笔试开考&#xff1a;参考率约为86.7%&#xff0c;约65人录1人&#xff1b; 3、今日头条、拼多多等9款A…

机器学习概述,特征工程简述2.1——2.3

机器学习概述&#xff1a; 1.1人工智能概述 达特茅斯会议—人工智能的起点 机器学习是人工智能的一个实现途径 深度学习是机器学习的一个方法发展而来 1.1.2 机器学习和深度学习能做什么 传统预测 图像识别 自然语言处理 1.2什么是机器学习 数据 模型 预测 从历史数…

C语言(一维数组练习)

键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 #include <stdio.h>int main(int argc,char *argv[]) {int i,j,tmep;int arr[10];printf("请输入10个测试整数&#xff1a;\n");int lensizeof(arr)/sizeof(arr[0]);for(i0;i<len;i){scanf(&q…

【2025最新计算机毕业设计】基于SSM+Vue中华传统文化吟诵知识学习系统

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

MySQL需掌握到何种程度?才能胜任工作

大家好&#xff0c;我是袁庭新。星友问&#xff1a;MySQL需要学到什么程度&#xff1f;才能胜任日常的软件开发工作呢&#xff01;以下是一些建议的学习目标和程度&#xff0c;这些目标旨在帮助你在工作中高效地使用MySQL。 数据库的基本概念、MySQL的安装及配置、SQL的概念、S…

[TPAMI 2024]Vision-Language Models for Vision Tasks: A Survey

论文网址&#xff1a;Vision-Language Models for Vision Tasks: A Survey | IEEE Journals & Magazine | IEEE Xplore 论文Github页面&#xff1a;GitHub - jingyi0000/VLM_survey: Collection of AWESOME vision-language models for vision tasks 英文是纯手打的&…

桂湾公园的地面免费停车场(50个左右)

之前一直以为桂湾公园只有P1和P2地下停车场可以免费停车。没想到桂湾公园还有地面停车场&#xff0c;停车位大概是50个。 具体位置在桂湾公园5号门地上停车场。 桂湾公园-5号门 广东省深圳市南山区桂湾河南街与鲤鱼门西二街交叉口西北20米 停车场入口对面是红星美凯龙&#x…

SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)

SpringBoot连接多数据源MySQL、SqlServer等&#xff08;MyBatisPlus测试&#xff09; 在实际的项目开发中&#xff0c;我们往往需要同时连接多个数据源对数据进行处理。本文将详细介绍在SpringBoot下配合MybatisPlus如何连接多数据源&#xff0c;实例将会使用连接MySQL、SqlSe…

基于NVIDIA NIM 平台的知识问答系统实现客服功能

前言&#xff1a; NVIDIA联合CSDN推出了《NVIDIA NIM黑客松训练营》&#xff0c;通过对着提供的实验手册&#xff0c;学习了基于NVIDIA的NIM平台知识问答系统&#xff0c;简单的一段代码就可以实现一个AI智能问答系统。而且这次活动注册账号即可获得到免费的1000tokens&#x…

(12)时间序列预测之MICN(CNN)

文章目录 前言1. challenge 一、网络结构1. MHDecomp2. Trend-cyclical Prediction Block3. Seasonal Prediction BlockMIC LayerMerge 实验结果1.长时预测 总结参考 文章信息 模型&#xff1a; MICN (Multi-scale Isometric Convolution Network)关键词&#xff1a; 长时预测…

设计模式——Facade(门面)设计模式

摘要 本文介绍了外观设计模式&#xff0c;这是一种通过简单接口封装复杂系统的设计模式。它简化了客户端与子系统之间的交互&#xff0c;降低了耦合度&#xff0c;并提供了统一的调用接口。文章还探讨了该模式的优缺点&#xff0c;并提供了类图实现和使用场景。 1. 外观设计模…

opencv-android编译遇到的相关问题处理

1、opencv-android sdk下载 下载地址&#xff1a;https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细&#xff0c;大家可安装官方给出的步骤导入。…

go语言读取yaml配置文件内容

1、config.yaml配置文件内容假设如下 name: "example" version: 1.0 settings:timeout: 30debug: truefeatures:- feature1- feature22、定义结构体 go语言定义结构体匹配yaml内容 package mainimport ("fmt""log""os""gopkg.…

STL算法之其它算法_下

random_shuffle 这个算法将[first,last)的元素次序随机排列。也就说&#xff0c;在N!中可能的元素排列中随机选出一种&#xff0c;此处N为last-first。 N个元素的序列&#xff0c;其排列方式为N!中&#xff0c;random_shuffle会产生一个均匀分布&#xff0c;因此任何一个排列被…