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 不仅仅是一个库;它更是一扇通往 AI 友好型 API 的大门,让您轻松实现无缝集成。想象一下,您的聊天机器人不仅可以回答问题,还能从您的应用程序中提取实时数据,即时解决问题。这就是 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 中介代理 可以像专业人士一样使用。

步骤 1:安装所需工具

首先,确保你的系统已准备就绪。你需要 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)。

步骤 2:构建一个简单的 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。

步骤 3:转换为 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 客户

要进行测试,请配置Cursor 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,000 多名会员获取内幕消息! 
🎁 奖金: 获得我们的 200 美元“AI 注册即可免费获得“精通工具包”!

热门 AI 工具
地图化

利用人工智能,几秒钟内将任何内容转化为结构化思维导图。 最聪明 AI 适用于专业人士和学习者的思维导图和总结工具。

俎

此 AI 家庭助手帮你打理家务,让你专注于生活 为职场父母打造的智能家庭管理方案,直接集成在 WhatsApp 和 iMessage 中。

EroLove AI

未经过滤 AI 夜复一夜,真正记得你的爱人。 18+ 国家安全工作人员 AI 带有可编辑记忆和群组聊天室的伴侣聊天

Dreamz.ai

建立、聊天并查看您的私人空间 AI 女朋友,每个高级套餐都包含视频留言功能。 未删减版 18+ AI 为希望完全掌控游戏体验的成年人提供的陪伴聊天服务。

Fantasybox

AI 成人图像和视频生成,零自动续订 按学分付费,根据文本提示创作成人内容

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