MCP初入门

最近MCP很火,大概了解了一下,Model Context Protocol, 模型上下文协议,可以理解为大模型间的连接器,保证大模型工具间的连接。详细文字说明自行google,在此不多文字赘述。

所有内容是根据自己理解打出来,不是copy的,如果有认识和理解上的不一致,请指出,一块探讨,共同进步。

下面记录一下最简单的一个DEMO流程:搭建MCP服务器,以及如何从前端调用MCP提供的服务。

总体来讲,一个完整的Agent系统包含3部分:(1)前端与客户的交互;(2)大模型部分:将客户文本解析,抽取出需要调用的功能;(3)MCP Server: 告诉大模型这些功能去哪里调用。下面分开来说

1. 搭建自己本地的一个MCP Server

MCP Server支持TypeScript 和 Python . 我用python较多,所以选择了 python的SDK。

(1) 创建mcp虚拟环境

mcp server 最好python > 3.12 

conda create --name mcp python=3.12

conda activate mcp

(2) 安装uv

首先需要安装uv,用来管理python项目 pip install uv 

安装完成后查看是否安装成功

uv -version

(mcp) D:\mydocs\git_src\mcp_python-sdk>uv --version
uv 0.8.14 (af856fb88 2025-08-28)

(3) MCP Service

MCP Service包括几个部分:Resource / Tools / Prompts /  .... 

可以通过一个example 查看:uv run mcp dev examples/fastmcp/screenshot.py

在下面的例子中,有加法工具,乘法工具,其中注释是告诉大模型这个方法是做什么有什么功能,供大模型自动调用

from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")


# Add an addition tool
@mcp.tool()
def sum(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

@mcp.tool()
def multiple(a:int, b:int)->int:
    '''test multiple function'''
    return a*b

@mcp.tool()
def echo(content: str)->str:
    """this is echo"""
    return content

@mcp.resource("echo://{text}")
def echo_resource(text):
    return f"echo: {text}"

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

@mcp.resource("dir://desktop")
def list_desktop():
    from pathlib import Path

    dir = Path.home() / "Desktop"
    return [str(f) for f in dir.iterdir()]


if __name__=="__main__":
    print('start mcp server stdio')
    mcp.run(transport="stdio")

2、前端配置MCP Server

前端使用cherry studio , 可以从 Cherry Studio 官方网站 - 全能的 AI 助手

安装后界面如下:点击右上角设置,配置MCP Server

2.1 添加MCP Server

点击保存后MCPServer会出现在前一页中,点击绿色运行小图标

2.2 添加 大模型 

Gemini免费,我们使用Gemini ,其中API Key 需要从后再申请API key 。 

https://aistudio.google.com/apikey

这里申请APIkey , 前提需要google cloud注册项目,如果没有项目,会有提示,根据提示可以到google cloud 注册项目。这是我注册完后的样子

这是申请API 后的样子

将API Key 复制到 大模型的API Key中即可。点击检测 ,上面出现连接成功则表示大模型接口配置成功:

3. 进行Agent对话 验证MCP Server功能启动

进入首页,使用默认小助手选择大模型,进行对话如下

可以看出 大模型调用了MCP Server的加法程序

至此整个Agent流程跑通, 

### MCP入门教程基础使用指南 #### 什么是MCPMCP通常指的是Microchip Technology公司生产的多个系列芯片,例如MCP2515是一种独立的CAN控制器,支持CAN协议版本2.0A和2.0B主动模式。它通过SPI接口与微处理器通信,广泛应用于汽车电子和其他工业领域中的数据传输场景[^1]。 #### 如何开始使用MCP2515? 要开始使用MCP2515 CAN控制器,可以按照以下方式准备环境并实现基本功能: ##### 软件安装 对于Arduino平台上的开发,推荐使用`arduino-mcp2515`库来简化操作流程。该库提供了封装好的API函数用于始化、发送以及接收CAN消息帧。具体步骤如下: - **下载库文件**:访问项目地址 [https://gitcode.com/gh_mirrors/ar/arduino-mcp2515](https://gitcode.com/gh_mirrors/ar/arduino-mcp2515),克隆仓库或者直接下载ZIP压缩包。 - **导入到IDE**:解压后,在Arduino IDE中依次点击 `Sketch -> Include Library -> Add .ZIP Library...` 将其加载至工作环境中。 ##### 硬件连接 硬件部分需要将MCP2515模块正确接入单片机板子上。一般情况下会涉及以下几个引脚映射关系(假设采用标准SPI总线): | 功能 | 描述 | |------|-------------------------| | MOSI | 主设备输出从设备输入 | | MISO | 主设备输入从设备输出 | | SCK | 同步时钟信号 | | CS | 片选信号 | 以下是典型的接线实例代码片段展示如何设置参数并与物理层交互: ```cpp #include <SPI.h> #include <mcp_can.h> // 定义CS针脚编号 const int SPI_CS_PIN = 10; void setup() { Serial.begin(115200); while (!Serial); // 等待串口打开 if (CAN_OK != Can0.begin(CAN_500KBPS, SPI_CS_PIN)) { Serial.println("Can't init CAN shield!"); while (1); } } void loop() { unsigned char len = 0; unsigned char buf[8]; if (Can0.readMsgBuf(&len, buf) == CAN_MSGAVAIL){ for(int i=0;i<len;i++) { Serial.print(buf[i], HEX); Serial.print("\t"); } Serial.println(); } } ``` 上述程序实现了简单的读取消息逻辑,并打印出来自网络的数据流内容。 #### 关于其他类型的MCP应用 除了专门针对CAN通讯设计的产品外,“Master Control Program(MCP)”也可能指代某些分布式计算框架下的管理节点角色定义。比如YaCy搜索引擎网格系统里的核心组件之一就是名为Grid Master Connect Program的服务进程;当部署完毕之后能够经由指定端口号暴露RESTful API供外部用查询状态信息等服务[^2]。 另外还有像RockChip RK3568 SoC这类ARM架构SoCs内部集成了丰富的外设资源选项可供开发者自由组合发挥创意构建各类解决方案的时候也会涉及到对特定外围器件的支持情况说明文档解读过程——即所谓的驱动开发环节[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值