
教程文档人工智能【免费下载链接】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 开源课程中实时文档检索案例研究09-CaseStudy/docs-mcp/README.md的深度展开。它演示了如何用官方 MCP SDK 的流式 HTTP 客户端连接微软官方的 Microsoft Learn Docs MCP 服务器端点https://learn.microsoft.com/api/mcp把文档检索直接搬进你的终端应用、Web 应用与 VS Code从而消灭写代码—切浏览器—翻文档的上下文切换。读完本文你将掌握三种可复制的实战方案用ClientSession调用microsoft_docs_search工具的交互式命令行客户端、用 Chainlit Semantic Kernel 构建的对话式学习计划生成 Web 应用以及通过.vscode/mcp.json在编辑器内直接检索并引用微软文档的完整配置流程。为什么要把文档接进工具链现代开发早已不只是写代码本身还包括在正确的时间找到正确的信息。文档无处不在但它很少出现在最需要它的地方——你的 IDE、聊天机器人或自定义工具里。MCPModel Context Protocol正是用来打通这条路的标准化协议客户端通过统一的 JSON-RPC 消息与服务器对话服务器把文档检索等能力暴露为可被 LLM 与宿主应用调用的工具。本案例的核心思路是把查文档封装成一个 MCP 工具让任何 MCP 客户端都能以一致的方式调用它。你在 03-GettingStarted/02-client/README.md 学到的客户端编写基础实例化 client、选择传输层、列出并调用工具在这里会落地为连接远程 Docs MCP 服务器的真实应用如果你对传输层细节感兴趣可以参考 05-AdvancedTopics/mcp-transport/README.md 中关于 Streamable HTTP 传输的说明。学习目标理解面向文档检索的 MCP 服务器—客户端通信基础用官方 MCP SDK 实现控制台应用与 Web 应用连接 Microsoft Learn Docs MCP 服务器使用流式 HTTP 客户端进行实时文档检索在应用中记录并解析文档响应。Scenario 1用流式 HTTP 客户端实现实时文档检索第一个场景的目标最直接写一个应用连接 Microsoft Learn Docs MCP 服务器调用microsoft_docs_search工具并把流式响应打印到控制台。它是后续所有高级集成的基石——无论你想驱动聊天机器人、IDE 扩展还是 Web 仪表盘都从这里开始。最小可运行示例原文给出了一段极简的 Python 代码docs-mcp/README.md只用了 4 个关键步骤建立流式 HTTP 连接、创建会话、初始化、调用工具import asyncio from mcp.client.streamable_http import streamablehttp_client from mcp import ClientSession async def main(): async with streamablehttp_client(https://learn.microsoft.com/api/mcp) as (read_stream, write_stream, _): async with ClientSession(read_stream, write_stream) as session: await session.initialize() result await session.call_tool(microsoft_docs_search, {query: Azure Functions best practices}) print(result.content) if __name__ __main__: asyncio.run(main())这段代码的价值在于展示了 MCP 客户端连接远程服务器的标准调用链streamablehttp_client(url)建立到 MCP 端点的 Streamable HTTP 传输通道返回一对read_stream / write_stream分别承载服务器到客户端、客户端到服务器的消息流ClientSession(read_stream, write_stream)包装出会话对象await session.initialize()完成 MCP 握手交换协议版本与能力信息session.call_tool(microsoft_docs_search, {...})调用服务器暴露的文档检索工具并返回CallToolResult其content字段携带工具执行结果。需要说明的是从仓库配套源码看完整实现中microsoft_docs_search实际接收的参数键为question见 scenario1.py 与 scenario2.py调用形如session.call_tool(microsoft_docs_search, {question: user_query})。上例中的query键保留原文写法实际开发时请以 SDK 版本与服务器工具声明的 schema 为准。完整实现交互式命令行客户端上面的最小示例只是骨架仓库里的 scenario1.py 给出了生产可用级的完整版本并叠加了文档原文要求的交互式控制台 日志 错误处理。其结构与亮点如下1. 端点与日志配置MCP_SERVER_URL https://learn.microsoft.com/api/mcp logging.basicConfig( levellogging.INFO, format%(asctime)s - %(name)s - %(levelname)s - %(message)s, datefmt%Y-%m-%d %H:%M:%S ) logger logging.getLogger(mcp_client)日志直接面向排障连接建立、会话初始化、每次查询执行都留有INFO级记录查询与连接失败则落到ERROR级。2. 交互式查询循环prompt_user()捕获KeyboardInterrupt/EOFError并安全退出主循环在while True中持续接受输入空查询会提示重输输入exit或quit结束会话while True: user_query prompt_user() if not user_query: print(Query cannot be empty. Please try again.) continue if user_query.lower() in (exit, quit): print(Exiting client. Goodbye!) break ...3. 调用工具并解析 JSON 结果一次查询的执行路径是logger.info(Executing query: %s, user_query)→session.call_tool(microsoft_docs_search, {question: user_query})→ 遍历result.content。注意这里的关键解析细节每个item.text本身是一段 JSON 字符串json.loads后得到文档列表每篇文档又包含title与content字段result await session.call_tool(microsoft_docs_search, {question: user_query}) if hasattr(result, content): for item in result.content: my_list json.loads(item.text) for doc in my_list: print(f[Title]: {doc.get(title, No title)}) print(f[Content]: {doc.get(content, No content)}) print(---)4. 双层异常处理内层捕获单次查询失败换一个查询或检查连接即可继续外层捕获连接级失败网络不可达等并打印可操作的提示后sys.exit(1)except Exception as e: logger.error(Query failed: %s, e) print(fError: {e}. Please try a different query or check your connection.\n) ... except Exception as e: logger.error(Connection error: %s, e) print(Please check your internet connection and try again.) sys.exit(1)安装与运行依赖只涉及官方 MCP SDK 与 asynciorequirements.txt 中的mcp包即官方 Python SDKpip install -r requirements.txt # 安装 mcp 等依赖 python scenario1.py # 启动客户端运行后界面大致如下来自 docs-mcp/README.mdPrompt What is Azure Key Vault? Answer Azure Key Vault is a cloud service for securely storing and accessing secrets. ...它演示的完整闭环是连接 Docs MCP 服务器 → 发送查询 → 解析并打印结果。更详尽的安装与使用说明见 solution/python/README.md。Scenario 2用 Chainlit 构建交互式学习计划生成器第二个场景把 Docs MCP 搬进了 Web 应用用户直接在浏览器聊天窗口中输入我想学 AI-102请给我 6 周学习路线应用实时查询微软 Learn 文档并返回带官方资源链接的逐周学习计划。运行效果示意出自 docs-mcp/README.mdUser I want to learn about AI102 - so suggest the roadmap to get it started from learn for 6 weeks Assistant Here’s a detailed 6-week roadmap to start your preparation for the AI-102: Designing and Implementing a Microsoft Azure AI Solution certification, using official Microsoft resources... ## Week 1: Introduction Fundamentals - **Understand the Exam**: Review the AI-102 exam skills outline. - **Set up Azure**: Sign up for a free Azure account if you dont have one. - **Learning Path**: Introduction to Azure AI services - **Focus**: Get familiar with Azure portal, AI capabilities, and necessary tools. ....more weeks of the roadmap...为什么选 ChainlitChainlit 是构建对话式 AI Web 应用的开源框架它让创建能调用 MCP 工具、实时展示结果的交互式聊天助手变得非常轻量特别适合快速原型与用户友好界面。配合仓库中的 scenario2.py它做到了三件事搭建 Web 应用 → 连接 Docs MCP 服务器 → 处理用户输入并展示结果。最小示例与真实架构的差别原文给出的最小示例用requests直连 MCP 端点注意该极简写法并未经过ClientSession握手属于简化示意仓库内的完整实现走的是正规 SDK 调用链import chainlit as cl import requests MCP_URL https://learn.microsoft.com/api/mcp cl.on_message def handle_message(message): query {question: message} response requests.post(MCP_URL, jsonquery) if response.ok: result response.json() cl.Message(contentresult.get(answer, No answer found.)).send() else: cl.Message(contentError: response.text).send()而完整版 scenario2.py 的真实架构要专业得多它把 MCP 文档检索封装成Semantic Kernel 插件再交给带自动函数选择Function Choice的聊天 Agent 编排MCPDocsPlugin类用kernel_function(namesearch_docs, descriptionSearch Microsoft Docs using MCP)把 MCP 调用声明为 Semantic Kernel 函数函数内部完成streamablehttp_client→ClientSession→initialize→call_tool(microsoft_docs_search, {question: question})并把 JSON 结果整理成**标题**\n内容的 Markdown 格式返回。cl.on_chat_start初始化Kernel、注册AzureChatCompletion服务、开启FunctionChoiceBehavior.Auto()让模型自动决定何时调用search_docs并把插件与ChatCompletionAgent名为DocsAgent存入cl.user_session。cl.on_message通过async for content in agent.invoke(user_query)流式获取 Agent 回复并用answer.stream_token(str(msg))逐 token 推送实现打字机式的实时输出空查询、无响应、异常均有兜底提示。前置环境变量由于完整版用 Azure OpenAI 驱动 Agent运行前必须在python目录的.env文件中配置solution/python/README.mdAZURE_OPENAI_CHAT_DEPLOYMENT_NAME AZURE_OPENAI_API_KEY AZURE_OPENAI_ENDPOINT AZURE_OPENAI_API_VERSION启动与示例查询chainlit run scenario2.py启动后在终端给出的本地地址如http://localhost:8000打开页面即可输入查询。仓库 README 提供了多组可直接试用的提示词展示主题 时长式输入如何被拆解为结构化学习计划AI-900 certification, 8 weeksLearn Azure Functions, 4 weeksAzure DevOps, 6 weeksData engineering on Azure, 10 weeksMicrosoft security fundamentals, 5 weeksPower Platform, 7 weeksAzure AI services, 12 weeksCloud architecture, 9 weeks依赖方面注意 requirements.txt 里的一条安全加固werkzeug3.1.6被显式钉住用于规避其作为传递依赖在 Windows 设备名safe_join上的 DoS 漏洞CVE-2025-66221 / CVE-2026-21860 / CVE-2026-27199。Scenario 3在 VS Code 里内嵌微软文档第三个场景面向不想切浏览器标签页的日常开发场景把 Microsoft Learn Docs 直接放进 VS Code你可以在编码环境中搜索、阅读文档把文档链接直接插进 README 或课程文件并与 GitHub Copilot 协同工作。适用人群正在编写技术课程、撰写文档或开发中频繁需要查阅参考资料的开发者与技术写作者。三步配置.vscode/mcp.json在工作区根目录创建.vscode/mcp.json仓库提供了可直接使用的样例 mcp.json{ servers: { LearnDocsMCP: { url: https://learn.microsoft.com/api/mcp } } }这段配置告诉 VS Code 如何连接 Docs MCP 服务器服务器名LearnDocsMCP类型为基于 URL 的远程 MCPStreamable HTTP。编辑器内完整工作流结合 solution/scenario3/README.md 的逐步指引添加 MCP 配置把上述mcp.json放入项目根目录的.vscode/文件夹截图演示见 step1-mcp-json.png。打开 Copilot Chat 面板确保已安装 GitHub Copilot 扩展从侧边栏打开 Chat 面板见 step2-copilot-panel.png。启用 agent 模式并验证工具在 Chat 面板开启 agent 模式step3-agent-mode.png随后确认LearnDocsMCP已出现在可用工具列表中step3-verify-mcp-tool.png确保 Copilot Agent 可以访问文档服务器。新建会话并提示 Agent例如Im trying to write a study plan for topic X. Im going to study it for 8 weeks, for each week, suggest content I should take.Agent 会调用 MCP 工具取回相关文档step4-prompt-chat.png。实时查询也可以把社区/论坛里的真实问题直接抛给 Agent如如何把 Azure AI Foundry 上的多 Agent 方案部署给企业用户使用它会返回相关文档链接与摘要供你直接插入 Markdown 文件或作为代码注释引用step5-live-queries.png。可在编辑器里尝试的示例查询Show me how to use Azure Functions triggers.Insert a link to the official documentation for Azure Key Vault.What are the best practices for securing Azure resources?Find a quickstart for Azure AI services.这些查询展示了 MCP 与 Copilot 的配合Copilot 负责代码生成与上下文理解MCP 负责实时取回并引用官方文档——文档质量与引用的准确性由微软官方内容源保证不必离开编辑器半步。关键要点把文档集成进工具链不只是便利更是生产力层面的结构性改进。通过连接 Microsoft Learn Docs MCP 服务器你可以消除上下文切换不再在代码与文档之间来回跳转获取实时、上下文感知的文档检索始终基于微软 Learn 的最新内容构建更智能、更交互的开发者工具从控制台客户端到对话式 Web 应用再到编辑器内嵌 Agent。进一步学习本案例所属章节概览MCP in Action: Real-World Case Studies客户端编写基础传输层选择、工具/资源/提示词的列出与调用Creating a client传输层原理stdio 与 Streamable HTTP 的取舍MCP TransportMCP 与其他系统集成方式MCP Integration完整配套代码Scenario 1/2 见 python 解决方案Scenario 3 见 scenario3 解决方案。下一步可继续 模块 10用 Microsoft Foundry Toolkit 构建 MCP 服务器从消费 MCP 服务器切换到亲手构建 MCP 服务器。赞分享教程文档人工智能【免费下载链接】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点击查看免费下载相关推荐Spacedrive UI 包迁移实战从 sd/ui 到 spacedrive/primitives 的纯导入路径替换指南Spacedrive UI 包迁移实战从 sd/ui 到 spacedrive/primitives 的纯导入路径替换指南 这篇技术指南以 Spacedr教程文档人工智能Hermes 接入 DeepSeek 快速教程2 分钟装好5 步走完配置Hermes 接入 DeepSeek 快速教程2 分钟装好5 步走完配置 很多新手第一次给 Hermes 接 DeepSeek卡在 API Key、Bas教程大模型AI AgentContext7 MCP 服务器完整接入指南为 Cursor、Claude Code、VS Code 等 AI 编程客户端注入实时库文档Context7 MCP 服务器完整接入指南为 Cursor、Claude Code、VS Code 等 AI 编程客户端注入实时库文档 Context7 是MCP 服务AI 应用开发工具上一篇DeepHermes-Egregore-v1-RLAIF-8b-Atropos-i1-GGUF高级配置多GPU部署与推理优化终极指南下一篇TOCropViewController安全与隐私保护用户图片数据的最佳策略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考