第 9 章 · Model Context Protocol(MCP)

VS code 如何接入 Model Context Protocol (MCP) MCP 是 Anthropic 在 2024 年 11 月开源的协议,全称 Model Context Protocol。它就像给 AI 加了个“外挂”,让模型能访问外部资源,比如读文件、查 GitHub。 阅读详情

版本:Spring AI 2.0.1(MCP Java SDK 2.0.0)

目标:分清 Host / Server,选对 starter 与传输,用注解暴露工具,并把 MCP Tool 桥进 ChatClient。 

本地 @Tool 写在本进程里。工具若在别的服务、别的语言、别的团队,各自再包一层私有 HTTP,目录和鉴权很快就会散。

MCP 约定的是一套标准协议:Host(通常是你的 AI 应用)去连接一个或多个 MCP Server,发现并调用其上的 Tools、Resources、Prompts。Spring AI 在两边都能站:当 Client 连别人,或当 Server 对外暴露能力。对 ChatClient 而言,远端 Tool 最终会桥成 ToolCallback,挂载方式与第 8 章相同。

本地 @Tool     → 同进程 Bean
MCP Tool       → 跨进程 / 跨语言,桥成 ToolCallback 后再挂

MCP 管「工具从哪来」,不管「怎么编排」;也管不了权限——鉴权仍在你的 Java 代码里。


9.1 角色与能力

上图里:

  • Host:Spring AI 应用,里面有 ChatClient

  • 传输:STDIO / SSE / HTTP 等

  • Server:提供 Tools、Resources、Prompts

  • ToolCallback:把远端工具结果接回 Host

情况做法
工具就是本服务 Bean本地 @Tool
工具在别的进程 / 语言 / 团队对端做 MCP Server,本应用做 Client
两边都要.tools(本地 POJO, mcpProvider) 一起挂

三类常见能力:

能力做什么
Tools可执行操作,如查单、建工单
Resources按 URI 读内容,如政策原文
Prompts可复用的提示模板

日常先把 Tools 桥进 ChatClient;Resources / Prompts 按产品需要再接。


9.2 Starter 与传输

角色Starter
本应用连别人(Client)spring-ai-starter-mcp-client;响应式栈可用 …-client-webflux
本服务对外暴露(Server,MVC)spring-ai-starter-mcp-server-webmvc
本服务对外暴露(Server,WebFlux)spring-ai-starter-mcp-server-webflux

已有 Spring MVC 业务选 webmvc;整站 WebFlux 选 webflux。Client 同步 / 异步要和 Web 栈一致:

spring.ai.mcp.client.type=SYNC

依赖示例:

<!-- Host:连远端 MCP Server -->
<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>
​
<!-- Server:MVC 对外暴露 -->
<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>

Client 用 Streamable-HTTP 连接远端(2.0.1 推荐;键名以当前 starter 文档为准):

spring:
  ai:
    mcp:
      client:
        enabled: true
        type: SYNC
        streamable-http:
          connections:
            order-server:
              url: http://localhost:8091
              endpoint: /mcp

Server 侧对应:

spring:
  ai:
    mcp:
      server:
        type: SYNC
        protocol: STREAMABLE
        mcp-endpoint: /mcp

本机子进程也可用 STDIO;旧的 SSE 传输仍可用,但新项目优先 STREAMABLE。

传输常见用途
STDIO本机子进程 / sidecar
Streamable-HTTP服务之间(2.0.1 推荐)
SSE旧传输,仍可用

连不上时先查:url、endpoint、端口和防火墙。 若已连上 Server,但暂时不想把工具交给 ChatClient:

spring.ai.mcp.client.toolcallback.enabled=false

9.3 Server:用注解暴露工具

注解作用
@McpTool / @McpToolParam声明工具与参数(自动生成 JSON Schema)
@McpResource声明可读资源
@McpPrompt / @McpComplete声明提示模板与补全

annotations = @McpTool.McpAnnotations(...) 里的 readOnlyHint、destructiveHint、idempotentHint 只是给调用方的提示,不是鉴权。租户、用户校验仍要写在方法体内。

@Service
public class OrderMcpTools {
​
    private final OrderService orderService;
​
    public OrderMcpTools(OrderService orderService) {
        this.orderService = orderService;
    }
​
    @McpTool(
            name = "query_order",
            description = "按订单号查询订单摘要,返回简短 JSON",
            annotations = @McpTool.McpAnnotations(readOnlyHint = true))
    public String queryOrder(
            @McpToolParam(description = "订单号", required = true) String orderId) {
        // 在这里做调用方鉴权,不要依赖 hint
        return orderService.findBrief(orderId);
    }
​
    @McpTool(
            name = "create_ticket",
            description = "创建售后工单,成功返回工单号",
            annotations = @McpTool.McpAnnotations(destructiveHint = true))
    public String createTicket(
            @McpToolParam(description = "订单号", required = true) String orderId,
            @McpToolParam(description = "问题描述", required = true) String problem) {
        return orderService.createTicket(orderId, problem);
    }
}

异常处理与本地 @Tool 同一套约定(2.0.1):

  • checked 异常、Error、McpError:继续上抛

  • 普通 RuntimeException(且不是 McpError):转成工具错误结果给调用方

不要默认「所有异常都会变成一段错误字符串」。

资源示例:

@McpResource(
        uri = "handbook://refund-policy",
        name = "refund-policy",
        description = "退款政策原文")
public String refundPolicy() {
    return handbookRepository.load("refund-policy");
}

Resource 常被读进 Prompt,脱敏和租户隔离要与 Tool 同等对待。


9.4 Client:挂到 ChatClient

链路是:MCP Server → 传输 → MCP Client → ToolCallbackProvider → ChatClient.tools(...) / defaultTools(...)。

Boot 会提供 Provider(类名以自动配置为准,常见如 SyncMcpToolCallbackProvider)。它实现 ToolCallbackProvider,可直接传给第 8 章学过的挂载入口。

默认挂上(本 Client 的请求都能看见这些工具):

@Configuration
class AiConfig {
​
    @Bean
    ChatClient chatClient(
            ChatClient.Builder builder,
            SyncMcpToolCallbackProvider mcpTools,
            OrderLocalTools localTools) {
        return builder
                .defaultTools(mcpTools, localTools)
                .build();
    }
}

只在某次请求挂载(目录按场景裁剪时更常用):

String answer = chatClient.prompt()
        .user("查一下订单 10086 能不能退")
        .tools(mcpTools, localTools)
        .call()
        .content();

注意第 8 章的覆盖规则:请求级 tools(...) 会整组替换 defaultTools,不是合并。需要「默认 + 再加几个」时,把完整列表一次传入。

权限仍分两层:

  1. Server:接口鉴权、数据租户隔离

  2. Host:业务上谁能调哪个工具(例如只有客服角色能 create_ticket)

模型只会按名称发起调用;是否真正执行,由你的代码决定。

工具很多时,可先按权限过滤可见集,再对可见集做目录检索(第 8 章 Tool Search),避免一次把远端全量 schema 塞进 Prompt。远端工具列表变更时,记得失效缓存或重建索引。


9.5 和本地 @Tool 怎么选

本地 @ToolMCP
部署同进程跨进程 / 跨语言
发布随应用发版Server 可单独升级
超时本地方法调用必须设超时,建议加熔断
失败本地异常网络故障 + 远端业务错误

命名建议带前缀(如 order_query_order),减少远程 search 与本地 search 撞名。若同一批工具既给 ChatClient 用,也给图编排用,放进同一注册表,避免两套名字。


9.6 常见坑

现象先查什么
ChatClient 里没有 MCP 工具是否连上 Server;toolcallback.enabled;Provider 是否注入;有没有 .tools / defaultTools
连不上url、endpoint(STREAMABLE)或 sse-endpoint(SSE)、端口、防火墙;Client SYNC/ASYNC 是否匹配 Web 栈
一调远端就卡住超时与熔断;错误是否回成短字符串给模型
鉴权失败 / 串租户凭证如何进入 MCP Session;不要依赖线程 ThreadLocal 碰巧还能用
不该调的工具被调了Host 侧白名单与业务鉴权;不要只靠 Server hint
异常表现和本地 @Tool 不一致是否误吞了应上抛的异常;对照 2.0.1 异常约定
与本地工具同名前缀;打印最终暴露给模型的 tool name 列表核对

9.7 小结

MCP 让工具可以放在别的进程里,但对 ChatClient 仍是 ToolCallback 供应线。先分清自己做 Client 还是 Server,选对 starter 和传输,用 @McpTool 暴露能力,再和本地 @Tool 一起挂载。超时、鉴权、命名和目录裁剪处理好,比抠协议细节更影响能不能稳定跑。

Model Context Protocol(MCP) Model Context Protocol(MCP)是人工智能公司 Anthropic 提出的一种新标准。其旨在帮助 AI 助手更好地连接到数据所在系统,允许任何 AI 模型从业务工具、软件、内容库和应用开发环境等数据源中提取信息以完成任务。 MCP 通过建立数据源与 AI 应用之间的双向连接,解决了数据孤立问题,使系统更容易扩展。目前,已有公司如 Block 和 Apollo 将 MCP 集成到他们的系统中,而 Replit、Codeium 和 Sourcegraph 等开发工具公司也在其平台上添加了 阅读详情

相关推荐

AI赋能运筹优化:从参数生成到智能求解的工程实践

运筹学通过线性规划、整数规划等数学模型,为供应链、物流、生产排程等复杂决策问题寻找最优解,其核心价值在于提升资源利用效率与决策科学性。传统方法依赖精确的输入参数与专家经验,面临数据不准、建模门槛高、求解调优难等挑战。人工智能技术的引入,正从原理层面重塑这一流程:通过深度学习模型生成更贴合现实的动态参数(如需求分布、行驶时间),利用自然语言处理降低建模门槛,并借助强化学习对求解器进行智能参数调优。这种AI与运筹学的融合,在工程实践中显著提升了优化系统的自适应能力与求解效率,使其在应对实时交通、柔性生产调度等动

weixin_26913055的博客 595

第 9 章 · Model Context Protocol(MCP)实战:用 Spring AI 把 McpTool 改到 TaoToken

Spring AI 2.0.1 下把 McpTool 暴露的远端工具桥接为 ToolCallback,只需将 ToolCallbackProvider 挂到 ChatClient 的 defaultTools,并把模型出口统一指向 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,即可让 MCP 工具链与本地 @Tool 共用同一调用逻辑,配合超时、鉴权与命名前缀处理,稳定跑通跨进程工具调用。

weixin_30336531的博客 169

XDMA 驱动安装与性能测试全流程解析

本文详细解析了XDMA驱动的完整安装与性能测试流程。从环境准备、源码获取、编译安装到驱动加载与设备验证,逐步指导用户打通FPGA加速卡与主机间的高速数据通道。重点介绍了如何通过官方测试脚本进行功能验证与带宽性能测试,帮助用户评估XDMA驱动的实际传输效能,为AI推理、高频交易等低延迟高带宽应用奠定基础。

weixin_29216049的博客 525

什么是 Model Context Protocol ( MCP )?

MCP(ModelContextProtocol)是为解决LLM与外部系统集成问题而设计的标准化协议。它采用客户端-服务器架构,通过统一接口连接AI应用与数据源/工具,包含三大核心功能:资源(数据访问)、工具(执行操作)和提示(交互模板)。MCP解决了AI应用与外部系统直接集成导致的M×N扩展问题,将维护责任转移至服务提供方,显著降低开发复杂度。该协议支持JSON-RPC通信,强调安全控制,并兼容现有AI框架(如LangChain),使开发者能专注于核心逻辑而非底层集成。官方提供多语言SDK和规范文档,支持

Elastic 中国社区官方博客 3955

人类肠道微生物群落代谢建模

MICOMWeb 是款用户友好型网站,专为人类肠道微生物群落代谢建模设计。该网站旨在解决基因组尺度代谢模型(in silico)构建过程中的3大限制:① 使用 MICOM Python 包进行通量平衡分析时对用户 Python 编程知识的要求;② 支持预定义和用户自定义饮食,以生成专属代谢模型;③ 处理宏基因组鸟枪法测序或 16S 扩增子测序获得的真实丰度数据时,所需的高通量计算基础设施。本文展示了 MICOMWeb 的核心功能,用户可轻松开展虚拟实验,为3个已发表数据集的实验验证生成功能性假设。

多组・学・多组学 1169

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1359

Model Context Protocol(MCP)详解和开发教程

导入包并定义mcp实例""""""通过注解,把一个函数注册为Tool# 注册工具的装饰器,可以很方便的把一个函数注册为工具asyncdef query_logistics(order_id: str = Field(description="订单号")) -> str:"""查询物流信息。当用户需要根据订单号查询物流信息时,调用此工具Args:order_id: 订单号Returns:物流信息的字符串描述"""# 统一的物流信息数据。

赵英超的博客 1万+

ENVI 5.6保姆级教程:高分七号DLC影像从打开到融合的完整流程(附避坑指南)

本文详细介绍了ENVI 5.6处理高分七号DLC影像的完整流程,包括环境准备、数据解压、正射校正、图像融合等关键步骤。特别针对国产卫星数据处理的独特挑战,提供了实用的避坑指南和优化技巧,帮助用户高效完成光学影像的预处理和质量提升。

weixin_33269743的博客 382

Model Context Protocol (MCP)笔记

Model Context Protocol(MCP,模型上下文协议)是由 Anthropic 于 2024 年 11 月推出的一项开放标准,旨在解决大型语言模型(LLMs)与外部工具和数据源集成的复杂性问题。在 MCP 出现之前,开发者通常需要为每个数据源或工具编写定制的连接器,导致集成工作繁琐且难以维护。维基百科,自由的百科全书WikipediaMCP 的核心理念是提供一个统一的通信协议,使得 LLMs 能够通过标准化的方式访问外部资源、调用工具函数,并利用预设提示模板来增强其功能。

General_zy的博客 3027

移动机器人路径规划中噪声环境下的鲁棒性测试仿真

设计一个二维或三维环境模型,包括静态障碍物和可能存在的动态障碍物。

amy_mhd的博客 126

openclaw : 无法将“openclaw”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw : 无法将“openclaw”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

Model Context Protocol (MCP) 技术解析

快速了解 Model Context Protocol (MCP) 的核心价值是一个开放协议,旨在标准化应用程序如何为大型语言模型(LLMs)提供上下文信息。MCP 可类比为 AI 应用的 “USB-C 接口”——正如 USB-C 为设备连接外设提供了统一标准,MCP 为 AI 模型与多样化数据源及工具的连接提供了标准化方案。

Bruce_xiaowei的博客 1464

【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?

本文介绍了Halcon中为XLD轮廓模板添加极性信息的实用技巧。通过先以"ignore_local_polarity"模式创建模板,首次匹配获得位置后,使用set_shape_model_metric运算符结合真实图像为模板注入极性信息(边缘明暗方向)。这种方法弥补了XLD模板初始不支持极性的缺陷,可显著提升后续匹配的精度和抗干扰能力。实验显示,添加极性信息后的模板匹配效果明显优于无极性的匹配结果。该技术特别适用于基于手动绘制或处理后的XLD轮廓创建模板的场景。

songhuangong123的博客 751

Model Context Protocol(MCP)的详细介绍与FLASK示例使用

摘要 Model Context Protocol(MCP)是由Anthropic推出的开放标准协议,旨在为AI模型与数据源/工具提供统一的"USB-C式"连接接口。MCP采用客户端-主机-服务器架构,基于JSON-RPC 2.0实现双向通信,支持资源访问、工具调用和提示模板等功能协商。该协议解决了AI系统与业务数据集成中的碎片化问题,使模型能够安全获取实时上下文,同时通过严格的安全机制保障数据隐私和操作权限。典型应用场景包括代码辅助、企业知识问答、自动化助手和检索增强生成等,为AI系统

QiangDeHeng的博客 3108

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

第一章:Model Context Protocol (MCP)

MCP如何成为LLM与工具间的“翻译官”通过简单配置就能让模型安全访问资源标准化协议如何简化复杂系统的协作接下来,我们将深入探索MCP服务器分类,了解不同类型的服务器如何解决具体问题——例如有的服务器连接数据库,有的则用于网络爬虫!📚 接下来,你将学会如何根据需求选择或定制自己的MCP服务器!

qq_51279133的博客 2305

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

一文带你了解MCP (Model Context Protocol)

MCP(Model Context Protocol)是一个用于大语言模型与外部系统交互的开放标准协议。它提供统一接口实现AI模型与工具、数据源的安全通信,具有标准化、安全性强、扩展性好等特点。 MCP架构包含客户端、服务器和工具适配器三层,采用结构化消息格式实现模型与外部系统的交互。开发时需准备Python技术栈,实现服务器端的工具注册、资源管理和客户端的连接与调用功能。 该协议解决了AI集成中的互操作性问题,通过标准化接口简化了扩展开发,同时内置安全机制保障数据访问安全。

new_daimond的博客 2556

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

什么是 MCP(Model Context Protocol)?

MCP(Model Context Protocol)是让大模型与外部数据源/工具对接的标准化通信协议,解决了大模型无法实时对接外部数据和调用工具的痛点。它通过统一接口、可扩展性和可控安全的特点,使大模型能安全高效地与数据库、文件系统、Web服务等外部资源"对话",实现查实时信息、做外部操作、调用工具等功能。相比传统方案,MCP降低了集成成本,提升了扩展性和可靠性,是落地大模型"工具调用"和"数据对接"场景的高效解决方案。

2401_85390073的博客 1393

如何使用 MCP(Model Context Protocol)

MCP(Model Context Protocol)是由 Anthropic 公司提出的一项开源标准协议,旨在实现大型语言模型(如Claude、GPT)与外部数据源或工具之间标准化、高效、安全地连接,进一步拓展语言模型的使用场景。简单来说,使用 MCP 后,语言模型将不再局限于自身的训练数据,而是可以实时访问外部工具或资源来满足更复杂的交互需求。MCP 为语言模型与外部资源的高效沟通提供了一套标准的解决方案,有了 MCP,AI 助手、知识管理系统、智能内容创作工具的实现将变得更加便捷。

weixin_52295505的博客 2365

Model Context Protocol(MCP)深度解析

随着大语言模型(LLM, Large Language Model)在各类智能应用中的广泛应用,如何高效、安全、标准化地为 LLM 提供上下文信息,成为 AI 应用开发中的核心问题。它为应用程序与 LLM 之间的数据、工具和上下文交互提供了统一的接口和标准,极大地提升了 AI 应用的可扩展性、可维护性和安全性。通过 MCP,开发者可以轻松集成不同的数据源、工具和 LLM 服务,极大地提升了开发效率和系统的可扩展性。MCP 通过标准化的工具接口,极大地扩展了 LLM 的能力边界。

MCPFlow的博客 1737

一文入门 MCP(Model Context Protocol)

Model Context Protocol (MCP) 是一种中间协议层,旨在通过统一的方式将数据源、工具和功能连接到 AI 模型,类似于 USB-C 接口的通用性。MCP 由三方组成:MCP Host(客户端)、MCP Client(中转站)和 MCP Server(工具)。MCP 的诞生源于减少人工干预的需求,通过自动化步骤提升 AI 的工作效率。其目标是创建一个通用标准,简化 AI 应用程序的开发和集成,使 AI 能够直接调用原本无法调用或模糊理解的功能。

QiuXiang_的博客 1397

OpenClaw + MCP 集成实战:用 Model Context Protocol 连接一切

摘要: Model Context Protocol (MCP) 是AI集成的统一标准协议,类似USB-C接口,实现工具与AI应用的无缝连接。文章通过Notion和PostgreSQL的MCP配置实战,详解MCP的架构、通信协议(JSON-RPC 2.0)及OpenClaw原生支持。MCP提供Tools(可调用函数)、Resources(可读数据)和Prompts(预定义模板)三大核心能力,支持stdio和SSE两种传输方式。配置仅需在openclaw.json中声明服务器信息,无需适配代码,且通过环境变量

u014798858的博客 3491

MCP(Model Context Protocol)详解

MCP(Model Context Protocol)是一种AI模型与外部系统进行上下文信息交换的协议标准,旨在增强模型的上下文感知能力。其核心机制包括结构化数据表示(JSON格式)、动态上下文更新、权限管理和安全交互。MCP通过让AI模型获取用户状态、环境变量等多维信息,实现更智能的个性化响应。应用场景涵盖智能助手、企业应用、多轮对话等。与API和Prompt Engineering不同,MCP更注重模型与环境的深度融合。文章还提供了Python实现的MCP基础架构(服务端+客户端)示例,展示上下文存储、

onlymscn的博客 1435

MCP (Model Context Protocol) 技术分析

MCP(Model Context Protocol)是一种通过本地运行的MCP服务器扩展系统能力的模型上下文协议。MCP服务器通过标准输入输出(stdio)与系统进行基于JSON的请求-响应通信,提供动态资源和工具处理能力。其架构包括Server类、Transport层、资源和工具处理器等组件,支持静态和动态资源管理,以及工具的动态调用和参数验证。MCP服务器可应用于获取天气信息、执行数据分析等场景,并通过错误处理机制确保通信的可靠性。创建MCP服务器需初始化项目、定义处理逻辑、编译运行并配置设置文件。

编码浪子的专栏 1450

Model Context Protocol (MCP) 详解:连接AI与数据的开放标准

Model Context Protocol(MCP)是一个开放协议,用于标准化应用程序如何向大型语言模型(LLM)提供上下文。它可以被比喻为"AI应用程序的USB-C端口"。正如USB-C提供了一种标准化的方式来连接设备与各种外设和配件,MCP提供了一种标准化的方式来连接AI模型与不同的数据源和工具。MCP的核心目标是解决AI助手与数据之间的隔离问题。即使是最先进的模型也受到与数据隔离的限制——它们被困在信息孤岛和传统系统之后。每个新的数据源都需要自己的定制实现,使真正连接的系统难以扩展。

专注于人工智能领域的小何尚 2819

什么是 MCP?Model Context Protocol 协议完整解析

MCP(Model Context Protocol)是一种AI模型与外部系统交互的应用层协议,旨在标准化模型访问外部能力的方式。它基于JSON-RPC 2.0,定义了工具(Tool)、资源(Resource)和提示模板(Prompt)三类核心能力对象,通过协议化交互实现安全可控的访问。MCP解决了工具调用不统一、上下文耦合等问题,支持多种传输方式(HTTP/SSE/STDIO),强调显式声明和安全边界设计。作为AI Agent的通用交互标准,MCP使模型能够结构化地使用外部能力,同时保持可扩展性和互操作性

m0_46535746的博客 1564

Model Context Protocol (MCP) 介绍

Model Context Protocol (MCP) 是一个开放协议,用于标准化应用程序如何为大型语言模型(LLMs)提供上下文。它类似于 AI 应用程序的 USB-C 接口,为 AI 模型连接到不同的数据源和工具提供了标准化的方式

青蛙博客 1137
上一篇: 第 8 章 · Tool Calling 与 Tool Search
下一篇: 第 10 章 · Embedding、VectorStore 与 RAG
AI深栈
博客等级 码龄14年 1粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值