青海门户网站建设,搜索引擎app,建筑通,做网站数据库表各字段详情目录 1. 我理解的 MCP2. 写一个自己的MCP然后发布到 PyPi 上#xff0c;包括加法工具和获取当前 ip 工具2.1 先碎碎念一下 uv2.2 初始化项目#xff08;全程在 cmd 下运行命令#xff09;2.3 添加 mcp 依赖2.4 添加 server.py#xff0c;先把加法功能添加上2.5 运行并测试加… 目录 1. 我理解的 MCP2. 写一个自己的MCP然后发布到 PyPi 上包括加法工具和获取当前 ip 工具2.1 先碎碎念一下 uv2.2 初始化项目全程在 cmd 下运行命令2.3 添加 mcp 依赖2.4 添加 server.py先把加法功能添加上2.5 运行并测试加法功能2.6 再添加获取当前本地 ip 功能并测试 3. 打包发布到 test PyPi4. 测试已发布的包5. MCP 的一些资源 1. 我理解的 MCP
官方的套词就不说了到处都是这里说说个人的理解仅供参考目前 AI 的能力在一点一点的进步但是 AI 的世界和真实的世界还是隔着十万八千里AI 知道时间是什么但是不知道现在几点AI 的知识库停留到它训练的那一刻它不知道最新的工具文档和代码包AI 知道怎么开车但是它看不到路摸不到方向盘踩不了刹车。大家发现没有这里面 AI 缺了什么能力对缺乏和真实世界产生联系的能力。而 MCP 就是用来做这个的让 AI 可以跟真实世界发生联系来回互动。这个我个人觉得就是 MCP 最大的意义。有了 MCP当你问 AI 现在几点它就不会再乱编了会去调用时间 MCP获取真实的时间有了 MCP当你问 AI 一个最新出炉的技术文档它也不会再乱编了会去调用网络查询 MCP获得最新的内容整理后发给你有了 MCP它就可以开车只要你把看路的能力转动方向盘的能力刹车的能力给它它就能开能转弯能刹车。
2. 写一个自己的MCP然后发布到 PyPi 上包括加法工具和获取当前 ip 工具
官方 Python SDK 地址
2.1 先碎碎念一下 uv
官方的 Python SDK 使用的是 Python 一个新的包管理工具uv已经写了一篇前置文章把 uv 的简单使用刷了一下快速用 uv 模拟发布一个 Python 依赖包到 TestPyPI 上以及常用命令为什么要模拟发布呢因为 MCP 这东西太新了要求的 Python 版本是3.10起步而我本地是3.9不想不敢升级印象中之前升级遇到坑有一些老 Python 项目无法兼容3.10似乎3.10删了一些东西无法理解不向下兼容坑死了。拉回来其实一开始是陷入了牛角尖一直在琢磨如何测试 MCP 的效果也是因为第一次接触 MCP对这个东西的运行机制不了解虽然它一出来的时候就关注到了但是网上的 MCP 例子都是什么操控数据库啦操控 git 啦操控聊天工具啦其实都没有什么本质上的提效针对程序员来说就一直没有试用。这一次正正经经的试用起因其实是 Augment太好用了但也太慢了不可能一直盯着它看进度就想着做一个通知类的 MCP让 Augment 在运行结束后通知一下我这样可以把正在摸鱼的我拉回电脑前。接下来我们来尝试开发一个简单的 MCP就叫 mcp-scoful-demo功能包括加法、获取当前本地 ip 地址
2.2 初始化项目全程在 cmd 下运行命令
uv init --lib mcp-scoful-demo # 初始化
cd mcp-scoful-demo # 进入初始化的目录2.3 添加 mcp 依赖
uv add mcp[cli]2.4 添加 server.py先把加法功能添加上
在mcp-scoful-demo目录下找到src/mcp-scoful-demo,添加server.py内容如下
cd src
cd mcp-scoful-demo
code server.py #假设你本地已经安装了 vs code把下面的代码复制进 server.py
# server.py
from mcp.server.fastmcp import FastMCP# Create an MCP server
mcp FastMCP(mcp-scoful-demo)# 不是老说 AI 不会计算吗那我们直接给 Ai 安排上加法功能让 AI 再也不会算错了 hh
# Add an addition tool
mcp.tool()
def add(a: int, b: int) - int:Add two numbersreturn a b
2.5 运行并测试加法功能
uv run mcp dev server.py上面这个命令运行成功后会自动出这样的链接 按住 Ctrl 键点击 http://127.0.0.1:6274会跳转浏览器打开这样一个界面这个是官方出的基于 Node 的一个测试工具可以测试本地开发的或者已经发布出去了的 MCP使用上面的命令是直接指定要运行我们开发的 MCP如果单纯只是想运行起来这个inspector工具可以使用命令npx modelcontextprotocol/inspector 啥都不用管Command和Arguments已经自动配好了直接点Connect出现下面这样Connected就表示连上了我们开发的 mcp 了如果报错了Connected 下面会出红色的日志但其实没卵用有个坑是在 server.py 里使用 print 打印这里是不显示的必须引入 logging然后使用 logging.error()内容才会在这里显示。另外 MCP 开发目前我还没找到断点 debug 的方式如果知道的大佬麻烦评论一下。 接下来获取一下我们开发的加法功能 测试一下加法功能 当当当一个简单的 MCP 就这样做好了是不是好简单
2.6 再添加获取当前本地 ip 功能并测试
在代码最后加上
# 获取当前本地 ip 地址
import httpx
mcp.tool()
async def fetch_current_ip() - str:fetch current ipasync with httpx.AsyncClient() as client:response await client.get(fhttps://ipinfo.io/ip)return response.text在 inspector 里重启一下 MCP因为修改代码了 按照之前的步骤List tools选择新的 Tool再 Run Tool done又搞定一个 tool
3. 打包发布到 test PyPi 修改 __init__.py 清空原来的内容修改内容如下from .server import servedef main():# Call serve functionserve()if __name__ __main__:main()修改 pyproject.toml 在最后追加内容[[tool.uv.index]]
name testpypi
url https://test.pypi.org/simple/
publish-url https://test.pypi.org/legacy/
explicit true[project.scripts]
mcp-scoful-demo mcp_scoful_demo:main发布到 test PyPi按照下面的命令依次运行具体详细说明请看《快速用 uv 模拟发布一个 Python 依赖包到 TestPyPI 上以及常用命令》 uv syncuv lockuv builduv publish --index testpypi # 这个就是发布命令如果是发生产不用–index结果如下
4. 测试已发布的包
等待5-10分钟需要同步一下使用命令npx modelcontextprotocol/inspector打开 inspector 一样点击跳浏览器然后在Command里输入uvx --default-index https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ mcp-scoful-demoPS这里可以指定版本号mcp-scoful-demo0.1.1另外如果是发布到生产环境格式是uvx mcp-scoful-demo确保Arguments里没内容然后切换 Tools 标签点击 List Tools随便选一个工具Run Tool
5. MCP 的一些资源
官方的开源组织 Model Context Protocol官方文档几个社区 MCP 库老实说都没啥意思对程序员写码有用的没几个 https://mcp.so/https://cursor.directory/https://www.pulsemcp.com/https://glama.ai/mcp/servers
over, enjoy!!! 如对您有帮助感谢投喂