MCP应用演示

一个展示Model Context Protocol (MCP)如何与FastAPI和Gradio结合使用的简单应用,适用于AI模型交互和科学论文搜索。

  • by priteshshah96
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 priteshshah96/mcp

使用说明

基本MCP应用程序

一个简单的应用程序,展示了模型上下文协议(MCP)如何与FastAPI和Gradio一起工作(因为我不是一个喜欢Streamlit头痛的开发人员)。

概述

这个项目演示了一个带有Gradio前端的基本MCP服务器(Streamlit是一个令人头疼的问题,生命太短暂,没有不必要的痛苦)。用户可以通过营销人员称之为“简单界面”的方式与人工智能模型聊天,以及开发人员所说的“在我离开之前我能做的最好的事情”🥲 ."

技术栈

  • 后端:FastAPI+MCP Python SDK(天作之合,不像披萨上的菠萝)
  • 前端:Gradio(因为漂亮的按钮会使多巴胺激增)
  • 人工智能集成:谷歌双子星API(不是星座,圣代的AI AI AI AI)

已知问题

⚠️ 请注意

  • 引用工具目前无法正常工作。在尝试分析论文引用或使用一些高级搜索功能时,您可能会看到错误。我正在努力解决这个问题。什么时候能修好?谁知道呢。也许当我们有AGI的时候。
  • Semantic Scholar API有费率限制,这可能会导致搜索功能有时返回错误消息,说明“我无法直接搜索并向您提供论文。”当免费API遇到热情的用户时,就会发生这种情况-我们爱死他们了。请稍等片刻,然后再试一次(或者在重新设置费率限制时用咖啡分散注意力)。

加快设置速度

这个项目与 uv,一个超快速的Python包安装程序!与其等待pip在下个世纪的某个时候完成,你可以使用 uv 在几秒钟内安装依赖项。我强烈建议这样做,以获得更流畅的体验(并让你在生活中花几个小时盯着进度条)。

快速开始

你需要什么

  • Python 3.11或更新版本(抱歉恐龙仍在使用Python 2)
  • pip包管理器(或其更酷、更快的表亲) uv)
  • RCB的耐心(谷歌搜索)(可选但推荐)

设置步骤

  1. 克隆此项目:

    git clone https://github.com/yourusername/basic-mcp-app.git
    cd basic-mcp-app
    
  2. 创建一个虚拟环境(因为全局依赖关系是情感伤害的途径):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装所需的软件包:

    使用pip(乌龟法):

    pip install -r requirements.txt
    

    使用uv(实际上赢得比赛的野兔方式):

    # Install uv first if you don't have it
    curl -LsSf https://astral.sh/uv/install.sh | sh
    

    或

    pip install uv
    

    然后使用uv安装依赖项:

    uv pip install -r requirements.txt
    

    使用 uv 让Python包安装顺利进行!它比普通pip快得多(motherpromise🤞). 在pip意识到你要求它做什么的时间里,uv已经完成了,煮了咖啡,并开始为你编写下一个应用程序。

  4. 设置你的API密钥(这些事情你永远不应该提交给GitHub,但总有人会这么做):

    cp .env.example .env
    # Open .env and add your API keys
    
  5. 使用一个命令运行两台服务器(类似魔术,但使用更多分号):

    python run.py
    

    这会同时启动后端和前端。这就像吃蛋糕,但热量更少。

    如果需要,你也可以单独启动它们(对于我们中的控制狂来说):

    • 后端: uvicorn backend.main:app --reload
    • 前端: python frontend/app.py
  6. 打开您的网络浏览器并转到http://localhost:8501(如果这不起作用,请尝试关闭并重新打开😑)

项目文件

看看这个漂亮的目录结构,一旦开发真正开始,它就永远不会保持干净:

basic-mcp-app/
├── .env.example           # Template for your API keys(Please don't make your api keys public🙏)
├── .gitignore             # Files to ignore in git (like the emotional baggage)
├── README.md              # This help file that nobody reads until desperate
├── requirements.txt       # Required packages (aka dependency hell)
├── run.py                 # Script to start both servers
├── backend/
│   └── main.py            # Backend server code with MCP (where the real magic happens)
└── frontend/
    └── app.py             # Gradio frontend interface (pretty buttons go here)

特性

  • 使用Semantic Scholar进行科学论文搜索(适用于Google Scholar过于主流的情况)
  • 论文分析工具(每次工作60%的时间)
  • 简单的聊天界面(对用户来说很简单,对开发人员来说是噩梦)
  • 设置过程简单(如果你曾经攀登过珠穆朗玛峰,这感觉就像在公园里散步)

许可证

麻省理工学院(因为我很好,也不想读长许可证)

谢谢

  • MCP的拟人化https://www.anthropic.com/news/model-context-protocol
  • https://modelcontextprotocol.io/introduction
  • Claude为vibe编码了演示的各个部分,并不完全,只是一点点🤏.