【使用MCP协议连接本地和远程数据——以Claude的Windows客户端为例】

本博客内容主要是如何在Windows系统上为Claude客户端(无需开通会员)配置模型上下文协议(Model Context Protocol, MCP)服务器。

为什么选择 MCP?

MCP 可帮助您在 LLM 之上构建代理和复杂的工作流程。LLM 经常需要与数据和工具集成,而 MCP 提供:

  • 越来越多的预构建集成,您的 LLM 可以直接插入
  • 在 LLM 提供商和供应商之间切换的灵活性
  • 在基础架构中保护数据的最佳实践

MCP协议

MCP是什么?这里我们先不做定义,先提出一个问题,如果我问Claude获取当前北京时间,它会怎么回复?

这里可以看到claude明确表示没有获取实时时间的功能,但是通过MCP协议,就可以打破“数据孤岛”问题,让 AI 在访问外部资源时不再受限,效果如下:

只需要地区或者时区就能获取实时时间,非常的有趣 

环境准备

1.安装 Claude Desktop App

2.安装Node.js(v18.x或更高版本)

3.安装Python 3.10或更高版本(直接下载指定版本python或者使用Conda创建指定版本环境均可)

安装步骤

1. 安装包管理器

这里我们安装 uv(Python 包管理器和虚拟环境工具),SQLite(轻量级的关系型数据库管理系统),Git (版本控制系统)

以管理员身份打开PowerShell并运行以下两条命令:

winget install --id=astral-sh.uv -e
winget install git.git sqlite.sqlite

上述安装也可以使用npm安装:

# 用于基于Python的服务器
npm install -g uv

2. 安装MCP服务器

基于Node.js的服务器:
# 全局安装服务器
npm install -g @modelcontextprotocol/server-memory
npm install -g @modelcontextprotocol/server-everything
npm install -g @modelcontextprotocol/server-brave-search
# ...安装其他你需要的服务器
基于Python的服务器:
# 使用uvx
uvx mcp-server-sqlite

3. 创建Claude配置文件

  1. 进入目录:%AppData%\Claude\
  2. 创建并使用记事本或者json工具编辑claude_desktop_config.json
  3. 你可以打开运行Win+R,然后直接输入%APPDATA%/Claude/claude_desktop_config.json
  4. 使用以下配置结构:
{
  "globalShortcut": "Ctrl+Space",
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "C:\\Users\\你的用户名\\test.db"]
    },
    "memory": {
      "command": "node",
      "args": ["C:\\Users\\你的用户名\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-memory\\dist\\index.js"],
      "env": {
        "DEBUG": "*"
      }
    },
    "everything": {
      "command": "node",
      "args": ["C:\\Users\\你的用户名\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-everything\\dist\\index.js"],
      "env": {
        "DEBUG": "*"
      }
    },
    "brave-search": {
      "command": "node",
      "args": ["C:\\Users\\你的用户名\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-brave-search\\dist\\index.js"],
      "env": {
        "BRAVE_API_KEY": "你的API密钥",
        "DEBUG": "*"
      }
    }
  }
}

重要提示:

  • 你的用户名替换为你的Windows用户名
  • 你的API密钥替换为需要API密钥的服务的实际密钥
  • Windows路径中使用双反斜杠(\)
  • 路径要指向npm模块目录中的dist/index.js文件

特定服务器设置

SQLite服务器

  • 仅需要上述基本设置
  • 可以自定义--db-path参数指向你偏好的位置

Memory服务器

  • 无需额外设置
  • 默认启用调试日志

Everything服务器

  • 无需额外设置
  • 默认启用调试日志

Brave搜索服务器

  1. Brave Search API | Brave 获取API密钥
  2. 如上所示将其添加到配置的env部分

验证和故障排除

验证安装

# 列出已安装的包
npm list -g --depth=0

# 测试各个服务器
npx @modelcontextprotocol/server-memory
npx @modelcontextprotocol/server-brave-search
uvx mcp-server-sqlite

常见问题

  1. “无法连接到MCP服务器”

    • 确认配置中的路径与你的系统匹配
    • 确保所有包都已全局安装(使用-g标志)
    • 检查指定路径中是否存在dist/index.js
  2. 服务器未在Claude中显示

    • 重启Claude Desktop
    • 验证配置文件的JSON语法
    • 检查文件路径是否正确
  • 始终使用全局安装(npm install -g
  • 在配置中使用dist/index.js的完整路径
  • 保留DEBUG环境变量以便故障排除
  • 更改配置后杀掉进程重启Claude Desktop

成功开启后,Claude会有下图的新的icon:

本次实践使用的claude_desktop_config.json内容如下(获取实时时间):

{
  "mcpServers": {
    "time": {
      "command": "uvx",
      "args": [
        "mcp-server-time",
        "--local-timezone=Asia/Shanghai"
      ]
    }
  }
}

常用的MCP服务器工具

MCP服务器功能
GitHub代码仓库管理、Git操作、API集成
Filesystem访问本地文件系统,读取/写入文件
SQLite与SQLite数据库的交互
Brave Search网络搜索、获取实时信息
Google Maps位置服务、路线规划、地点详情
Puppeteer浏览器自动化和爬虫程序

参考博客:

MCP协议详解:如何使用Claude连接本地和远程数据,轻松管理一切! 

如何在windows电脑上开启Claude MCP Server - Blog - Playground

 如何设置 Github MCP 服务器以与 Windows 和 Mac 上的 Claude Desktop 一起使用

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统-优快云博客MCP开源地址:modelcontextprotocol/servers: Model Context Protocol Servers 

MCP文档地址:Introduction - Model Context Protocol

<think>嗯,用户这次的问题很聚焦,要求具体说明基于MCP开发AIAgent的最佳实践,并以AgentTARS为案。结合历史对话,用户显然是个技术决策者或开发者,想了解MCP协议如何落地。用户提供的三个引用中,[1]最关键,详细说明了MCP的核心价值是研发范式转移,类似前后端分离;[2]提到行业可能出现协议碎片化风险;[3]则补充了多模态开发场景。但用户最关心的显然是TARS这个实施案。我需要重点拆解MCP开发范式的三层结构(感知层、协议层、工具层),这个框架在引用[1]里虽然没明说但隐含了。用户问“最佳实践”,说明需要可操作的方法论,而不仅是概念。考虑到ta提了两次“AgentTARS示”,应该对具体代码实现感兴趣。安全方面要注意:引用[3]提到企业数据训练,需提醒用户数据合规问题;引用[2]的协议碎片化警告也得包含在挑战部分。技术细节上,MCP的上下文组装机制(token压缩、异步调度)是难点,但用户没明确问底层原理,先放在技术挑战里简要说。突然想到用户可能混淆了MCPLangChain的区别,需要强调:LangChain是开发框架,MCP协议标准,这点在扩展实践里用脚手架工具说明会更清晰。TARS的RESTful对接示选得不错,但JSON参数要简化,实际开发时用户会更关心工具描述字段。相关问题的设计要引导用户深化场景:性能工程异构部署是进阶需求,而工具开发是生态建设关键。最后补上协议选型建议,毕竟引用[2]显示行业有多个竞争标准。</think> 基于 MCP 协议开发 AI Agent 应用的核心在于**协议解耦**与**标准化工具集成**,以下结合 Agent TARS 案详解最佳实践: --- ### **一、MCP 开发范式关键步骤** 1. **分层架构解耦** - **感知层(Perception)**:Agent 接收多模态输入(文本/图像)并理解用户意图 - **协议层(MCP Bridge)**:通过 MCP 标准协议将需求转化为结构化工具调用请求 - **工具层(Tool Ecosystem)**:对接第三方工具(如日历/支付API),无需绑定特定供应商 ```python # MCP 工具调用示(伪代码) def mcp_tool_invoke(tool_name: str, params: dict): payload = { "@context": "https://mcp.ai/context/v1", "action": tool_name, "input": params } return requests.post(MCP_GATEWAY, json=payload) # 通过标准化网关路由 ``` 2. **动态上下文组装** - MCP 自动聚合工具返回的**结构化数据**(如 JSON/CSV) - 通过 Token 压缩算法(如 GIST 压缩)减少上下文长度 - :调用天气工具后自动注入 `{"location": "北京", "temp": 22℃}` 到 LLM 上下文 --- ### **二、Agent TARS 开发实践详解** 1. **工具集成标准化** - **统一描述规范**:所有工具通过 `tool_name.mcp.json` 声明功能 ```json // 支付工具描述文件 { "name": "stripe_payment", "description": "处理信用卡支付", "parameters": { "amount": {"type": "number", "required": true}, "currency": {"type": "string", "default": "USD"} } } ``` - **RESTful 兼容**:传统 API 通过 [MCP-Adapter](https://github.com/tars-agent/mcp-adapter) 转换协议 ``` POST /mcp/tools/stripe_payment Content-Type: application/json {"amount": 99.99} ``` 2. **执行流程优化** ```mermaid graph TD A[用户语音输入] --> B(TARS 意图识别) B --> C{MCP 路由查询} C -->|天气查询| D[调用 Weather.com] C -->|支付| E[调用 Stripe API] D & E --> F[结果标准化封装] F --> G[自然语言生成响应] ``` 3. **工具热插拔实践** - 新增翻译工具时: 1. 部署 `translate.mcp.json` 到工具仓库 2. Agent 自动发现并更新能力目录 ``` > TARS.get_tools() ["weather", "payment", "translate"] # 动态扩展 ``` --- ### **三、关键技术挑战与解决方案** | 挑战 | MCP 方案 | |---------------------|-----------------------------| | 工具响应延迟 | 异步流式传输(SSE) | | 多工具协作 | DAG 工作流引擎 | | 权限控制 | OAuth2.0 + 工具级策略标签 | | 协议版本碎片化 | 强制 SemVer 版本校验 [^2] | --- ### **四、扩展实践建议** 1. **混合编排框架** ```python from langchain.agents import AgentExecutor from mcp_integration import MCPToolkit toolkit = MCPToolkit() # 自动加载 MCP 注册中心所有工具 agent = AgentExecutor.from_agent_and_tools( llm=ChatGPT(), tools=toolkit.get_tools(), verbose=True ) ``` 2. **调试监控闭环** - 使用 MCP 的 `X-MCP-Trace-Id` 头实现全链路追踪 - 工具执行统计看板: ![MCP 监控面板](https://tars.dev/mcp-dashboard.png) --- **
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值