【MCP】创建第1个MCP服务器(数字比大小)

1、概述

在qwen2.5:0.5b这种小规格的模型中,数字之间比大小是一个难题,经常出现9.11和9.8比不清楚的问题,如下
[图片]

这时候,我们可以人为的给这个模型引入一个MCP工具,专门用来进行数字之间的比较。

2、服务端搭建

客户端配置及环境安装请参考文章:
【MCP】客户端配置(ollama安装、qwen2.5:0.5b模型安装、cherry-studio安装配置)
【MCP】服务端搭建(python和uv环境搭建、nodejs安装、pycharma安装)

(1)初始化应用

在非中文路径下,创建一个文件夹,例如“MCP”用来存储源码,文件夹名字只要不是中文就行
然后打开刚刚新建的文件夹
[图片]

[图片]

默认会创建一个main.py没啥用,删掉即可
[图片]

打开终端
[图片]

输入

 uv init compare

compare就是默认创建的应用文件夹
[图片]

进入compare文件夹并执行初始化

cd compare
uv sync

[图片]

安装mcp库

uv add mcp[cli] --default-index https://pypi.tuna.tsinghua.edu.cn/simple

[图片]

安装好的库都在.venv文件夹内
[图片]

将.venv添加为项目的虚拟环境
[图片]

[图片]

选择现有的环境,python路径指定为.venv文件夹中的Scripts目录下的python.exe
[图片]

[图片]

(2)编写MCP服务端代码

双击main.py把里面的内容清空
[图片]

输入以下代码

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("compare")

@mcp.tool()
def compare(a: float, b: float)->str:
    """compare two numbers"""
    if a-b > 0:
        return f"正确答案:{a}>{b}"
    else:
        return f"正确答案:{b}>{a}"

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

完毕后右键执行一下看看会不会报错
[图片]

运行窗口卡在这个页面,代表没问题,只要是不报错就行
[图片]

然后就可以点击停止按钮退出程序了
[图片]

前面是运行环境,后面是运行的脚本,脚本的路径保存好,一会会用到
[图片]

3、客户端配置

客户端配置及环境安装请参考文章:【MCP】客户端配置(ollama安装、qwen2.5:0.5b模型安装、cherry-studio安装配置)

(1)配置MCP客户端

配置之前,先测试一下比大小的能力,我们输入问题“数字9.11和数字9.8哪个大”,发现效果很差
[图片]

下面开始配置,点击左下角齿轮,进入配置界面
[图片]

选择ollama,配置qwen2.5模型
[图片]

点击“更多设置”,勾选“工具”
[图片]

保存后,就会在右侧显示一个小扳手图标,代表可以调用MCP工具
[图片]

选择左侧的MCP服务器,点击“添加服务器”
[图片]

配置一下MCP服务,名称可以起一个compare,方便查看。参数如下。

--directory
C:\Users\stone\Desktop\UV\mcp-compare
run
main.py

第2行的文件路径需要跟据main.py所在路径自行配置
[图片]

配置完后,点击右上角“保存”按钮。如果配置没问题,compare工具会自动打开,并且显示“服务器更新成功”字样
[图片]

(2)聊天测试

返回刚刚的聊天界面,下面就出现了一个cmd的图标,这个就是调用MCP工具的图标
[图片]

然后选择compare工具
[图片]

图标变绿代表已经加载了MCP工具
[图片]

我们新建一个话题,问他“请比较数字9.11和9.8哪个大”
[图片]

这里要注意,问题里一定要表达出“请比较”或相似的话术,模型才会自动根据意思调用compare工具
[图片]

我们可以看到,模型成功调用了MCP工具compare,并且实现了比大小的功能

### 如何配置MCP服务器及其最佳实践 配置MCP(Multi-Client Protocol)服务器涉及多个方面,包括理解其基本架构、设置环境以及优化性能。以下是关于如何配置MCP服务器的一些关键点: #### MCP服务器的基础概念 MCP协议允许客户端与服务器之间通过特定的消息传递机制进行通信。它分为客户端和服务器端两部分,在实际应用中可以先专注于服务器端的搭建[^2]。 #### 配置MCP服务器的关键步骤 1. **选择合适的传输方式** - MCP支持多种数据传输方法,比如`stdio`或`SSE (Server-Sent Events)`。如果计划使用`stdio`作为主要传输手段,则需确保客户端能够解析标准输入/输出流中的消息;而采用`SSE`则需要提供有效的URL地址供客户端访问[^3]。 2. **设定连接参数** - 对于基于`stdio`的服务来说,主要是指定启动程序所需的命令行选项。 - 如果是网络服务形式(`SSE`),那么应该明确指出用于接收请求的具体HTTP路径或者WebSocket链接。 3. **集成到现有系统** - 开发者可以选择直接构建自己的MCP实现方案,也可以利用已有的开源项目快速上手。例如某些平台上已经存在可立即部署使用的预建MCP服务器实例。 4. **测试与调试** - 完成初步配置之后,务必进行全面的功能验证以确认所有预期行为均正常运作。可以通过模拟不同类型的用户交互场景来进行压力测试并调整资源分配策略[^1]。 5. **安全性考量** - 考虑到网络安全的重要性,在开放外部接口之前应实施必要的身份认证措施防止未授权访问。同时也要注意保护敏感信息不被泄露给未经授权的一方。 6. **文档记录维护** - 清晰详尽的技术文档有助于后续团队成员的理解和支持工作。定期更新指南说明任何改动之处以便长期管理更加便捷高效。 ```bash # 示例:简单的MCP Server初始化脚本(伪代码) #!/bin/bash # 设置基础变量 SERVER_NAME="My_MCP_Server" PORT=8080 echo "Starting $SERVER_NAME on port $PORT..." # 启动服务逻辑... ./mcp_server --port=$PORT & PID=$! trap 'kill $PID' EXIT wait $PID ``` 以上内容概括了从零开始建立一个功能性完备的MCP server所需要遵循的主要指导原则和技术要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值