Token导航 LogoToken导航TokenDH.com
Client Demo With Gemini logo
AI代理stdio官方级别未说明来源级核验

Client Demo With Gemini

MCP Server

该项目演示了如何使用MCP协议连接Google Gemini AI客户端与提供天气工具的服务器,实现天气信息的查询和处理。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
位置天气Python本地部署STDIO

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Karlheinzniebuhr

提供方

Karlheinzniebuhr

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install google-generativeai python-dotenv mcp-protocols # Asegúrate de que mcp-protocols sea el paquete correcto

详细介绍

TL;DR / Resumen

  1. Instala dependencias: pip install -r requirements.txt
  2. Crea .env con GEMINI_API_KEY=TU_CLAVE_API_AQUI.
  3. Ejecuta: python mcp_gemini_client.py weather_tool_server.py

Proyecto Cliente MCP con Gemini y Servidor de Herramientas Meteorológicas

Este repositorio demuestra cómo usar el protocolo MCP (Model-Client-Protocol) para conectar un cliente de IA (usando Google Gemini) con un servidor que proporciona herramientas especializadas (en este caso, herramientas meteorológicas).

Cómo Funciona

El sistema actúa como un puente entre la IA de Gemini y las herramientas especializadas. Aquí está el flujo explicado de forma sencilla:

Roles de los Componentes

  1. mcp_gemini_client.py - Este es el "intermediario" que:

* Habla con la IA de Gemini. * Se conecta al servidor de herramientas (weather_tool_server.py). * Maneja las entradas del usuario y muestra las respuestas.

  1. weather_tool_server.py - Este es el "proveedor de herramientas" que:

* Ofrece herramientas específicas relacionadas con el clima (get_alerts, get_forecast). * Procesa las solicitudes de herramientas y devuelve los resultados.

  1. MCP (Model-Client-Protocol) - Este es el "sistema de comunicación" que:

* Proporciona formas estandarizadas para que los clientes descubran y llamen a las herramientas. * Maneja la mensajería entre clientes y servidores.

Flujo al Preguntar por el Clima

  1. Entrada del Usuario: Escribes una pregunta como "¿Cuál es el clima en Nueva York?" en el cliente.
  2. Procesamiento del Cliente:

* mcp_gemini_client.py envía esta pregunta a la IA de Gemini. * También le dice a Gemini qué herramientas están disponibles consultando al servidor weather_tool_server.py.

  1. Decisión de la IA de Gemini:

* Gemini reconoce que necesita usar una herramienta meteorológica (por ejemplo, get_forecast). * Formatea una respuesta indicando qué herramienta usar y con qué argumentos (por ejemplo, latitud y longitud para Nueva York).

  1. Ejecución de la Herramienta:

* El cliente analiza la solicitud de Gemini para usar la herramienta. * Envía la solicitud de herramienta al servidor weather_tool_server.py. * El servidor ejecuta la consulta meteorológica y devuelve los resultados.

  1. Respuesta Final:

* Los resultados de la herramienta regresan al cliente, que luego los envía de vuelta a Gemini. * Gemini formatea estos resultados en una respuesta fácil de entender para el usuario. * El cliente muestra esta respuesta final.

Configuración y Ejecución

  1. Instalar Dependencias:
    pip install google-generativeai python-dotenv mcp-protocols # Asegúrate de que mcp-protocols sea el paquete correcto
  1. Clave API:

* Obtén una clave API de Google AI Studio. * Crea un archivo .env en la raíz del proyecto. * Añade tu clave al archivo .env:

        GEMINI_API_KEY=TU_CLAVE_API_AQUI
  1. Ejecutar:

* Asegúrate de que mcp_gemini_client.py y weather_tool_server.py estén en el mismo directorio. * Ejecuta el cliente, diciéndole dónde encontrar el script del servidor:

        python mcp_gemini_client.py weather_tool_server.py

* Escribe tus consultas en la terminal cuando se te solicite.

Archivo de Log (mcp_log.txt)

  • Consolidado y Detallado: Este archivo ahora contiene logs combinados tanto del cliente (mcp_gemini_client.py) como del servidor (weather_tool_server.py).
  • Visibilidad del Flujo: Los logs son intencionalmente detallados para mostrar el flujo de datos completo:

* Mensajes enviados/recibidos de la API de Gemini (incluyendo los prompts). * Solicitudes/respuestas de herramientas enviadas/recibidas a través del protocolo MCP entre el cliente y el servidor.

  • Identificación: Cada entrada de log incluye el nombre del módulo (mcp_gemini_client o weather_tool_server) para que puedas identificar qué componente generó el mensaje.
  • Depuración: Es la fuente principal para depurar problemas y entender las interacciones entre todos los componentes.

Flujo de Logs de Ejemplo (mcp_log.txt)

Aquí hay un ejemplo simplificado de cómo se ven los logs de una interacción completa, mostrando las comunicaciones clave:

  1. Cliente envía el prompt inicial a Gemini (con descripción de herramientas):
    2025-04-21 12:31:54,519 - __main__ - INFO - === Prompt Sent to Gemini (Initial) ===
    You are an assistant that helps users with weather information.
    You have access to the following tools:
    ...
    Tool: get_forecast
    Description: Get weather forecast for a location...
    Schema: {...}
    ...
    When you need to use a tool, format your response like this:
    TOOL_NAME: {the tool name}
    TOOL_ARGS: {JSON formatted arguments for the tool}
    ...
    The user message is: cual es el tiempo en nyc ?
    ======================================
  1. Gemini responde solicitando una herramienta:
    2025-04-21 12:31:56,049 - __main__ - INFO - === Raw Response Received from Gemini (Initial) ===
    TOOL_NAME: get_forecast
    TOOL_ARGS: {"latitude": 40.7128, "longitude": -74.0060}
    ===============================================
  1. Cliente analiza la respuesta y envía la solicitud de herramienta MCP al servidor:
    2025-04-21 12:31:56,050 - __main__ - INFO - Executing MCP tool: get_forecast with args: {'latitude': 40.7128, 'longitude': -74.006}
  1. Servidor recibe la solicitud de herramienta MCP:
    2025-04-21 12:31:56,052 - INFO - mcp.server.lowlevel.server - Processing request of type CallToolRequest
    2025-04-21 12:31:56,052 - INFO - __main__ - MCP Request Received: get_forecast with latitude: 40.7128, longitude: -74.006
  1. Servidor ejecuta la herramienta y envía la respuesta MCP al cliente:
    2025-04-21 12:31:57,180 - INFO - __main__ - === MCP Response Sent (get_forecast) ===

                        Today:
                        Temperature: 56F
                        ...
                        Forecast: Cloudy. High near 56...
                        
    ---...
    =======================================
  1. Cliente recibe la respuesta de la herramienta MCP:
    2025-04-21 12:31:57,182 - __main__ - INFO - Raw MCP Tool Result Object Received: meta=None content=[TextContent(type='text', text='\n                    Today:\n...)] isError=False
    2025-04-21 12:31:57,182 - __main__ - INFO - MCP tool get_forecast executed. Extracted Result Content: [TextContent(type='text', text='\n       Today:\n...)]...
  1. Cliente envía el prompt final a Gemini (con resultado de la herramienta):
    2025-04-21 12:31:57,182 - __main__ - INFO - === Prompt Sent to Gemini (Final) ===
    I asked for information about the weather in response to: "cual es el tiempo en nyc ?"
                        
    I used the get_forecast tool with these arguments: {"latitude": 40.7128, "longitude": -74.006}
    The tool returned this result: [TextContent(type='text', text='\n     Today:\n...')]

    Please provide a helpful, user-friendly response based on this information.
    =======================================
  1. Gemini responde con la respuesta final formateada para el usuario:
    2025-04-21 12:31:59,000 - __main__ - INFO - === Raw Response Received from Gemini (Final) ===
    The weather in NYC looks like this:

    **Today:** Cloudy with a high of 56F...
    ...
    ===============================================

目录标签

目录标签

位置天气Python本地部署STDIO天气查询AI集成MCP协议工具服务器

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP