FastAPI-MCP:构建 AI 就绪 API 的终极指南

FastAPI-MCP 刚刚打破了 AI 积分游戏!🚀

FastAPI-MCP

忘记笨重 AI 整合! FastAPI-MCP 已经突破了天花板's 将 Python API 连接到 AI 模型。这个零设置工具将普通的 FastAPI 端点转换为 MCP 兼容动力装置 这 AI 代理可以立即使用——无需重写一行代码!

为什么要与复杂作斗争 AI 尽可能建立联系 公开你的整个 API 只需三行 Python 代码?您现有的身份验证、文档和架构保持不变,同时 AI 模型 像 Claude 和 GPT 这样的公司可以直接访问您的服务。

MTT综合医学训练疗法国际教学中心 AI 景观需要使用工具的模型,并且 FastAPI-MCP 提供 正是开发人员所需要的。

FastAPI-MCP 是一件大事 AI 爱好者

FastAPI-MCP 不仅仅是一个库;它更是让你的 API 轻松实现 AI 友好的门户。想象一下,你的聊天机器人不仅可以回答问题,还能从你的应用中提取实时数据来实时解决问题。这就是 MCP 的魔力,它 Anthropic 的开放标准,与 FastAPI 的速度和简单性相结合。

模型上下文协议 (MCP) 架构
来源: MCP

这个组合让 AI 模型可以轻松地接入外部工具,FastAPI-MCP 可自动执行此过程,并保留您的 API 架构和文档。统计数据显示,集成 AI 使用 API 可以将某些工作流程中的自动化效率提高高达 60% - 非常令人印象深刻,对吧?

什么使 FastAPI-MCP 脱颖而出?

  • 零配置设置:指向你的 FastAPI 应用,然后就好了——这是一个 MCP 服务器,可以 AI 互动。
  • 模式保存:保持您的请求和响应模型完整,以实现无缝 AI ���⡣
  • 灵活部署:在您的应用程序内运行它或作为独立服务运行它,以实现更好的扩展性和安全性。
  • 内置身份验证:利用您现有的 FastAPI 安全设置实现安全访问。

这不仅仅是为了技术而技术,而是为了让你的应用更智能、更易于操作 AI 系统,无论你从事营销、开发还是 数据科学.

入门:设置 FastAPI-MCP

让我们撸起袖子,开始这场盛宴吧!以下是将 FastAPI 应用转换为 MCP 服务器的分步指南,该服务器 AI 中介代理 可以像专业人士一样使用。

第三步: 安装所需的工具

首先,确保你的系统已准备就绪。你需要 Python 3.7 及以上版本和一些软件包。使用 uv 可以更快地安装,或者继续使用老版本的 pip:

打坏

# Using uv (recommended for speed)
uv add fastapi-mcp fastapi uvicorn mcp-proxy

# Or with pip
pip install fastapi fastapi-mcp uvicorn mcp-proxy

这些软件包涵盖了 Web 框架(FastAPI)、服务器运行器(Uvicorn)、MCP 集成(fastapi-mcp)以及客户端连接代理(mcp-proxy)。

第三步: 构建一个简单的 FastAPI 应用

让我们创建一个基本的应用程序来获取天气数据(我们使用免费的 weather.gov API 对于本示例)。创建一个名为 main.py 的文件并添加以下内容:

蟒蛇

from fastapi import FastAPI, HTTPException, Query
import httpx

# Define the FastAPI app
app = FastAPI(title="Weather Updates API")

# Predefined city coordinates (for simplicity)
CITY_COORDINATES = {
    "Los Angeles": {"lat": 34.0522, "lon": -118.2437},
    "San Francisco": {"lat": 37.7749, "lon": -122.4194},
    "San Diego": {"lat": 32.7157, "lon": -117.1611},
    "New York": {"lat": 40.7128, "lon": -74.0060},
    "Chicago": {"lat": 41.8781, "lon": -87.6298},
}
@app.get("/weather", operation_id="get_weather_update")
async def get_weather(
    stateCode: str = Query(..., description="State code (e.g., 'CA' for California)"),
    city: str = Query(..., description="City name (e.g., 'Los Angeles')")
):
    """
    Retrieve today's weather from the National Weather Service API based on city and state.
    """
    if city not in CITY_COORDINATES:
        raise HTTPException(
            status_code=404,
            detail=f"City '{city}' not found in predefined list. Please use another city."
        )
    coordinates = CITY_COORDINATES[city]
    lat, lon = coordinates["lat"], coordinates["lon"]
    base_url = f"https://api.weather.gov/points/{lat},{lon}"
    try:
        async with httpx.AsyncClient() as client:
            gridpoint_response = await client.get(base_url)
            gridpoint_response.raise_for_status()
            gridpoint_data = gridpoint_response.json()
            forecast_url = gridpoint_data["properties"]["forecast"]
            forecast_response = await client.get(forecast_url)
            forecast_response.raise_for_status()
            forecast_data = forecast_response.json()
            today_weather = forecast_data["properties"]["periods"][0]
            return {
                "city": city,
                "state": stateCode,
                "date": today_weather["startTime"],
                "temperature": today_weather["temperature"],
                "temperatureUnit": today_weather["temperatureUnit"],
                "forecast": today_weather["detailedForecast"],
            }
    except httpx.HTTPStatusError as e:
        raise HTTPException(
            status_code=e.response.status_code,
            detail=f"NWS API error: {e.response.text}"
        )
    except Exception as e:
        raise HTTPException(
            status_code=500,
            detail=f"Internal server error: {str(e)}"
        )

注意 operation_id=”get_weather_update” - 这使得工具名称清晰易懂 AI 代理。如果没有它,FastAPI 会生成不太友好的 ID。

第三步: 转换为 MCP 服务器

现在,让我们使用 FastAPI-MCP 让这个应用支持 AI。在 main.py 中添加以下几行:

蟒蛇

from fastapi_mcp import FastApiMCP
# Create and mount the MCP server
mcp = FastApiMCP(
    app,
    name="Weather Updates API",
    description="API for retrieving today's weather from weather.gov",
    base_url="http://localhost:8000"
)
mcp.mount()

# Run the app
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

就这样!你的 MCP 服务器已上线,地址是 http://localhost:8000/mcp。 AI 代理现在可以发现并使用您的天气端点作为工具。

第三步: 连接到 AI 客户

为了测试这一点,配置如下客户端 游标 IDE 或 Claude Desktop。编辑配置文件(位置因工具而异,通常在用户应用程序数据中)以指向您的 MCP 服务器:

JSON

"mcpServers": {
    "WeatherAPI": {
        "command": "mcp-proxy",
        "args": ["http://127.0.0.1:8000/mcp"]
    }
}

重启客户端,一切就绪。你可以问类似“圣地亚哥的天气怎么样?”的问题,然后观察 AI 使用您的 API 来获取数据。

高级技巧:自定义您的 FastAPI-MCP 设置

想要升级?FastAPI-MCP 提供了丰富的选项,可以根据特定需求调整设置。

过滤端点 AI 访问

并非所有端点都应该 AI 工具。控制哪些工具是公开的:

蟒蛇

mcp = FastApiMCP(
    app,
    name="Weather Updates API",
    base_url="http://localhost:8000",
    include_operations=["get_weather_update"],  # Only expose this endpoint
    include_tags=["public"]  # Or filter by tags
)
mcp.mount()

这使得敏感或内部端点无法 AI 达到。

独立服务器部署

对于更大的项目,请将 MCP 服务器与主 API 分开运行,以实现更好的扩展:

蟒蛇

from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

# Main API app
api_app = FastAPI()

# Define endpoints on api_app...

# Separate MCP app
mcp_app = FastAPI()
mcp = FastApiMCP(api_app, base_url="http://api-host:8001")
mcp.mount(mcp_app)

# Run separately

# uvicorn api_app --host api-host --port 8001

# uvicorn mcp_app --host mcp-host --port 8000

此设置允许您独立管理资源和安全。

变更后更新

添加了新端点?请刷新 MCP 服务器:

蟒蛇

@app.get("/new/weather/feature", operation_id="new_weather_feature")
async def new_feature():
    return {"message": "New weather feature!"}
mcp.setup_server()  # Refresh to include the new endpoint

这样可以确保 AI 代理商看到最新的工具。

实际应用: FastAPI-MCP

FastAPI-MCP 不仅仅是一个炫酷的玩具,它在各个行业都拥有巨大的潜力。以下是它如何掀起波澜的:

技术支持:为票务系统构建 API, AI 聊天机器人 可以访问检查状态或升级问题,从而缩短响应时间。
电子商务管理:公开产品搜索或库存端点,以便 AI 可以实时协助购物查询。
数据分析:让 AI 通过 MCP 工具从仪表板中提取实时统计数据,以获得即时洞察 - 思考 库存分析 或市场趋势。

需要牢记的挑战和技巧

事情并非一帆风顺。连接 AI API 可能会遇到安全风险或端点过载等问题。以下是如何保持警惕的方法:

  • 保护您的端点:使用 FastAPI 的内置身份验证来限制 MCP 访问。不要将管理工具暴露给 AI 沒有檢查。
  • 监控使用情况: AI 代理可能会发送垃圾请求。请设置速率限制以避免崩溃。
  • 彻底测试:上线前,进行模拟 AI 查询以确保响应准确且快速。

最后的思考: FastAPI MCP 一切都改变了!

FastAPI MCP 并非只是炒作,而是真正适合任何构建 人工智能工具、RAG 系统或下一代聊天机器人。零配置、自动发现和无缝 AI 整合,你可以 将您的 API 转变为 LLM 和代理的强大工具 只需几分钟。无需胶水代码,无需自定义包装器——只需干净、可扩展、支持 AI 的端点。

如果你是认真的 AI 自动化、代理工作流,或者只是想让你的 API 与最新的 LLM 兼容,FastAPI MCP 应该是你的首选工具包。试试看,看看你的 AI 堆栈加速。

想要更多实践 AI 指南、代码和专业提示?
敬请关注 爱莫乔 最新的 AI 工具、代理工作流程和 LLM 黑客。

发表评论

您的电邮地址不会被公开。 必填项 *

本网站使用Akismet来减少垃圾邮件。 了解您的评论数据是如何被处理的。

即刻加入 Aimojo 部落!

每周加入 76,200 多名会员获取内幕消息! 
🎁 奖金: 获得我们的 200 美元“AI 注册即可免费获得“精通工具包”!

热门 AI 工具
Sauci AI 

香肠 AI 完全掌控权交到你手中。 聊天、生成图像和创建视频,不受审查。

Lumo AI

私人的 AI 这款助手能够提供前沿级别的答案,而无需收集您的任何数据。 零访问加密 AI 来自 Proton 隐私堆栈的聊天、图像生成和加密项目。

洛卡人工智能

无需支付大量单独的订阅费用,即可访问所有主流法学硕士课程。 多模型 AI 面向专业人士、营销人员和学生的聚合平台

Indzu Social

只需几分钟,即可规划一个月的品牌社交内容。 AI XNUMX月XNUMX日 一体式 AI 面向独立创作者、初创公司和代理机构的社交媒体管理工具

Vivgrid

推动企业发展的管理技能平台 AI 从原型到生产 具有可观测性、评估和全局推理的无服务器 LLM 函数调用。

© 2023 - 2026 版权所有 | 成为 AI 专业版 | 用心打造