Basic MCP Application

by priteshshah96
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides the backend framework for the MCP server implementation

  • Powers the frontend interface that allows users to interact with LLMs through a simple UI

Aplicación básica de MCP

Una aplicación sencilla que muestra cómo funciona el Protocolo de contexto de modelo (MCP) con FastAPI y Gradio (porque no soy un desarrollador que disfrute de los dolores de cabeza que genera Streamlit).

Descripción general

Este proyecto demuestra un servidor MCP básico con una interfaz Gradio (Streamlit fue un dolor de cabeza, y la vida es demasiado corta para dolores innecesarios). Los usuarios pueden chatear con modelos de IA a través de lo que los expertos en marketing llamarían una "interfaz sencilla" y lo que los desarrolladores conocen como "lo mejor que pude hacer antes de seguir adelante 🥲".

Pila de tecnología

  • Backend : FastAPI + MCP Python SDK (una combinación perfecta, a diferencia de la piña en la pizza)
  • Interfaz : Gradio (porque los botones bonitos hacen que la dopamina suene brrr)
  • Integración de IA : API de Google Gemini (no el signo del horóscopo, la IA de Sundar Pichai)

Problemas conocidos

⚠️ Tenga en cuenta

  • La herramienta de citas no funciona correctamente en este momento. Es posible que veas errores al analizar citas de artículos o al usar algunas funciones de búsqueda avanzada. Estoy trabajando para solucionar este problema. ¿Cuándo se solucionará? Quién sabe... ¯\_(ツ)_/¯. Quizás cuando tengamos inteligencia artificial general.
  • La API de Semantic Scholar tiene limitaciones de velocidad, lo que puede provocar que la función de búsqueda a veces muestre un mensaje de error que indica "No puedo buscar ni proporcionarle artículos directamente". Esto es lo que ocurre cuando las API gratuitas se encuentran con usuarios entusiastas; nos encantan. Espera un poco y vuelve a intentarlo (o tómate un café mientras se restablecen los límites de velocidad).

Acelere su configuración

Este proyecto funciona de maravilla con uv , ¡un instalador de paquetes de Python rapidísimo! En lugar de esperar a que pip termine en el próximo siglo, puedes usar uv para instalar dependencias en segundos. Lo recomiendo encarecidamente para una experiencia más fluida (y para ahorrarte horas mirando las barras de progreso).

Inicio rápido

Lo que necesitarás

  • Python 3.11 o más reciente (lo siento, dinosaurios que todavía usan Python 2)
  • Administrador de paquetes pip (o su primo más rápido y genial uv )
  • La paciencia de un RCB (búscalos en Google) (opcional pero recomendado)

Pasos de configuración

  1. Clonar este proyecto:
    git clone https://github.com/yourusername/basic-mcp-app.git cd basic-mcp-app
  2. Crea un entorno virtual (porque las dependencias globales son el camino al daño emocional):
    python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  3. Instalar los paquetes necesarios:Usando pip (el método tortuga):
    pip install -r requirements.txt
    Usando uv (el camino de la liebre que realmente gana la carrera):
    # Install uv first if you don't have it curl -LsSf https://astral.sh/uv/install.sh | sh
    o
    pip install uv
    Luego instala las dependencias con uv:
    uv pip install -r requirements.txt
    Usar uv hace que la instalación de paquetes de Python sea un éxito. Es mucho más rápido que pip normal (¡promesa!). En el tiempo que tarda pip en entender lo que le has pedido, uv ya ha terminado, preparado café y empezado a escribir tu próxima aplicación.
  4. Configura tus claves API (las cosas que nunca deberías enviar a GitHub pero que alguien siempre hace de todas formas):
    cp .env.example .env # Open .env and add your API keys
  5. Ejecute ambos servidores con un solo comando (como por arte de magia, pero con más punto y coma):
    python run.py
    Esto inicia el backend y el frontend a la vez. Es como tener el pastel y comérselo también, pero con menos calorías.También puedes iniciarlos por separado si es necesario (para los fanáticos del control entre nosotros):
    • Backend: uvicorn backend.main:app --reload
    • Interfaz: python frontend/app.py
  6. Abra su navegador web y vaya a http://localhost:8501 (si esto no funciona, intente apagarlo y encenderlo nuevamente 😑)

Archivos del proyecto

Observa esta hermosa estructura de directorio que nunca permanecerá tan limpia una vez que el desarrollo realmente comience:

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)

Características

  • Búsqueda de artículos científicos con Semantic Scholar (para cuando Google Scholar es demasiado común)
  • Herramientas de análisis de papel (que funcionan el 60 % del tiempo, siempre)
  • Interfaz de chat sencilla (simple para los usuarios, pesadilla para los desarrolladores)
  • Proceso de instalación sencillo (si alguna vez has escalado el Everest, te parecerá un paseo por el parque)

Licencia

MIT (Porque soy amable y tampoco quiero leer licencias largas)

Gracias

-
security - not tested
F
license - not found
-
quality - not tested

Una aplicación sencilla que demuestra la integración del Protocolo de Contexto de Modelo (MCP) con FastAPI y Streamlit, permitiendo a los usuarios interactuar con LLM a través de una interfaz limpia.

  1. Overview
    1. Technology Stack
      1. Known Issues
        1. Speed Up Your Setup
          1. Quick Start
            1. What You'll Need
            2. Setup Steps
          2. Project Files
            1. Features
              1. License
                1. Thanks
                  ID: k6cmu0c8c2