大模型-MCP协议详解,零基础入门到精通,收藏这篇就够了

【2025大模型最新教程】MCP协议由入门到精通 MCP(Model Context Protocol,译作:模型上下文协议)是由Anthropic公司(Claude大模型的母公司)于2024年11月25日发布的一种开放通信标准协议,旨在解决目前AI大模型因为数据孤岛限制而无法充分发挥潜力的问题,统一大模型语言(LLM)与外界数据源和工具之间的通信协议,它就像 USB-C 接口一样,提供了一种标准化的方法,将 AI 模型连接到各种数据源和工具,为 AI 应用提供了连接万物的接口。 阅读详情
AI摘要

本文详细介绍了大模型MCP协议,包括基础概念、框架解析、核心实现和实战演练。MCP协议可解决模型集成复杂度,提升协作效率。还给出2025最新大模型学习路线,涵盖四个级别,同时提供经典PDF书籍、视频教程、项目实战和面试题等学习资源。

目录

1.MCP–基础概念

2.MCP–框架解析

3.MCP–核心实现

3.1.资源

3.2.提示

3.3.工具

3.4.采样

4.MCP–实战演练

4.1.工具调用


1.MCP–基础概念

    MCP协议(Model Communication Protocol,模型通信协议)是大语言模型(LLM)与外部系统或其他模型交互时的一种标准化通信框架,旨在提升交互效率、安全性和可扩展性。作用:

1. 标准化模型交互

  • 统一接口规范:解决不同模型(如GPT、Claude、Llama)输入/输出格式差异,降低集成复杂度。
  • 多模态支持:兼容文本、图像、音频等数据格式(如通过Base64编码传输非结构化数据)。

2. 提升协作效率

  • 多模型调度:支持异构模型协同工作(例如GPT-4生成文本,Stable Diffusion生成配图)。
  • 工具动态调用:允许模型通过协议请求外部API(如数据库查询、数学计算工具)。

3. 优化性能与扩展性

  • 流式传输:支持分块返回结果,减少高延迟场景下的等待时间。
  • 负载均衡:根据模型算力动态分配请求,避免单点过载。

例如:AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 也提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

2.MCP–框架解析

MCP 遵循客户端-服务器c/s架构,其中:

  • 主机是发起连接的 LLM 应用程序(Claude for Desktop或其他 AI 工具)。
  • 客户端在主机应用程序内部与服务器保持 1:1 连接,负责协议通信。
  • 服务器供客户端访问,向客户提供上下文、工具和提示。同时由于 MCP Server 自己控制资源,不用把 API 密钥给 MCP Host,因此更加安全。

基本流程:

当使用 MCP 与 Claude Desktop 交互时,具体流程如下:

1.服务器发现:

Claude Desktop 在启动时连接到配置好的 MCP 服务器

2.握手协议:
当询问数据时,Claude Desktop:确定哪个 MCP 服务器可以提供帮助(在本例中为 sqlite)
通过协议协商能力,从 MCP 服务器请求数据或操作
3.交互流程:

4.安全保证:

  • MCP 服务器仅公开特定的、受控的功能,
  • MCP 服务器在本地运行,它们访问的资源不会暴露在互联网上
  • 需要用户确认敏感操作

3.MCP–核心实现

3.1.资源

资源表示 MCP 服务器想要向客户端提供的任何类型的数据。

这可以包括:文件内容、数据库记录、API 响应、实时系统数据、截图和图片、日志文件等更多内容。每个资源由唯一的 URI 标识,并且可以包含文本或二进制数据。

{
  uri: string;           // Unique identifier for the resource
  name: string;          // Human-readable name
  description?: string;  // Optional description
  mimeType?: string;     // Optional MIME type
}

3.2.提示

MCP 中的提示是预定义的模板,可以:接受动态参数、上下文、链接多个交互 、指导特定工作流程、表面作为 UI 元素(如斜线命令)。

{
  name: string;              // Unique identifier for the prompt
  description?: string;      // Human-readable description
  arguments?: [              // Optional list of arguments
    {
      name: string;          // Argument identifier
      description?: string;  // Argument description
      required?: boolean;    // Whether argument is required
    }
  ]
}

3.3.工具

MCP 中的工具允许服务器公开可由客户端调用并由 LLM 用来执行操作的可执行函数。工具的关键方面包括:

  1. 发现 tools/list:客户端可以通过端点列出可用的工具
  2. 调用:使用端点调用工具 tools/call,服务器执行请求的操作并返回结果
  3. 灵活性:工具范围从简单的计算到复杂的 API 交互

与资源一样,工具也由唯一名称标识,并可以包含说明来指导其使用。但是,与资源不同的是,工具表示可以修改状态或与外部系统交互的动态操作。

{
  name: string;          // Unique identifier for the tool
  description?: string;  // Human-readable description
  inputSchema: {         // JSON Schema for the tool's parameters
    type: "object",
    properties: { ... }  // Tool-specific parameters
  }
}

3.4.采样

采样是 MCP 的一项强大功能,允许服务器通过客户端请求 LLM 完成,从而实现复杂的代理行为,同时保持安全性和隐私性。这种人机交互设计确保用户可以控制 LLM 所看到和生成的内容。采样流程遵循以下步骤:

  1. sampling/createMessage 服务器向客户端发送请求。
  2. 客户审核请求并可以修改。
  3. 来自 LLM 的客户样本。
  4. 客户检查完成情况。
  5. 客户端将结果返回给服务器。
{
  messages: [
    {
      role: "user" | "assistant",
      content: {
        type: "text" | "image",
 
        // For text:
        text?: string,
 
 
        // For images:
        data?: string,             // base64 encoded
        mimeType?: string
      }
    }
  ],
  modelPreferences?: {
    hints?: [{
      name?: string                // Suggested model name/family
    }],
    costPriority?: number,         // 0-1, importance of minimizing cost
    speedPriority?: number,        // 0-1, importance of low latency
    intelligencePriority?: number  // 0-1, importance of capabilities
  },
  systemPrompt?: string,
  includeContext?: "none" | "thisServer" | "allServers",
  temperature?: number,
  maxTokens: number,
  stopSequences?: string[],
  metadata?: Record<string, unknown>
}

4.MCP–实战演练

MCP官网:

For Client Developers - Model Context Protocol

4.1.工具调用

MCP工具调用流程如下:

  1. 用户发送问题 ->
  2. LLM 分析可用工具 ->
  3. 客户端通过 MCP 服务器来执行所选工具 ->
  4. 将结果发送回 LLM ->
  5. LLM根据工具返回结果和用户问题进行回答。

(流程有点像检索增强生成,把检索的部分替换成了调用工具)。

通过 mcp 构建一个获取 Path of Exile 2 游戏最新版本的工具

服务端server.py:

1、首先导入对应的 FastMCP 类(使用 字符串自动生成工具定义,从而轻松创建和维护 MCP 工具,这里的效果后面会展示)以及我们需要获取实时信息的网址(这里是 PoE2 的官网)。

from typing import Any
from mcp.server.fastmcp import FastMCP
# Initialize FastMCP server
mcp = FastMCP("Path of Exile 2 hotfix")
target_url = "https://www.pathofexile.com/forum/view-forum/2212"

2、工具的核心功能函数 - 工具helper 函数(实际上这里就是想要实现的功能,下面只是一个简单的爬虫函数用于示例)。

async def poe2_hotfix(url: str):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }
    response = requests.get(url, headers=headers)
    async with httpx.AsyncClient() as client:
        try:
            response = await client.get(url, headers=headers, timeout=30.0)
            soup = BeautifulSoup(response.text, 'html.parser')
            # 查找包含帖子内容的表格
            table = soup.find('table')
            result_text = ""
            if table:
                for row in table.find_all('tr'):
                    cells = row.find_all('td')
                    if cells:
                        for cell in cells:
                            result_text += cell.get_text(strip=True) + '\n'
                        result_text += '-' * 50 + '\n' # 分隔线
            else:
                print('未找到表格元素')
            return result_text
        except Exception:
            return None

3、添加 mcp 类中的工具函数(执行处理程序,负责实际执行每个工具的逻辑),每个工具函数对应一个特定的工具。

@mcp.tool()
async def find_poe2_hotfix() -> str:
    hotfix_data = await poe2_hotfix(target_url)
    if not hotfix_data:
        return "Unable to find any hotfix in office"
    return hotfix_data

4、最后初始化并运行服务器,到这里就可以 server 端的工作就算完成了。

if __name__ == "__main__":    
  # Initialize and run the server 
  mcp.run(transport='stdio')

然后运行:

 mcp dev server.py  

客户端client.py:

需要获取Anthropic.的密钥

基本客户结构

1.首先,让我们设置我们的导入并创建基本的客户端类:

import asyncio
from typing import Optional
from contextlib import AsyncExitStack

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

from anthropic import Anthropic
from dotenv import load_dotenv

load_dotenv()  # load environment variables from .env

class MCPClient:
    def __init__(self):
        # Initialize session and client objects
        self.session: Optional[ClientSession] = None
        self.exit_stack = AsyncExitStack()
        self.anthropic = Anthropic()
    # methods will go here

2.服务器连接管理

接下来,我们将实现连接到MCP服务器的方法:

async def connect_to_server(self, server_script_path: str):
    """Connect to an MCP server

    Args:
        server_script_path: Path to the server script (.py or .js)
    """
    is_python = server_script_path.endswith('.py')
    is_js = server_script_path.endswith('.js')
    if not (is_python or is_js):
        raise ValueError("Server script must be a .py or .js file")

    command = "python" if is_python else "node"
    server_params = StdioServerParameters(
        command=command,
        args=[server_script_path],
        env=None
    )

    stdio_transport = await self.exit_stack.enter_async_context(stdio_client(server_params))
    self.stdio, self.write = stdio_transport
    self.session = await self.exit_stack.enter_async_context(ClientSession(self.stdio, self.write))

    await self.session.initialize()

    # List available tools
    response = await self.session.list_tools()
    tools = response.tools
    print("\nConnected to server with tools:", [tool.name for tool in tools])

3.查询处理逻辑

现在让我们添加处理查询和工具调用的核心功能:

async def process_query(self, query: str) -> str:
    """Process a query using Claude and available tools"""
    messages = [
        {
            "role": "user",
            "content": query
        }
    ]

    response = await self.session.list_tools()
    available_tools = [{
        "name": tool.name,
        "description": tool.description,
        "input_schema": tool.inputSchema
    } for tool in response.tools]

    # Initial Claude API call
    response = self.anthropic.messages.create(
        model="claude-3-5-sonnet-20241022",
        max_tokens=1000,
        messages=messages,
        tools=available_tools
    )

    # Process response and handle tool calls
    final_text = []

    assistant_message_content = []
    for content in response.content:
        if content.type == 'text':
            final_text.append(content.text)
            assistant_message_content.append(content)
        elif content.type == 'tool_use':
            tool_name = content.name
            tool_args = content.input

            # Execute tool call
            result = await self.session.call_tool(tool_name, tool_args)
            final_text.append(f"[Calling tool {tool_name} with args {tool_args}]")

            assistant_message_content.append(content)
            messages.append({
                "role": "assistant",
                "content": assistant_message_content
            })
            messages.append({
                "role": "user",
                "content": [
                    {
                        "type": "tool_result",
                        "tool_use_id": content.id,
                        "content": result.content
                    }
                ]
            })

            # Get next response from Claude
            response = self.anthropic.messages.create(
                model="claude-3-5-sonnet-20241022",
                max_tokens=1000,
                messages=messages,
                tools=available_tools
            )

            final_text.append(response.content[0].text)

    return "\n".join(final_text)

4.交互式聊天界面

现在我们将添加聊天循环和清理功能:

async def chat_loop(self):
    """Run an interactive chat loop"""
    print("\nMCP Client Started!")
    print("Type your queries or 'quit' to exit.")

    while True:
        try:
            query = input("\nQuery: ").strip()

            if query.lower() == 'quit':
                break

            response = await self.process_query(query)
            print("\n" + response)

        except Exception as e:
            print(f"\nError: {str(e)}")

async def cleanup(self):
    """Clean up resources"""
    await self.exit_stack.aclose()

5.主入口点

最后,我们将添加主要的执行逻辑:

async def main():
    if len(sys.argv) < 2:
        print("Usage: python client.py <path_to_server_script>")
        sys.exit(1)

    client = MCPClient()
    try:
        await client.connect_to_server(sys.argv[1])
        await client.chat_loop()
    finally:
        await client.cleanup()

if __name__ == "__main__":
    import sys
    asyncio.run(main())

uv run client.py server.py 

  • 询问你是谁的问题时,LLM 会根据工具开头 FastMCP 类的输入分析并回答。

  • 可以看到当询问最新补丁时可以准确回答 PoE2 的最新补丁版本以及时间。

优化 prompt 以及添加更多工具来实现更复杂的功能,比如使用更优的爬虫工具,以及通过深度爬虫爬取对应补丁的帖子,这样在回答的最新补丁版本号的同时返回具体内容。

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

四、大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

MCP圣经:从入门到精通,从精通到放弃,理论 + 实践吃透 大火的 MCP 协议 阅读详情

相关推荐

大模型应用实战:深入理解模型上下文协议 MCP

正如 USB-C 提供了一种将计算机连接到各种外设的标准化方式一样,MCP 提供了一种 AI 应用连接到不同的数据源和工具的方式。将分散的工具链整合为可规模化的生态系统,MCP或将成为AI时代的“水电煤”,成为智能社会的基础设施之一。目前,MCP生态正处于“协议红利期”,早期参与者可以通过定义接口标准、积累AI工具资产以及构建聚合平台形成结构性优势。

AaronZZH 的博客 2088

一文带你入门 MCP(模型上下文协议)

Model Context Protocol (MCP) 是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善 chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LLM 与它们所需的上下文连接起来。目前,MCP 已经积累了足够的临界规模和动能,因此它被视为 2023-2025 年“代理开放标准”之争的潜在赢家。

kuokay的博客 3万+

MCP保姆级详解和实战案例(附完整代码)

Function Call是大模型基于意图识别触发预设函数的机制,其本质是模型与外部工具的“点对点”交互。平台依赖性强:对于不同大模型(如GPT、Claude),Function Call的实现差异显著,开发者需要为每个大模型编写适配的相关代码。扩展性不足:新增工具需调整模型接口或重新训练,难以支持复杂多轮任务。从模型调用工具的流程来看,MCP 跟 Function Call 是调用链上的两个环节。

人不风流枉少年 2657

一文带你了解MCP概念、核心架构、工作原理及应用场景

MCP(Model Context Protocol)是由Anthropic推出的开放标准协议,旨在解决AI模型因数据孤岛限制而无法充分发挥潜力的问题。该协议采用C/S架构,包含主机、客户端和服务端三个核心组件,通过JSON-RPC 2.0实现标准化通信。MCP的主要功能包括:统一通信标准、资源共享与工具调用、会话管理、安全保障、AI智能体扩展、提示词工作流管理等。其创新性的采样功能允许服务端反向调用客户端生成AI内容,同时确保用户审核机制。

一名80后IT人的成长记录,记录自己在工作、学习中的点点滴滴,在成长的喜悦与忧心的故事里,铭记反脆弱的勇气。 2万+

AI Agent再进一步!Anthropic发布大模型上下文协议MCP:让任何资源快速变成大模型的工具,突破大模型的能力边界!

大模型上下文协议的英文全称是Model Context Protocol,缩写为MCP,这是由Anthropic(对,就是那个Claude模型背后的企业,这个企业的介绍参考:https://www.datalearner.com/ai-organizations/anthropic )发布的大模型连接资源的协议,一个开放的连接标准,旨在简化AI工具与数据资源的对接方式,助力构建真正的上下文感知型AI系统。

具身机器人和通用AI 1880

【虚拟化生态平台】虚拟化平台esxi挂载USB硬盘

虚拟化平台安装好之后,一般情况下,只有一个硬盘在工作,其他的外接硬盘(我的只有一个ssd硬盘,其他的均是usb外接,SATA接口的硬盘是否这样我暂时不清楚哈)没有在工作,但是一个硬盘明显不够我们使用的,所以我们需要去挂载外接的硬盘来扩容。...

Rubik Blog 4835

大模型-MCP协议详解:零基础入门到精通,收藏这篇就够了(TaoToken 统一 Key 接入版)

用 FastMCP 写一个 get_server_time 工具,配合 TaoToken 统一 Key 通道跑通 MCP 工具调用闭环。本文详解大模型 MCP 协议三大角色、四大原语,给出可复制的 Server 与 Client 代码、Claude Desktop 配置及 401、proxy failed 等报错排查表。官网:https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_42609225的博客 31

从零完成 STM32 + ESP-01S + 云服务器 TCP 通信测试

STM32 通过 USART3 控制 ESP-01S 接入手机 2.4 GHz 热点,随后连接公网云服务器 8.152.204.86:9002。云端在同一 TCP 连接中连续收到 seq=1~6 的测试报文,5 个发送间隔平均约 5.4 秒,说明本次 TCP 上行链路已经打通。

weixin_51387720的博客 317

java 使用 spring AI 实战MCP_springai mcp,零基础入门到精通,收藏这篇就够了

最近在腾讯云edgeone的直播中了解到了MCP,随着了解发现MCP确实是一个未来发展的趋势:全称 Model Context Protocol 是一种专为人工智能模型设计的通信协议,于2024年11月由Anthropic推出的开放标准。它旨在解决复杂AI系统中多个模型或组件之间的协同、状态管理和资源优化问题,以及AI应用与外部数据源和工具集成中的挑战。MCP 是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式。

leah126的博客 1840

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例)

本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。

weixin_26804345的博客 416

EtherCAT应用层协议选型指南:CoE、SoE、EoE、FoE、AoE到底怎么选?看完这篇就懂了

本文深入解析EtherCAT应用层协议(CoE、SoE、EoE、FoE、AoE)的选型策略,从实时性、数据吞吐量和功能完整性三大核心指标出发,提供工业场景下的实战决策框架。通过技术特性对比、混合协议架构设计和常见故障规避指南,帮助工程师优化自动化设备通信性能。

weixin_28718793的博客 495

一文解读小白怎么快速搭建一个基于MCP协议的AI agent应用,大模型入门到精通,收藏这篇就足够了!

最近主导了一款ai agent系统的开发,在定架构的时候选择了MCP协议,在期间遇到不少坑点,记录顺分享一下相关内容。

DEVELOPERAA的博客 1819

PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)

本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。

weixin_42535720的博客 186

大模型 | 一文搞懂MCP(模型上下文协议)零基础入门到精通,收藏这篇就够了

MCP旨在解决大模型在处理长对话、多轮交互时面临的上下文长度限制导致的信息丢失问题。MCP采用分层注意力机制,包括局部注意力处理当前窗口交互,全局注意力存储长期关键信息,并通过上下文压缩自动生成语义摘要和构建实体-关系图谱来结构化存储对话内容。

Python_0011的博客 1036

2026年7月19日 从可插拔到共封装:技术路线研究报告

AI 算力的爆发正在重写数据中心光互连的技术路线。本报告对当前并存的四代光互连架构——

weixin_51184047的博客 596

Python爬虫实战:构建药监局药品批准信息本地查询系统

在医药信息化时代,药品批准信息的快速查询对于医药从业者、研究人员和普通消费者都具有重要意义。国家药品监督管理局(NMPA)提供了官方的药品查询系统,但有时我们需要建立本地数据库以便批量分析或离线查询。本文将详细介绍如何使用Python爬虫技术,结合最新的异步爬虫框架和技术栈,构建一个完整的药监局药品信息本地查询系统。本系统将实现以下功能:自动化爬取药监局官网的药品批准信息数据清洗和结构化存储建立本地查询接口数据定期更新机制pythonimport os"""药品类型枚举"""

2201_76125261的博客 729

MCP从理解到实现,从零基础到精通,收藏这篇就够了!

Model Context Protocol (MCP)是Anthropic在2024年推出的开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信。它解决了AI模型因数据孤岛限制而无法充分发挥潜力的问题,使AI应用能够访问和操作本地及远程数据。MCP 是让不同 AI 模型和外部工具通过统一接口协作的通信协议,类似给所有设备统一用USB-C 接口。

leah126的博客 1162

Go基础:一文掌握Go语言网络编程

Go语言凭借强大的标准库和原生并发支持,非常适合网络编程开发。文章介绍了Go语言在网络编程中的核心概念和应用场景,包括TCP、UDP和HTTP等协议的具体实现方法。主要内容包括:1)网络编程核心概念(Listener、Conn、Addr等);2)TCP服务器/客户端的实现流程与示例代码;3)UDP无连接通信的实现方式;4)利用net/http包构建HTTP服务。文章通过详细的代码示例展示了如何利用Go的Goroutine和Channel特性高效处理网络连接,并强调了连接管理的最佳实践。

数据知道的博客 5515

大模型MCP开发框架对比与选型,收藏这篇就够了!

文章介绍了模型上下文协议(MCP)作为大语言模型与外部工具、服务之间的标准化桥梁。梳理了Python、Java、Go生态中的主流MCP开发框架,包括FastMCP、FastAPI-MCP、ArchGuide MCP Server、Spring AI MCP Server、SolonMCP等,详细分析了各框架的简介、优势与适用场景,为开发者提供了基于项目需求的框架选型建议。

Trb201013的博客 1748

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

MCP协议入门到精通:大模型Agent开发必备指南,建议马上收藏!

MCP(Model Context Protocol)是Anthropic推出的模型上下文协议,解决大模型调用外部工具的痛点。它定义统一的客户端-服务器规范,降低Agent开发门槛。文章详细介绍了使用uv工具搭建MCP客户端,接入在线/本地模型,并实战开发天气查询服务器。MCP生态丰富,支持多语言SDK,使Agent开发从高端黑科技变为人人可上手的技能,显著提升开发效率。

Android_XG的博客 1317

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

全网最全!从Function Calling到MCP,AI大模型入门到精通,看这篇就够了!

“为了让大模型输出超出其范围的或者特定的知识,人们发明了多种方法。从提示工程到RAG,从Function Calling到MCP,莫不如是。**”**

xx_nm98的博客 1117

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

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

【万字长文】LLM大模型技术原理深度解析,零基础入门到精通,收藏这篇就够了

本文尽量用最简单的方式, 帮读者理解 LLM, Transformer, Prompt, Function calling, MCP, Agent, A2A 等这些基本概念. 表述时不追求绝对准确, 尽量通俗易懂. 部分内容有个人理解的成份, 内容难免疏漏, 欢迎指正.

优快云_430422的博客 838

Dify MCP 保姆级教程来了!大模型入门到精通,收藏这篇就足够了!

大语言模型,例如 DeepSeek,如果不能联网、不能操作外部工具,只能是聊天机器人。除了聊天没什么可做的。

Y525698136的博客 1239

实操干货!MCP全解析,一步步教你借助第三方MCP Server开发Agent,大模型入门到精通,收藏这篇就足够了!

今天为带大家带来深度的MCP解析与实操应用指南,相信看完这篇你应该可以立刻上手MCP。

Y525698136的博客 1065
上一篇: 大模型 | 一文搞懂MCP(模型上下文协议)零基础入门到精通,收藏这篇就够了
下一篇: 2025年的风口!| 万字长文,带你纵观大模型Agent,涉及研究痛点、应用场景、发展方向
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值