当前位置: 首页 > news >正文

快速将FastAPI接口转为模型上下文协议(MCP)!

fastapi_mcp 是一个用于将 FastAPI 端点暴露为模型上下文协议(Model Context Protocol, MCP)工具的库,并且支持认证功能。

环境macbook,python3.13
pip install fastapi uvicorn fastapi-mcp

代码

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from fastapi_mcp import FastApiMCP# 定义图书模型
class Book(BaseModel):id: inttitle: strauthor: str# 创建 FastAPI 应用
app = FastAPI()# 模拟数据库
books_db = {}# 创建图书
@app.post("/books/", response_model=Book)
async def create_book(book: Book):if book.id in books_db:raise HTTPException(status_code=400, detail="Book with this ID already exists")books_db[book.id] = bookreturn book# 获取所有图书
@app.get("/books/", response_model=list[Book])
async def get_all_books():return list(books_db.values())# 获取单个图书
@app.get("/books/{book_id}", response_model=Book)
async def get_book(book_id: int):book = books_db.get(book_id)if book is None:raise HTTPException(status_code=404, detail="Book not found")return book# 更新图书
@app.put("/books/{book_id}", response_model=Book)
async def update_book(book_id: int, book: Book):if book_id not in books_db:raise HTTPException(status_code=404, detail="Book not found")book.id = book_idbooks_db[book_id] = bookreturn book# 删除图书
@app.delete("/books/{book_id}", status_code=204)
async def delete_book(book_id: int):if book_id not in books_db:raise HTTPException(status_code=404, detail="Book not found")del books_db[book_id]return None# 创建 FastApiMCP 实例
mcp = FastApiMCP(app)# 挂载 MCP 服务器
mcp.mount()if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)

python3 -m uvicorn main:app --reload

插入一本书

curl -X POST "http://localhost:8000/books/" -H "Content-Type: application/json" -d '{"id": 1, "title": "Python Crash Course", "author": "Eric Matthes"}'

查询

curl -X GET "http://localhost:8000/books/" [{"id":1,"title":"Python Crash Course","author":"Eric Matthes"}]

cherry studio

在这里插入图片描述
在这里插入图片描述

如果启动python时报错ImportError

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pydantic_core/_pydantic_core.cpython-313-darwin.so, 0x0002)

解决
python3 -m pip install pydantic --force-reinstall

http://www.xdnf.cn/news/260101.html

相关文章:

  • Visionatrix开源程序可以简化您的 AI 图像生成工作流程 - Visionatrix 是一个基于 ComfyUI 构建的直观界面
  • Linux系统中升级GCC和G++工具版本至14.2.0
  • 二项分布习题集 · 答案与解析篇
  • 【愚公系列】《Manus极简入门》013-电影推荐专家:“银幕导航家”
  • 一、Shell 脚本基础
  • 2025最新AI绘画系统源码 - 画图大模型/GPT-4全支持/AI换脸/自定义智能体
  • PointPillars(一),跑通OpenPCDet中的demo
  • 解决C4D中ProRender渲染黑屏
  • 浅谈SpringBoot框架中的单例bean
  • Python虚假新闻检测识别
  • 订单系统冷热分离方案:优化性能与降低存储成本
  • AI人工智能的接入和使用
  • 第37课 绘制原理图——放置离页连接符
  • C语言 之 【栈的简介、栈的实现(初始化、销毁、入栈、出栈、判空、栈的大小、访问栈顶元素、打印)】
  • 从数据到故事:用可视化工具讲好商业“话本“
  • 【2-sat】2-sat算法内容及真题
  • Java零基础入门Day4:数组与二维数组详解
  • 二项分布习题集 · 题目篇
  • 2024浙江省赛 J. Even or Odd Spanning Tree
  • PMP-第七章 项目成本管理(二)
  • unity webgl netbox2本地部署打开运行
  • FormCalc 支持的编程语言和软件
  • 【基础算法】二分查找的多种写法
  • 通过组策略使能长路径
  • 我的创作纪念日,5.1特别篇
  • 英一真题阅读单词笔记 20-21年
  • 第 1 篇:起点的选择:为何需要超越数组与链表?
  • 深度解析 Let‘s Encrypt 证书申请:从核心概念到实战避坑指南
  • Open3d函数 认识
  • Java实现区间合并算法详解