Google Sheets Reader MCP Server
Enables reading data from a Google Sheets spreadsheet via the read_sheet tool, integrating real-time sheet data with an AI reminder assistant.
README
Assistente de Lembretes Inteligente (IA + MCP + Google Sheets)
Este é um projeto completo e funcional que demonstra o uso do Model Context Protocol (MCP) para integrar uma planilha do Google Sheets como fonte de dados em tempo real, exibindo um painel de lembretes interativo e permitindo consultas dinâmicas a um modelo de Inteligência Artificial (Google Gemini).
🏗️ Arquitetura do Sistema
A aplicação segue o padrão de design proposto no plano de desenvolvimento, utilizando comunicação JSON-RPC baseada em subprocessos (stdio) para o MCP:
[Usuário] ──> [Interface Web HTML/CSS/JS] ──> [FastAPI (Backend / MCP Client)]
│ │
▼ ▼
[Google Gemini] [MCP Server]
│
▼
[Google Sheets]
O FastAPI atua como o MCP Client, que inicia o script mcp_server/server.py como um subprocesso seguro e se comunica com ele utilizando a entrada e saída padrão (stdio). O MCP Server expõe a ferramenta read_sheet que lê dados brutos da planilha de forma dinâmica e os devolve para a aplicação.
🛠️ Requisitos de Instalação
1. Pré-requisitos
- Windows OS
- Python 3.11 (Já instalado via
wingetnas etapas de desenvolvimento) - Conexão com a Internet para a leitura remota do Google Sheets e chamadas da API do Gemini.
2. Configurando o Ambiente Virtual
Na pasta raiz do projeto, execute os comandos no terminal do Windows (PowerShell):
# Criação do Ambiente Virtual (caso ainda não tenha sido criado)
python -m venv .venv
# Ativação do Ambiente Virtual
.\.venv\Scripts\Activate.ps1
# Atualização de pacotes e instalação de dependências
pip install -r requirements.txt
3. Configuração do Arquivo .env
Duplique o arquivo .env.example e renomeie-o para .env.
Edite os valores conforme necessário:
# ID da planilha pública compartilhada
GOOGLE_SHEET_ID=1uSzbNC1gZQ8MYhzM4vjUUDknvCtxSzQvva2l6AzE4ec
# Chave de acesso do Gemini Free (Obtenha no Google AI Studio)
GEMINI_API_KEY=sua_chave_aqui
# Host e Porta de Execução
HOST=127.0.0.1
PORT=8000
🚀 Como Executar o Projeto
- Certifique-se de que o ambiente virtual está ativo (
.venv). - Inicialize o servidor backend FastAPI executando o comando:
python app.py
- Abra o navegador e acesse a URL da aplicação: 👉 http://127.0.0.1:8000
🔬 Como Validar e Testar o MCP Server
Você pode testar a ferramenta read_sheet do MCP Server de duas formas:
1. Teste Rápido via Script de Serviço
Execute o script do serviço cliente diretamente. Ele rodará o MCP Server em segundo plano, enviará o sinal de inicialização do protocolo e executará a ferramenta de leitura:
python services/sheets_service.py
Se a leitura funcionar, você verá o output das tarefas e uma mensagem de sucesso no terminal.
2. Usando o MCP CLI Inspector (Oficial)
O SDK oficial do MCP fornece uma interface interativa (web) para inspecionar servidores MCP locais. No terminal, execute:
mcp dev mcp_server/server.py
Isso abrirá uma janela do navegador com o MCP Inspector onde você poderá ver a ferramenta declarada read_sheet, executá-la manualmente e inspecionar a carga JSON transmitida.
🤖 Como Funciona a IA e Como Trocar o Modelo
Como trocar de modelo ou chave
A lógica de IA está completamente isolada no arquivo [services/ai_service.py](file:///c:/Users/Gustavo%20Daitx/Desktop/Ulbra/8Semestre/IA/AppMcp/services/ai_service.py).
Por padrão, o serviço utiliza o modelo gratuito gemini-1.5-flash do Google.
Para utilizar outra variação do Gemini, basta alterar o nome do modelo na linha de inicialização:
self.model = genai.GenerativeModel('gemini-1.5-pro') # Exemplo para usar o Gemini 1.5 Pro
Fallback Inteligente (Local)
Se você não tiver uma chave GEMINI_API_KEY ou a API falhar temporariamente por limites de cota, o serviço ativará o modo Fallback Local. O sistema usará uma lógica de processamento de linguagem simplificada para responder de forma nativa às principais perguntas como:
- Quais entregas estão atrasadas?
- Etapas pertencentes ao Luis/João?
- Etapas concluídas?
☁️ Publicação Gratuita (Deploy)
Você pode publicar esta aplicação gratuitamente no Render ou no Railway. Como a arquitetura usa MCP local via stdio (onde o backend spawna o servidor MCP como subprocesso), não há necessidade de configurar dois serviços separados no deploy; o FastAPI roda tudo em um único container unificado.
Publicação no Render (Recomendado)
- Crie uma conta gratuita em render.com.
- Conecte o repositório Git do projeto.
- Crie um novo Web Service.
- Configure as seguintes opções na criação:
- Environment / Runtime:
Python - Build Command:
pip install -r requirements.txt - Start Command:
python -m uvicorn app:app --host 0.0.0.0 --port $PORT
- Environment / Runtime:
- Nas configurações do Web Service, vá na seção Environment Variables e adicione as chaves:
GOOGLE_SHEET_IDGEMINI_API_KEY
- Clique em Deploy. A aplicação estará online no link gerado pelo Render!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。