使用 AI Toolkit 在 Visual Studio Code 中消费 MCP 服务器:以计算器 Agent 为例的端到端实战
教程文档人工智能【免费下载链接】mcp-for-beginnersThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.项目地址https://gitcode.com/GitHub_Trending/mc/mcp-for-beginners点击查看免费下载AI 智能体Agent的价值不只在于生成聪明的回答更在于真正采取行动。本指南基于 mcp-for-beginners 课程的第 7 课完整演示如何借助AI Toolkit for Visual Studio Code扩展把计算器 MCP 服务器接入 AgentPromptBuilder让 Agent 通过一句自然语言提示就能完成加、减、乘、除运算。学完本文你将掌握在 VSCode 中创建 Agent、定义系统提示、用模板搭建 Python MCP 服务器、将二者连通并通过自然语言触发工具调用的全流程并了解如何为服务器扩展新工具。概览为什么需要 MCP 与 AI Toolkit当你在构建 AI Agent 时除了让它生成回答还要赋予它操作外部世界的能力。Model Context ProtocolMCP正是为此而生——它用一种一致的方式让 Agent 访问外部工具与服务。你可以把它理解为把 Agent 插进一个它真正能用的工具箱。想象一下你把 Agent 连上自己的计算器 MCP 服务器它就能仅凭一句47 乘以 89 等于多少完成数学运算无需硬编码逻辑也无需自建 API。本课的核心流程如下创建 Agent 并定义其系统提示system prompt创建带计算工具加、减、乘、除的 MCP 服务器用 AgentPromptBuilder 连接该 MCP 服务器通过自然语言测试 Agent 的工具调用。AI Toolkit 是 Visual Studio Code 上的一个功能强大的扩展能显著简化 Agent 的开发AI 工程师可以方便地构建 AI 应用并在本地或云端开发、测试生成式 AI 模型且该扩展支持当今绝大多数主流生成式模型。[!NOTE] AI Toolkit 目前支持Python和TypeScript的 MCP 模板。学习目标完成本课学习后你将能够通过 AI Toolkit 消费consumeMCP 服务器配置 Agent使其能发现并使用 MCP 服务器提供的工具通过自然语言使用 MCP 工具。前置条件Visual Studio CodeAI Toolkit for Visual Studio Code[!WARNING]macOS 用户请注意目前官方正在调查影响 macOS 上依赖安装的问题因此 macOS 用户暂时无法完成本课练习。一旦修复方案可用课程说明会同步更新。练习总览构建、运行并增强带 MCP 工具的 Agent在本练习中你将直接在 Visual Studio Code 中使用 AI Toolkit 构建、运行并增强一个带 MCP 服务器工具的 AI Agent。整体分为 5 个步骤-0添加模型、-1创建 Agent、-2生成系统提示、-3创建 MCP 服务器、-4运行 Agent 并验证工具调用。步骤 -0把 GPT-4o 模型加入 My Models本练习使用GPT-4o模型因此必须在创建 Agent 之前先把它添加到My Models列表。从Activity Bar活动栏打开AI Toolkit扩展。在Catalog区域选择Models打开Model Catalog它会在新的编辑器标签页中打开。在Model Catalog的搜索框中输入OpenAI GPT-4o。点击 Add将该模型添加到My Models列表确保选择的是hosted on GitHubGitHub 托管的模型。回到Activity Bar确认OpenAI GPT-4o已出现在列表中。步骤 -1创建 Calculator AgentAgentPromptBuilder允许你创建并定制自己的 AI 驱动 Agent。本步将新建一个 Agent并为其指定驱动对话的模型。从Activity Bar打开AI Toolkit扩展。在Tools区域选择Agent (Prompt) Builder它会在新的编辑器标签页中打开。点击 New Agent按钮扩展将通过Command Palette启动设置向导。输入名称Calculator Agent并按下Enter。在Agent (Prompt) Builder的Model字段中选择模型OpenAI GPT-4o (via GitHub)。步骤 -2为 Agent 生成系统提示Agent 骨架搭好后就该定义它的人设与用途了。本步使用Generate system prompt功能描述 Agent 的预期行为——本例是一个计算器 Agent——让模型替你写出系统提示。在Prompts区域点击Generate system prompt按钮会打开一个利用 AI 为 Agent 生成系统提示的提示构建器。在Generate a prompt窗口中输入以下内容You are a helpful and efficient math assistant. When given a problem involving basic arithmetic, you respond with the correct result.点击Generate按钮。右下角会出现通知确认系统提示正在生成。生成完成后提示会出现在Agent (Prompt) Builder的System prompt字段中。检查System prompt如有需要可手动修改。步骤 -3创建计算器 MCP 服务器系统提示决定了 Agent 的行为与回答方式接下来要为它装备实际能力。本步将创建一个计算器 MCP 服务器提供加、减、乘、除四种工具让 Agent 能根据自然语言请求实时完成数学运算。AI Toolkit 自带便于创建 MCP 服务器的模板本练习使用Python 模板创建计算器服务器。在Agent (Prompt) Builder的Tools区域点击 MCP Server按钮扩展会通过Command Palette启动设置向导。选择 Add Server。选择Create a New MCP Server。选择python-weather作为模板。选择Default folder保存 MCP 服务器模板。输入服务器名称Calculator。会打开一个新的 Visual Studio Code 窗口选择Yes, I trust the authors。使用终端TerminalNew Terminal创建虚拟环境python -m venv .venv使用终端激活虚拟环境Windows.venv\Scripts\activatemacOS/Linuxsource .venv/bin/activate使用终端安装依赖pip install -e .[dev]在Activity Bar的Explorer视图中展开src目录选择server.py在编辑器中打开。用以下代码替换server.py中的内容并保存 Sample MCP Calculator Server implementation in Python. This module demonstrates how to create a simple MCP server with calculator tools that can perform basic arithmetic operations (add, subtract, multiply, divide). from mcp.server.fastmcp import FastMCP server FastMCP(calculator) server.tool() def add(a: float, b: float) - float: Add two numbers together and return the result. return a b server.tool() def subtract(a: float, b: float) - float: Subtract b from a and return the result. return a - b server.tool() def multiply(a: float, b: float) - float: Multiply two numbers together and return the result. return a * b server.tool() def divide(a: float, b: float) - float: Divide a by b and return the result. Raises: ValueError: If b is zero if b 0: raise ValueError(Cannot divide by zero) return a / b源码视角FastMCP 工具注册机制上面的实现只用了三行关键代码from mcp.server.fastmcp import FastMCP、server FastMCP(calculator)与server.tool()装饰器。这一模式与本仓库中其他 Python 示例一脉相承例如 01-first-server 的 server.py 中同样以mcp FastMCP(Demo)创建服务器实例并用mcp.tool()注册add、subtract两个工具。从源码结构可以推断server.tool()装饰器会把被装饰的函数注册为可供客户端发现和调用的 MCP 工具函数名成为工具名类型注解与 docstring 会被推导为工具的输入 Schema 与描述正是它们让 Agent模型能够读懂每个工具的用途并正确填入参数。这也解释了为什么除零检查要写在divide内部并抛出ValueError——把业务校验放进工具自身错误就能以可预期的形式回传给调用方。此外仓库中更进阶的示例展示了如何继续扩展这一模型例如 06-http-streaming 的 server.py 引入了FastMCP与Context注册了root、event_stream、stream、process_files等工具与资源说明同一个FastMCP实例可以承载工具、资源和流式端点而 11-simple-auth 的 server.py 则在 FastMCP 之上叠加了认证逻辑。这些示例可以作为你在 AI Toolkit 模板基础上继续深挖的参考资料。步骤 -4运行带计算器 MCP 服务器的 Agent工具就绪现在开始使用它们本步向 Agent 提交提示验证它是否会调用计算器 MCP 服务器中的正确工具。计算器 MCP 服务器将运行在你的本地开发机上Agent Builder 充当 MCP 客户端。按F5开始调试 MCP 服务器。AgentPromptBuilder会在新的编辑器标签页中打开服务器状态显示在终端中。在AgentPromptBuilder的User prompt字段中输入以下提示I bought 3 items priced at $25 each, and then used a $20 discount. How much did I pay?点击Run按钮生成 Agent 的回复。检查 Agent 的输出模型应得出结论你支付了55 美元。预期发生的过程如下Agent 选择multiply与subtract工具协助计算为multiply工具分配相应的a、b参数值为subtract工具分配相应的a、b参数值每个工具的回答显示在对应的Tool Response字段中模型的最终输出显示在最终的Model Response中。提交更多提示进一步测试 Agent。可以点击User prompt字段内部、替换文本以修改现有提示。测试完成后在终端中按CTRL/CMDC停止服务器。从结果面板可以看到Agent 把自然语言问题翻译成了两次结构化的工具调用先以{a: 3, b: 25}调用multiply3 × 25 75再以{a: 75, b: 20}调用subtract75 − 20 55最后把工具返回的75.0等结果组织成面向用户的回答。这正是 MCP 客户端工作流的缩影——关于客户端如何以编程方式列出工具并调用它们可参考 02-client 一课的 TypeScript 示例其中展示了client.listTools()/client.callTool()的调用模式。课后作业为服务器扩展平方根工具尝试在server.py中添加一个新工具例如返回一个数的平方根。然后提交需要 Agent 使用新工具或已有工具的提示记得重启服务器以加载新添加的工具。作业参考解法完整的参考实现位于 07-aitk/solution/README.md。核心思路是在原有四个工具之外新增一个sqrt工具import math server.tool() def sqrt(a: float) - float: Return the square root of a. Raises: ValueError: If a is negative. if a 0: raise ValueError(Cannot compute the square root of a negative number.) return math.sqrt(a)其工作原理如下导入math模块Python 内置的math模块提供了math.sqrt()等数学函数与常量函数定义server.tool()装饰器把sqrt函数注册为 AI Agent 可访问的工具输入参数函数接受一个float类型的参数a错误处理当a为负数时抛出ValueError避免对负数开平方math.sqrt()不支持返回值对非负输入使用math.sqrt()返回a的平方根。添加新工具后务必重启 MCP 服务器Agent 才能识别并使用新增功能。可用以下自然语言提示验证What is the square root of 25?Calculate the square root of 81.Find the square root of 0.What is the square root of 2.25?扩展验证单元测试思路如果你想让服务器行为可验证本仓库的 08-testing 一课 给出了使用pytest对 FastMCP 服务器做单元测试的范例借助mcp.shared.memory的create_connected_server_and_client_session创建服务器-客户端内存会话再通过client_session.list_tools()等断言工具是否按预期注册。把这一模式套用到计算器服务器上即可为add、divide、sqrt等工具编写自动化的行为测试。关键要点AI Toolkit 是一个出色的客户端让你能够使用 MCP 服务器及其工具你可以不断向 MCP 服务器添加新工具随需求演进扩展 Agent 的能力AI Toolkit 内置 MCP 服务器模板如 Python 模板让创建自定义工具变得很容易。补充资源与下一步AI Toolkit 官方文档https://aka.ms/AIToolkit/doc下一步测试与调试赞分享教程文档人工智能【免费下载链接】mcp-for-beginnersThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.项目地址https://gitcode.com/GitHub_Trending/mc/mcp-for-beginners点击查看免费下载相关推荐使用 AI Toolkit for Visual Studio Code 消费 MCP 服务器以计算器 Agent 为例使用 AI Toolkit for Visual Studio Code 消费 MCP 服务器以计算器 Agent 为例 本文基于 mcp for begin教程文档人工智能在 Visual Studio Code 中使用 GitHub Copilot Agent 模式消费 MCP 服务器在 Visual Studio Code 中使用 GitHub Copilot Agent 模式消费 MCP 服务器 Visual Studio Code 与教程文档人工智能使用 Microsoft Foundry Toolkit 在 VS Code 中消费 MCP 计算器服务器从 Agent 创建到自然语言调用工具使用 Microsoft Foundry Toolkit 在 VS Code 中消费 MCP 计算器服务器从 Agent 创建到自然语言调用工具 本教程基于开教程文档人工智能上一篇如何快速配置ParsecVDisplay虚拟显示器面向新手的完整指南下一篇GetQzonehistory终极指南5分钟免费备份QQ空间所有历史记录创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于Next.js与LangGraph.js的简历AI Agent工作流实战

基于Next.js与LangGraph.js的简历AI Agent工作流实战

简历工具这个赛道,表面上看已经被做烂了——各种模板站、在线编辑器、PDF导出工具一抓一大把。但真正动手做过的人都知道,从"用户填完信息"到"生成一份能直接投递的简历"之间,有一大段脏活累活:信息结构化、措…

2026/10/12 13:01:44 阅读更多 →
DouK-Downloader 完整教程:5 步配好免费的抖音视频批量下载工具

DouK-Downloader 完整教程:5 步配好免费的抖音视频批量下载工具

DouK-Downloader 完整教程:5 步配好免费的抖音视频批量下载工具 【免费下载链接】TikTokDownloader 抖音 / TikTok 平台作品下载/数据采集工具 项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader 刷到一条好视频,手动点保存、命…

2026/10/11 11:42:26 阅读更多 →
做机器学习项目时,为什么特征工程经常比换模型更重要:用 TaoToken 统一 Key 跑通特征验证流水线

做机器学习项目时,为什么特征工程经常比换模型更重要:用 TaoToken 统一 Key 跑通特征验证流水线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 6:46:52 阅读更多 →

最新新闻

大一新生年入百万?拆解流量造神背后的真实玩法与路径

大一新生年入百万?拆解流量造神背后的真实玩法与路径

大一新生,年入100万,别人都叫他“天才小火炬”。这种标题这两年刷到过不止一次,第一反应基本都是“又一个流量造神”。但把这些案例里的账号内容、产品路径、粉丝互动记录翻了很多遍之后,有一个结论我越来越确定:这里面…

2026/10/12 13:02:11 阅读更多 →
召合消除算法求解:从状态编码到A*搜索的工程实践

召合消除算法求解:从状态编码到A*搜索的工程实践

1. 从“消消乐”到算法题:召合消除问题的本质拆解第一次看到“召合消除”这个词,很多人会愣一下——这到底是个什么玩意儿?其实说白了,它就是一类在网格棋盘上通过交换相邻元素、凑齐三个或以上相同元素来触发消除的益智玩法的统称…

2026/10/12 13:02:11 阅读更多 →
Spring Boot接入MCP:让Java服务无缝对接AI应用的实战指南

Spring Boot接入MCP:让Java服务无缝对接AI应用的实战指南

1. 为什么每个Spring Boot开发者都该认真看看MCP 1.1 我遇到的服务接入难题 这两年我陆续接到好几个"把内部服务开放给AI使用"的需求,每次都被折腾得够呛。服务本身不难写,难的是对方AI应用的接入方式千奇百怪:有的要求按插件规范…

2026/10/12 13:02:11 阅读更多 →
C++从零实现分数类:精确四则运算与边界处理

C++从零实现分数类:精确四则运算与边界处理

1. 从整数除法的一个坑说起:为什么需要自己实现分数类很多刚接触C的朋友都写过类似这样的代码:计算1/2 1/3,然后发现结果输出是0。原因很简单,1/2在C里执行的是整数除法,结果是0而不是0.5。就算换成double&#xff0c…

2026/10/12 13:02:11 阅读更多 →
图片翻译六步流程:从OCR识别到译文回填的完整实战指南

图片翻译六步流程:从OCR识别到译文回填的完整实战指南

图片里夹着文字这件事,放在几年前还不太折腾人,大不了照着键盘一个字母一个字母敲。可现在谁手机里没有几十张截图、合同照片、PPT翻拍?尤其做外贸、读论文、追外漫、玩外服游戏的时候,满屏蝌蚪文真是让人头大。你去搜“图片翻译”…

2026/10/12 13:02:10 阅读更多 →
6.4k Stars!用Claude Code写论文的全套流水线,有人打包开源了:TaoToken统一Key接入实操

6.4k Stars!用Claude Code写论文的全套流水线,有人打包开源了:TaoToken统一Key接入实操

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:01:10 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →