基于 AIToolkit 模板构建 Weather MCP Server:环境配置、Agent Builder 与 MCP Inspector 双链路调试实战

发布时间:2026/10/3 1:50:35
基于 AIToolkit 模板构建 Weather MCP Server:环境配置、Agent Builder 与 MCP Inspector 双链路调试实战 教程文档人工智能【免费下载链接】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点击查看免费下载本文以开源仓库mcp-for-beginners的 Lab 3 实战模块为背景围绕 Weather MCP Server 模板文档 展开讲解如何用 Python 快速搭建一个基于 Model Context ProtocolMCP的天气服务脚手架并借助 Microsoft Foundry ToolkitAI Toolkit的 Agent Builder 与 MCP Inspector 完成两种主流调试链路。读完本文你将掌握 MCP 服务器的目录结构、FastMCP工具注册与 SSE/stdio 双传输原理、虚拟环境两种安装方式以及一键式断点调试的完整工作流。模板概览一个可复用的 Weather MCP Server 脚手架该模板在仓库中对应的完整代码位于 lab3/code/weather_mcp本质上是一个用 Python 编写、返回mock模拟天气数据的 MCP Server 样例官方定位是 a scaffold for your own MCP Server——即可以作为你自己 MCP Server 的脚手架起点。它包含三类核心特性特性说明Weather Tool一个根据给定位置返回模拟天气信息的工具Connect to Agent Builder将 MCP 服务器连接到 Microsoft Foundry Toolkit 的 Agent Builder 进行测试与调试Debug in MCP Inspector使用 MCP Inspector 对服务器进行可视化调试源码级骨架FastMCP 与工具注册模板的最小可运行核心只有两个文件。src/server.py中通过mcp.server.fastmcp.FastMCP创建服务器实例并用server.tool()装饰器注册了一个名为get_weather的异步工具# 10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/src/server.py import json import random from mcp.server.fastmcp import FastMCP # Initialize FastMCP server server FastMCP(weather_mcp) server.tool() async def get_weather(location: str) - str: Get weather for a location. Args: location: Location to get weather for, e.g., city name, state, or coordinates if not location: return Location is required. # mock weather data conditions [ Sunny, Rainy, Cloudy, Snowy ] weather { location: location, temperature: f{random.randint(10, 90)}°F, condition: random.choice(conditions), } return json.dumps(weather, ensure_asciiFalse)从实现看该工具具备三个值得复用的设计点参数校验空location直接返回提示、mock 数据生成温度在 10–90°F 之间随机、天气条件在 Sunny/Rainy/Cloudy/Snowy 中随机选取、结构化返回用json.dumps序列化结果并指定ensure_asciiFalse以保留非 ASCII 字符。若后续接入真实天气 API只需替换weather字典的构造逻辑即可工具签名与调用链无需改动。入口文件 src/init.py 则负责传输方式与运行时配置的分发import os import sys from server import server if __name__ __main__: Main entry point transport_type sys.argv[1] if len(sys.argv) 1 else None server.settings.log_level os.environ.get(LOG_LEVEL, DEBUG) if transport_type sse: port int(os.environ.get(PORT, 3001)) server.settings.port port server.settings.host 127.0.0.1 server.run(transportsse) elif transport_type stdio: server.run(transportstdio) else: print(Invalid transport type. Use sse or stdio.) sys.exit(1)这里可以看到两个关键事实传输方式由命令行参数决定传入sse走 HTTP 流式传输、传入stdio走标准输入输出传输两者均是 MCP 协议支持的传输层SSE 模式的端口与主机可通过环境变量覆盖PORT默认 3001、host固定为127.0.0.1日志级别也可通过LOG_LEVEL环境变量调整默认DEBUG。这些默认值正是下文中调试端口约定的源头。环境准备uv 与 pip 两套安装路径模板文档给出了明确的前置条件与两套等价的依赖安装方式。运行该 MCP Server 需要Python3.10见 pyproject.toml 中requires-python声明可选若偏好 uvuv包管理器Python Debugger ExtensionVS Code 的ms-python.debugpy扩展断点调试依赖它。安装依赖时两种方式任选其一推荐在项目根目录创建独立虚拟环境方式操作步骤使用uv1. 创建虚拟环境uv venv2. 在 VS Code 执行命令 Python: Select Interpreter选择刚创建的虚拟环境中的 Python3. 安装依赖含开发依赖uv pip install -r pyproject.toml --extra dev使用pip1. 创建虚拟环境python -m venv .venv2. 在 VS Code 执行命令 Python: Select Interpreter选择虚拟环境中的 Python3. 安装依赖含开发依赖pip install -e .[dev]注意创建虚拟环境后请重新加载 VS Code 或重启终端确保后续命令使用虚拟环境中的 Python 解释器否则可能出现依赖装到了全局环境、调试器找不到包的问题。从 pyproject.toml 的声明可以看到依赖细节运行依赖为mcp1.26.0可选开发依赖dev组固定为debugpy1.8.8。--extra dev/[dev]的作用就是把debugpy一并装好——它是 VS Code 附加调试attach模式下断点生效的基础。仓库配套的 Module 3 实验文档 也提到其教学基线使用 MCP SDK 1.9.3 与 Inspector 0.14.0而模板代码目录中的依赖已按最新版本演进安装时以你实际拉取的pyproject.toml/uv.lock为准即可。模板目录结构每一层的职责模板文档给出了一级目录的职责划分结合 Module 3 实验文档 中的完整结构树模板实际包含以下内容目录 / 文件内容.vscodeVS Code 调试相关文件launch.json、tasks.json.aitkMicrosoft Foundry Toolkit 的配置含mcp.jsonsrcWeather MCP Server 的源码server.py工具实现 __init__.py入口inspectorMCP Inspector 本地运行环境package.json、package-lock.jsonpyproject.tomlPython 项目元数据与依赖声明README.md模板使用说明其中inspector/package.json值得注意——它本身只是一个占位项目核心脚本只有一行dev:inspector: mcp-inspector并声明了对modelcontextprotocol/inspector的依赖作用是在本地拉起 MCP Inspector 服务供调试配置中的浏览器启动任务使用。说明.vscode与.aitk属于模板生成项仓库中未提交这两个目录Module 3 实验文档 的 Step 5: Configure VS Code Debugging 章节给出了launch.json与tasks.json的完整内容本地生成模板后按该章节拷贝覆盖即可。通过 Agent Builder 运行以 LLM 客户端完成端到端测试环境就绪后最直接的验证方式是把 MCP Server 作为被调用的工具经由 Microsoft Foundry Toolkit 的 Agent Builder 以自然语言触发。操作步骤如下打开 VS Code 调试面板Debug panel选择Debug in Agent Builder调试配置或直接按F5启动调试。在 Microsoft Foundry Toolkit 的 Agent Builder 中选择一个有效的 Foundry 部署deployment例如gpt-5.1然后输入What is the weather in Shanghai?点击RunAgent 会自动发现并连接该 MCP Server调用get_weather工具并返回模拟天气结果。完成上述操作即代表 You have successfully run the Weather MCP Server in your local dev machine via Agent Builder as the MCP Client。这条链路的自动化原理可以从 Module 3 实验文档 的tasks.json配置中看出名为Open Agent Builder的 VS Code 任务通过输入参数ai-mlstudio.agentBuilder启动 Agent Builder并传入initialMCPs: [local-server-weather_mcp]从而把本地运行的 MCP Server 预置为 Agent 可用的工具列表同时Start MCP Server任务以python -m debugpy --listen 127.0.0.1:5678 src/__init__.py sse在后台启动服务器并监听 5678 端口等待附加调试。也就是说按 F5 后 VS Code 会自动完成起服务 → 开 Agent Builder → 附加调试器三步串联。调试结果示例Agent 收到工具返回的 JSON位置、温度、天气条件后会组织成自然语言回复给用户。通过 MCP Inspector 调试面向开发者的可视化测试台MCP Inspector 是 MCP 生态中面向开发者而非终端用户的可视化调试工具适合在没有大模型客户端参与的情况下直接对服务器注册的工具做点对点验证。模板文档给出了完整步骤安装 Node.jsInspector 为 Node 生态工具初始化 Inspectorcd inspectornpm install打开 VS Code 调试面板选择Debug SSE in Inspector (Edge)或Debug SSE in Inspector (Chrome)按 F5 启动调试浏览器中打开 MCP Inspector 页面后点击Connect按钮连接该 MCP Server之后即可List Tools列出服务器注册的工具、选中get_weather、填入location参数再Run Tool直接调用并查看返回借此逐行调试你的服务器代码。注意所有调试模式Agent Builder 与 Inspector都支持断点。你可以在工具实现代码例如src/server.py的get_weather函数体内添加断点当 Inspector 或 Agent 触发工具调用时VS Code 会停在断点处便于观察中间变量与数据流。从配置层面看见 Module 3 实验文档 的launch.jsonInspector 调试是由一个复合配置compound完成的Debug in Inspector (Edge/Chrome)同时拉起启动浏览器并打开 Inspector 地址与附加到本地 MCP 服务两个子配置前置任务Start MCP Inspector负责在inspector目录下执行npm run dev:inspector即mcp-inspector并设置CLIENT_PORT6274、SERVER_PORT6277而浏览器地址中通过serverUrlhttp://localhost:3001/sse#tools指向本机 SSE 服务器端点。这也是为什么按 F5 一次就能得到Inspector 页面 可断点服务器的完整调试环境。默认端口约定与定制方式模板文档对两种调试模式的端口做了明确约定调试模式端口定义位置定制方式Agent Builder3001tasks.json编辑launch.json、tasks.json、src/__init__.py、.aitk/mcp.json以修改上述端口MCP Inspector3001Server5173 与 3000Inspectortasks.json编辑launch.json、tasks.json、src/__init__.py、.aitk/mcp.json以修改上述端口理解这些端口的来源有助于按需定制3001SSE 传输下 MCP Server 的监听端口。它由 src/init.py 中的os.environ.get(PORT, 3001)读取同时 Module 3 实验文档 的tasks.json通过env: { PORT: 3001 }注入该值。修改端口时两端必须同步环境变量 launch.json中的serverUrl否则浏览器无法连上服务器。5173 / 3000Inspector 自身 Web 界面与代理服务的默认端口。模板文档以 Agent Builder 教程的旧版约定给出仓库内 Module 3 实验文档 则使用了6274Inspector 客户端端口与6277代理端口的新版配置并明确提示其 Inspector 地址基于 legacy/sse端点、依赖被固定为 MCP SDK 1.9.3 与 Inspector 0.14.0。因此端口具体取值以你本地tasks.json/launch.json实际内容为准两个文档版本间存在演进差异是正常的。5678debugpy附加调试的监听端口--listen 127.0.0.1:5678由launch.json中Attach to Local MCP配置的connect.port与之对应用于断点调试通道一般无需修改。常见问题与向真实服务器的演进路径围绕模板使用有几个高频问题值得提前说明虚拟环境未生效创建.venv后没有重载 VS Code/终端导致python指向全局解释器。解决办法是执行 Python: Select Interpreter 手动选择虚拟环境 Python或关闭重开终端。传输参数错误src/__init__.py只接受sse与stdio两个合法传输参数其它输入会打印Invalid transport type. Use sse or stdio.并退出退出码 1。调试配置中默认传sse即 HTTP 流式传输。断点不生效确认已安装debugpy1.8.8--extra dev/[dev]安装组以及 VS Code 的 Python Debugger 扩展并确认选择的是虚拟环境解释器。从 mock 到真实数据从源码结构看get_weather与外部世界唯一的耦合点是构造weather字典这段逻辑将其替换为对真实天气 API 的异步调用如httpx请求 结果映射即可把脚手架演化为生产级天气服务工具对外暴露的location参数与 JSON 返回结构均可保持不变。至此你已经走通了模板生成 → 环境安装 → 双链路调试 → 定制端口的完整 MCP Server 开发闭环。下一步可以在 Module 4 中看到同一套工作流如何被用于构建生产化的 GitHub 仓库克隆 MCP Server进一步验证该脚手架在真实业务场景下的扩展能力。赞分享教程文档人工智能【免费下载链接】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点击查看免费下载相关推荐大麦抢票脚本怎么跑通从环境配置到参数调优的Python自动化指南大麦抢票脚本怎么跑通从环境配置到参数调优的Python自动化指南 这是一个基于Python的大麦抢票脚本网页端用Selenium驱动Chrome移动端用AGUI 自动化RPAMCP Inspector实战指南从零构建可视化调试环境MCP Inspector实战指南从零构建可视化调试环境 在MCP服务器开发过程中你是否遇到过工具调用失败却难以定位问题、连接配置复杂导致调试困难、或者无法开发工具MCP Clients调试器mcp-agent MCP Agent Server 实战基于 asyncio 执行引擎将 Agentic Workflow 暴露为 MCP Servermcp agent MCP Agent Server 实战基于 asyncio 执行引擎将 Agentic Workflow 暴露为 MCP Server 本人工智能AI AgentAgent 框架MCP ClientsAgent 工作流上一篇llama_index KeywordTableIndex 检索器完全指南BaseKeywordTableRetriever 与 GPT / Simple / RAKE 三种检索模式深度解析下一篇Jellium Desktop音频输出设备切换耳机、音箱与HDMI的无缝切换创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询