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

MCP学习笔记

MCP学习笔记

最近由于组织架构变动,负责AI相关工具建设,学习一下MCP相关的知识

1、MCP介绍

1.1、什么是MCP

MCP(Model Context Protocol,模型上下文协议)是 Anthropic 开发的一个开放标准协议,用于让 AI 助手能够安全地连接各种外部数据源和工具。

  • 为 AI 应用提供统一的方式来访问数据和工具
  • 类似于 USB-C 接口 - 一个标准协议连接多种服务
  • 让 AI模型 能够访问文件系统、数据库、API 等外部资源

1.2、MCP组成部分

MCP Server(服务器)

提供特定功能的服务

  • 文件系统访问
  • 数据库查询
  • Web 搜索
  • 第三方 API 集
MCP Client(客户端)

使用这些服务的应用

  • Claude Code CLI
  • Claude Desktop
  • 其他集成了 MCP 的应用

2、uv

新一代高性能 Python 包管理工具,官网文档:https://docs.astral.sh/uv/

2.1、旧python包管理工具

1、pip

pip 是 Python 官方推荐的包管理器,主要用于安装和卸载 Python 包,支持从 PyPI、Git 仓库、本地目录等多种来源安装

优点

  • 广泛使用,社区支持良好
  • 简单易用,适合初学者

缺点

  • 不支持依赖锁定
  • 缺乏虚拟环境和项目管理功能
2、pip-tools

pip-tools 是由 Jazzband 社区维护的工具集,旨在增强 pip 的功能

  • pip-compile:从requirements.in生成锁定的requirements.txt
  • pip-sync:根据requirements.txt安装或卸载依赖

优点

  • 确保项目依赖的一致性
  • 与 pip 兼容,易于集成

缺点

  • 依赖解析速度较慢
  • 功能相对单一,仅处理依赖锁定
3、pipx

pipx 是由 PyPA 维护的工具,专注于在隔离的环境中安装和运行 Python 命令行应用

  • 在隔离的虚拟环境中安装 CLI 工具
  • 运行一次性命令

优点

  • 避免全局污染,隔离性好
  • 便于管理和运行 CLI 工具
4、poetry

Poetry 是由 Python 社区开发的项目管理工具,旨在简化依赖管理和打包发布流程

  • 使用pyproject.toml管理项目依赖
  • 自动创建和管理虚拟环境
  • 构建和发布 Python 包

优点

  • 一体化管理项目生命周期
  • 使用pyproject.toml,符合 PEP 518 标准

缺点

  • 依赖解析速度较慢
  • 对 Python 版本管理支持有限
5、pyenv

pyenv 是由社区开发的工具,用于安装和管理多个 Python 版本

  • 安装和切换多个 Python 版本
  • 支持全局和本地(每个项目)版本设置

优点

  • 支持多个 Python 版本的切换
  • 适用于开发和测试不同版本的兼容性

缺点

  • 安装新版本需编译,耗时较长
  • 不支持 Windows 系统
6、virtualenv

virtualenv 是由社区开发的工具,用于创建隔离的 Python 虚拟环境

  • 创建隔离的虚拟环境
  • 支持不同项目使用不同的依赖

优点

  • 轻量级,创建环境速度快

缺点

  • 不包含依赖管理功能
  • 需要与 pip 或 pip-tools 结合使用

2.2、什么是uv

由 Astral 公司用 Rust 开发的高性能Python 包管理工具,旨在提供比传统 pip 更快的包安装和依赖管理体验,并整合了多个传统 Python 工具的核心功能,实现了 “一个工具搞定包管理、环境管理、版本管理、打包发布” 的一站式体验

  • 比 pip 快 10-100 倍
  • 锁文件保证依赖一致性
  • 单一工具替代 pip、pip-tools、pipx、poetry、pyenv、virtualenv
  • 完全兼容 pip 和 PyPI
  • 包管理 + 项目管理 + Python 版本管理

2.3、安装uv

1、安装

macOS/Linux

# 1、官方安装脚本curl-LsSf https://astral.sh/uv/install.sh|sh# 2、Homebrewbrewinstalluv# 3、pippipinstalluv

windows

# 1、官方安装脚本powershell -c"irm https://astral.sh/uv/install.ps1 | iex"# 2、pippipinstalluv
2、验证
uv -V uv --version

2.3、使用uv

1、Python 版本管理

安装 Python

# 列出所有可用的 Python 版本(简介版)uv python list# 安装指定版本 Pythonuv pythoninstall3.14# 安装多个版本uv pythoninstall3.113.123.13# 卸载 Python 版本uv python uninstall3.11# 列出本地已安装的所有 Python 版本uv python list --only-installed

设置全局 Python 版本

# 1、使用环境变量(推荐)vim~/.zshrcexportUV_PYTHON="3.14"source~/.zshrc# 2、使用全局配置文件mkdir-p ~/.config/uvcat>~/.config/uv/uv.toml<<'EOF' [python] # 默认 Python 版本 default = "3.12" # Python 查找偏好 preference = "managed" # 优先使用 uv 管理的 Python EOF
2、项目管理

创建项目

# 创建应用项目uv init my-app# 在现有目录初始化uv init
my-app/ ├── .gitignore ├── .python-version # Python 版本锁定 ├── main.py ├── pyproject.toml # 项目配置 ├── README.md └── uv.lock # 记录所有依赖的精确版本 类似package-lock.json

依赖管理

# 添加生产依赖uvaddrequests# 添加指定版本依赖uvadd"django==5.0"# 添加开发依赖uvaddpytest --dev# 移除依赖uv remove django# 安装项目所有依赖uvsync# 生成/更新锁文件uv lock

运行项目

如果 project.scripts 发生变动要首先执行 uv sync

. ├── README.md ├── pyproject.toml ├── src │ ├── main.py │ └── weather │ ├── __init__.py │ └── weather.py └── uv.lock
# src/weather/weather.pydeftoday_weather():return"It's rainy tomorrow!"deftomorrow_weather():return"It's sunny tomorrow!"
# src/weather/__init__.pyfrom.weatherimporttoday_weatherfrom.weatherimporttomorrow_weather
[project] name = "xumeng03-mcp" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.14" dependencies = [ "requests>=2.32.5", ] [project.scripts] today_weather = "xumeng03_mcp.weather:today_weather" tomorrow_weather = "xumeng03_mcp.weather:tomorrow_weather" [dependency-groups] dev = [ "pytest>=9.0.2", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.setuptools] package-dir = {"xumeng03_mcp" = "src"}
tomorrow_weather uv run tomorrow_weather
3、工具管理

全局安装和管理 Python 的工具

  • 安装在独立的隔离环境中
  • 全局可用(任何地方都能运行)
# 安装工具uv toolinstallruff# 安装指定版本工具uv toolinstall"black==24.10.0"# 查看已安装的工具uv tool list# 升级单个工具uv tool upgrade ruff# 升级单个工具到指定版本uv toolinstall--upgrade"ruff==0.8.5"# 升级所有工具uv tool upgrade --all# 卸载单个工具uv tool uninstall ruff# 卸载多个工具uv tool uninstall black ruff mypy
4、其他
# 清理缓存uv cache clean# 构建项目uv build
http://www.jsqmd.com/news/280621/

相关文章:

  • HC-SMoE: MoE Expert 合并压缩方案解读
  • UE5 C++(43):用 timeLine 实现开关门
  • AI大模型开发入门到精通:一本助你转型的必备书籍
  • 基于SpringBoot+Vue校园跑腿网站的设计与实现
  • 导师严选2026 TOP10 AI论文工具:专科生毕业论文写作全测评
  • IPO投资策略:如何评估新上市公司
  • 基于SpringBoot+Vue校园足球俱乐部管理系统的设计与实现
  • Linux OOM killer 评分系统的演变及分数优先级详解
  • 降AI率必备!6款免费工具亲测,学生党轻松降80%,论文AI检测一次过
  • AI Agent实战指南:程序员必学大模型应用,从概念到商业布局,值得收藏
  • 基于SpringBoot+Vue学校物资采购系统的设计与实现
  • Balanced 01-String
  • AI大模型学习全攻略:零基础入门、35岁转行可行性与就业前景
  • AI率过高别慌!这6个免费降AI工具亲测有效,学生党拯救论文指南
  • D6 707.设计链表
  • 基于SpringBoot+Vue一鹿租车公司车辆管理系统的设计与实现
  • 毕业党救星!5个降AI率工具大公开,亲测好用,能帮你把AI率降低80%以上
  • 实验室智能监控系统实战源码-基于YOLOv8的实时目标检测与PyQt5可视化界面
  • 如何在idea中创建mavenweb项目
  • AI率过高有救了!这5个工具实测能打,可将论文AIGC痕迹大幅降低80%
  • Java毕设项目推荐-基于springboot+vue的全国走失儿童认领与登记系统【附源码+文档,调试定制服务】
  • 开箱即用的番茄叶片病害识别平台|YOLOv8+PyQt5实战指南
  • 工控人注意了:Windows近期系统更新会导致你电脑的西门子软件TIA Portal 无法使用,你中招了吗?
  • 计算机Java毕设实战-基于springboot的走失儿童认领与登记系统基于springboot+vue的javaweb宝贝回家走失儿童报备【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 学生党必看:3步轻松改写AI文献综述,教你如何用AI把AI率从80%降到5%!
  • 强烈安利MBA必备TOP8 AI论文软件
  • 基于SpringBoot+Vue医疗陪护服务平台的设计与实现
  • Java计算机毕设之基于springboot+vue的走失儿童认领与登记系统基于SpringBoot的宝贝回家走失儿童报备系统(完整前后端代码+说明文档+LW,调试定制等)
  • 【第1章>第17节】图像黒色顶帽理论分析与MATLAB仿真测试
  • AI与Python双驱动计量经济学多源数据处理、机器学习预测及复杂因果识别