什么是MCP?本地如何开发MCP Server

基于windows的MCP+Cherry Studio+本地应用的MCP Server开发成功经验分享 本文分享了在Windows 10环境下,基于华为笔记本D14(i5-12450,16G内存)成功搭建MCP+Cherry Studio+本地应用开发环境的经验。首先安装基础环境及配置清华镜像源以加速依赖包的下载。接着,安装并配置Java JDK,确保环境变量正确设置。随后,使用uv工具初始化MCP项目,并安装相关依赖。最后,通过nvm或fnm安装Node.js环境,并配置npm镜像源。整个过程详细记录了每一步的操作命令和验证方法,确保开发环境的顺利搭建。 阅读详情
AI摘要

本文介绍了MCP(Model Context Protocol),它是Anthropic推出的开放标准,旨在统一大模型与外部数据源和工具的通信协议。MCP解决了Function Calling缺乏统一规范的问题。还详细阐述了本地使用Python SDK开发MCP Server的过程,包括SDK安装、Server开发和测试,增强了智能体的交互性和可扩展性。

前言

MCP(Model Context Protocol)全称模型上下文协议,是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。

AI工具会朝着两个方向发展:

  1. 掌握更多的信息
  2. 控制更多的工具

在没有联网搜索之前,大模型的数据来源只有训练数据的时候以及推理我们告诉他的东西。所以后来的rag、知识库都是让AI掌握更多的信息,而MCP的出现是为了让大模型控制更多的工具,赋予更多能力。

MCP

在 MCP 出现之前,如果大模型需要访问外部数据的时候了,通常使用 Function Calling 的方式。Function Calling 是通过给模型预设函数描述(包括函数名、参数说明、返回值格式等),让模型在合适的时候返回一个符合结构的 JSON 格式,外部系统再解析这个 JSON,调用实际的后端函数。

但 Function Calling 的方式没有一个统一的开发规范,你开发的函数我不能用,我开发的函数你不能用,而且开发起来很麻烦,为了解决这个问题,MCP 出现了。

MCP就是AI大模型的标准化工具箱,大模型可以通过MCP调用外界的AI工具,而AI工具在开发的时候也需要遵循MCP协议。MCP 允许应用程序以标准化方式为 LLM 提供上下文,将提供上下文的问题与实际的 LLM 交互分开

我们本地的数据,例如数据库、github上的代码,需要粘贴给AI工具的对话框中,他们获取到这样的数据。有了MCP之后,可以开发一个 MCP Server 来完成某个特定的功能,例如读取数据库,操作github以及获取当前时间等。

既然 MCP Server 实现了对外部服务端的调用,那么AI工具就要实现 MCP Client 去调用server,将server实现的工具接入进来。目前支持 MCP Client 的AI工具有 cursor、cline、windsuf等。

MCP 服务器可以提供三种主要类型的功能:

  1. 资源:客户端可以读取的类似文件的数据(例如 API 响应或文件内容)
  2. 工具:可由 LLM 调用的函数
  3. 提示:预先编写的模板,帮助用户完成特定任务

目前在网上已经可以找到各种功能的 MCP server。

MCP server 开发

那么,在本地中如何调用MCP,mcp提供了python、java、typescript的SDK,这里我使用 Python 的SDK。Python SDK 实现了完整的 MCP 规范,可轻松实现以下功能:

  1. 构建可连接到任何 MCP Server 的 MCP Client
  2. 创建公开资源、提示和工具的 MCP Server
  3. 使用 stdio 和 SSE 等标准传输
  4. 处理所有 MCP 协议消息和生命周期事件

1. SDK 安装

这里安装 uv 来管理项目。

curl -LsSf https://astral.sh/uv/install.sh | sh

按照提示,将 $HOME/.local/bin 目录下的 uv、uvx 命令添加到 PATH 中。并使用uv来创建一个新的项目。

# 创建新的项目
uv init mcp-demo
cd mcp-demo

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate

# 安装依赖
uv add "mcp[cli]" 

这样一个uv管理的python mcp项目就初始化完成了。当然也可以使用pip来安装mcp的python sdk:

pip  install "mcp[cli]" 

安装过程中可能会出现包冲突的问题,我这里fastapi和sse-starlette依赖了不同版本的starlette,最后直接将冲突包升级到最新,解决了这个问题。

pip install --upgrade fastapi sse-starlette starlette

这样就完成了python开发MCP Server的SDK安装。

2. MCP Server 开发

这样就开始进行 MCP Server 的开发,通过一段时间学习,我发现* MCP Server 其实就是定义一些函数,让智能体调用*。在函数中可以实现简单逻辑、接口调用和各种操作,并通过注解赋予函数不同的能力。

我们定一个 server.py 文件,并开发一个简单的 MCP Server:

from mcp.server.fastmcp import FastMCP

# 创建 MCP 实例
mcp = FastMCP("Demo")

# 示例工具
@mcp.tool()
def add(a: int, b: int) -> int:
    return a + b

# 示例资源
@mcp.resource("greeting://{name}")
def greet(name: str) -> str:
    return f"Hello, {name}!"

# 启动服务
if __name__ == "__main__":
    print("Starting MCP server...")
    mcp.run()

分析上面代码,使用 FastMCP 来初始化一个 MCP Server 实例。我们分别创建了两个函数:

  1. add:输入两个数字实现累加
  2. greet:输入字符串,拼接后返回字符串

然后我们通过两个注解,赋予两个函数不同的能力:

  1. @tool() :函数可以直接被AI调用
  2. @resource() :像API接口一样被调用,其中的参数 greeting://{name} 是一个自定义的 URI, 可以拆解为两个部分。greeting 是前缀,随便起的,name是动态参数的名称,在访问的时候需要传入。

想要理解这两个注解的具体用法,可以接着往下看。

3. 测试

我们执行下面命令:

mcp dev server.py

安装并启动 MCP Inspector 对 server.py 中的 mcp server 进行调试。

在浏览器中访问 6274 端口就可以访问到 MCP Inspector。我们定义了mcp的tool和resource两种能力,在 MCP Inspector 中分别进行测试。

在 Tools 标签页下,我们可以看到我们定义的 add 累加函数。输入 a、b 两个参数,即可返回结果。

在 Resources 标签页下,可以看到我们定义的资源函数 greet。

我们传入动态参数,mcp server 就会返回 json 格式的响应,并将我们输入的 aqi 拼接后返回。

结语

在本篇文章中,基于 Python 完成了一个简单的 MCP Server 的开发。MCP 让大模型能像调用 API 一样调用函数(tool)和资源(resource),实现更强的插件化和上下文理解能力,增强智能体的交互性和可扩展性。

Windows下用Cherry Studio玩转MCP Server:从环境配置到本地AI工具开发实战 本文详细介绍了在Windows系统下,如何利用Cherry Studio本地AI客户端和MCP协议,从零开始搭建并开发本地MCP Server。内容涵盖Python与Node.js环境配置、Cherry Studio安装、基础MCP工具开发,并深入实战构建文件管理系统与智能开发助手,帮助开发者将大语言模型能力无缝集成至日常工作流,实现AI对本地文件、代码库等资源的智能操作与管理。 阅读详情

相关推荐

【人工智能时代】-什么是MCP?本地如何开发MCP Server

MCP(Model Context Protocol)全称模型上下文协议,是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。掌握更多的信息控制更多的工具在没有联网搜索之前,大模型的数据来源只有训练数据的时候以及推理我们告诉他的东西。所以后来的rag、知识库都是让AI掌握更多的信息,而MCP的出现是为了让大模型控制更多的工具,赋予更多能力。在本篇文章中,基于 Python 完成了一个简单的 MCP Server 的开发。

xiaoli8748的专栏 1991

从零开始:如何开发一个MCP Server

手把手教你如何使用Cursor工具快速、高效开发一个天气 MCP Server 服务,并集成到Cursor中使用

艾克斯 3551

LLM的MCP协议:初识MCP,搭建第一个MCP Server

MCP(Model Context Protocol),是一个开发的协议,标准化了应用程序如何为大模型提供上下文。MCP提供了一个标准的为LLM提供数据、工具的方式,使用MCP会更容易的构建Agent或者是基于LLM的复杂工作流。

Criss@陈磊 2万+

如何开发一个MCP Server

之前的一篇文章介绍了如何安装cline 来使用应用市场已经安装好的MCP Server ,官网的介绍MCP Server 其实可以使用nodejs 或者python 来编写,最近看到有个spingAIMCP 的开源项目也可以用来写MCP Server ,那么可以三种方式都来实践一下,深入了解一下MCP Server 的底层原理。官方sdk :还是支持了很多种语言的~

fengruxue的专栏 2434

MCP Server开发的入门教程(python和pip)

使用python技术栈开发的简单mcp server。

Criss@陈磊 1万+

Cisco思科 电子科技大学计算机网络 SRWE 期末技能考试 (PTSA)

电子科技大学2024春_SRWE_计算机网络系统 SRWE 期末技能考试 (PTSA)

2301_76745065的博客 5094

十分钟从零开始开发一个自己的MCP server(一)

LLM的热情不断高涨,不同行业、不同应用领域都在积极尝试使用大语言模型的能力解决各自的问题,取得了惊人的效果。于是,自然而然地,我们就可以想到让大语言模型应用程序自己用大语言模型生成的sql语句去查询数据库,自动编译执行模型生成的的代码,这样就形成一个自动闭环,无需人的参与(或许有的场景需要人的监督和决策,然后人工触发自动执行,但也只需要下发一个执行的指令即可)。但是,不同的功能、不同的厂商各自独立定义自己的函数接口,这样函数接口的形式五花八门,不便于应用程序的集成,非常不利于大模型应用生态的发展。

Q2024107的博客 2450

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7936

基于Spring AI开发本地Jenkins MCP Server服务

MCP是由开发了模型的,它是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LLM 与它们所需的上下文连接起来。

非专业Bug开发工程师的博客 1882

Spring AI Alibaba Skill 实战:定义、注册与渐进式披露的企业级落地

摘要:很多团队在接入大模型时,第一步做到的是“能对话”,第二步遇到的瓶颈却是“不能可靠执行”。Skill 的本质不是给模型多几个函数,而是把企业系统中的可控能力,以可治理、可审计、可扩展的方式交给 Agent。本文围绕 Spring AI Alibaba Skill 的定义、注册与渐进式披露,结合电商客服与售后场景,系统讲清楚其底层原理、架构设计、生产级实现、高并发治理与工程实践。@Component@Tool(description = "根据订单号查询订单状态、支付状态和物流状态")扫描包含。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 623

本地开发MCP Server+Cline配置使用

其中 MCP 的传输层支持了 2 种协议的实现:stdio(标准输入/输出)和 SSE(服务器发送事件),因为 stdio 更为常用,所以本文会以 stdio 为例。) 虽然提供了 uv 和pip这个包管理工具安装sdk,经过对比还是安装uv更方便些,使用uv启动MCP server会更加的容易。因此需要先安装uv。

星痕の博客 1万+

告别QQ截图!用C# Winform + 百度AI,自己动手做一个免费的文字提取小工具

本文详细介绍了如何利用C# Winform和百度AI OCR接口开发一款免费的文字提取工具,替代QQ截图功能。通过智能截图模块、OCR服务集成和主界面功能整合,实现高效准确的文字识别,适用于日常办公和学习场景。工具支持图像预处理、异步处理和错误日志记录,提升用户体验和识别准确率。

weixin_30566063的博客 380

本地MCP-开发步骤,需要MCP-Client和MCP-Server,以及MCP的优点

MCP是一个CS的架构,所以先从本地端的MCP实现。

qq_61723836的博客 920

工程创新训练大赛智能网联车辆赛道LKA+自动驾驶9000+分数分案例

/获取主车在主车路径上的ST坐标。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。

handsomeboyou的博客 1133

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现(完结,附带项目源码)

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4653

Windows环境下MCP Server与Cherry Studio的本地AI开发实战指南

本文详细介绍了在Windows系统上搭建MCP Server本地AI开发环境并与Cherry Studio集成的完整实战指南。内容涵盖Python、Node.js及uv工具链的配置,通过开发时间查询和文件管理等实用MCP Server示例,演示了如何创建、连接并测试工具,最终实现AI调用本地功能,为Windows用户提供了清晰的本地AI应用开发路径。

weixin_29239279的博客 349

uniapp:在map地图组件上添加控件,在地图上添加浮层展示自定义按钮或元素,uniApp如何在Map组件地图上添加悬浮在上面的图标/图片(全平台兼容安卓苹果app、H5网页、微信小程序、nvue)

uni-app的map添加控件问题,uniapp实现地图展示控件,uniapp小程序如何在map组件上增加按钮,uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,Uniapp腾讯地图添加控件,uniapp百度地图添加控件,地图上展示控件并可以点击,在地图上展示控件信息,uniapp map地图怎么向地图上增加工具栏,使用cover-view将控件在地图上展示,解决uniapp map上添加浮层无法显示问题,不显示怎么办,css样式不生效,地图等最高层

✅ 精选推荐文章 3230

Firecrawl MCP Server 部署指南:从本地开发到云服务的完整流程

Firecrawl MCP Server 是一个强大的网页抓取工具,为 Cursor、Claude 和其他 LLM 客户端提供完整的网页内容提取能力。这个终极指南将带你完成从本地开发环境到云服务部署的全流程配置。🚀 ## 🔥 快速开始:一键安装步骤 Firecrawl MCP Server 提供多种安装方式,让用户可以根据自己的需求选择最适合的方案。 ### 使用 NPX 快速启动 这

gitblog_00441的博客 1100

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

browser-use-mcp-server开发者指南:本地开发与测试的最佳实践

browser-use-mcp-server是一款强大的MCP服务器,它能让AI代理通过[browser-use](https://github.com/browser-use/browser-use)控制网页浏览器,为开发者提供了便捷的浏览器自动化解决方案。本指南将详细介绍如何在本地环境搭建、开发和测试browser-use-mcp-server,帮助开发者快速掌握最佳实践。 ## 准备工作:

gitblog_00682的博客 398

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

什么是MCP?本地如何开发MCP Server:从零搭建Python SDK骨架与TaoToken配置

用 Python SDK 从零搭建 MCP Server 骨架:uv 初始化项目、安装 mcp[cli]、用 FastMCP 定义 Tool 与 Resource,再写 config.toml 对接 TaoToken 统一通道,最后用 mcp dev 调试并验证请求。全程可复制,跟着敲即可跑通本地 MCP 开发流程。官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_27645199的博客 18

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

手把手教你开发自己的本地 MCP Server

在 MCP 出现之前,每个 AI 应用都有一套自己的工具调用方式,互不兼容。MCP 就像 AI 世界的 USB 接口标准——只要遵循协议,任何工具都可以被任何支持 MCP 的 AI 客户端调用。:AI 客户端(如 Claude Code)将 MCP Server 作为子进程拉起,通过标准输入输出通信,天然安全,无需开放任何端口。我们介绍了如何创建一个HTTP协议通讯的服务端的mcpserver.重启 Claude Code 后,AI 就能自动发现并调用。协议,每条消息一行 JSON,换行符分隔。

技术原始积累 582

【注意避坑】基于Spring AI 开发本地天气 mcp server,通义灵码测试MCP server连接不稳定,cherry studio连接报错

【注意避坑】基于Spring AI 开发本地天气 mcp server,通义灵码测试MCP server连接不稳定,cherry studio连接报错

siaok的博客 1335

如何用 uv 搭建 Python MCP Server 的本地开发环境(uv sync、pytest、pyright、ruff)

本仓库(servers)是 Model Context Protocol 的参考实现集合,其中 3 个 Python 服务器位于 `src/fetch`、`src/git`、`src/time`,对应发布包 `mcp-server-fetch`、`mcp-server-git`、`mcp-server-time`。如果你要在本地运行、测试或二次开发这些 Python MCP Server,需要按仓

gitblog_00075的博客 781

本地MCP开发步骤拆解:从MCP-Client到MCP-Server,TaoToken统一Key打通全链路

本地MCP开发从MCP-Server暴露工具到MCP-Client连接调用,用TaoToken统一Key打通模型链路。本文给出可复制的pom、YAML与Java配置,并排查401、local proxy failed等常见报错。详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_42602368的博客 12

【案例共创】基于华为开发者空间构建本地MCP Server + DeepSeek + Cherry Studio实现股市分析助手

本文介绍了一个基于华为开发者空间构建的股市分析助手案例。通过部署本地MCP Server服务,结合华为云MaaS提供的DeepSeek-R1大模型和Cherry Studio工具,实现股票信息获取与分析功能。案例详细展示了从环境配置到系统搭建的全流程,包括开发者空间云主机的使用、MCP Server部署、以及各组件间的连接方法。该方案利用标准化协议为AI模型提供数据接口,帮助投资者快速获取市场信息并作出决策。案例面向企业、开发者和高校学生,全程预计60分钟,使用华为免费资源即可完成搭建。

华为云官方博客 2101
上一篇: BuildAdmin12:逆向操作!!! 子组件调用父组件方法实现弹出框
下一篇: 自定义 MCP Server,在 cursor 中连接本地 MySQL 实现了统计分析
叫我阿柒啊
博客等级 码龄9年 2433粉丝 2369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值