MCP API Tools
FastAPI server with Google Gemini AI integration that provides auto-routing to multiple tools including weather, news, web search, dictionary, and quotes APIs through natural language prompts.
README
MCP Server dengan Google AI Studio
Server FastAPI yang menyediakan berbagai tools dan integrasi dengan Google Gemini AI.
Fitur
- Auto Tool Router: Routing otomatis ke tool yang tepat berdasarkan prompt
- Google Gemini Integration: Integrasi dengan Google AI Studio (Gemini 2.0 Flash Exp) menggunakan LangChain
- Multiple Tools:
- Weather (Cuaca)
- News (Berita)
- Web Search (Pencarian Web)
- Dictionary (Kamus)
- Quotes (Kutipan Bijak)
Persyaratan
- Python 3.8+
- pip (Python package manager)
Instalasi
-
Clone atau download repository ini
-
Install dependencies:
pip install -r requirements.txt
Atau install manual:
pip install fastapi uvicorn requests pydantic python-dotenv streamlit langchain-google-genai
-
PENTING: Konfigurasi API Key Google
a. Dapatkan API key dari Google AI Studio
b. Buat/edit file
.envdi root folder project:GOOGLE_API_KEY=your_actual_api_key_herec. Pastikan API key valid dan aktif (bukan expired atau restricted)
Catatan: Ganti
your_actual_api_key_heredengan API key Anda sendiri
Menjalankan Aplikasi
1. Jalankan FastAPI Server
Buka terminal pertama dan jalankan:
uvicorn server:app --reload
Server akan berjalan di http://localhost:8000
2. Jalankan Streamlit App (Opsional)
Buka terminal kedua dan jalankan:
streamlit run app.py
Aplikasi Streamlit akan terbuka otomatis di browser (http://localhost:8501)
Cara Penggunaan
Menggunakan Streamlit UI (Recommended)
Setelah menjalankan kedua server (FastAPI dan Streamlit), buka browser di http://localhost:8501
Fitur Streamlit App:
- Auto Tool Router: Masukkan pertanyaan dan sistem otomatis memilih tool yang tepat
- Google Gemini AI: Chat interaktif dengan AI Google Gemini
- Manual Tools: Pilih dan gunakan tool secara manual:
- Weather Tool: Cek cuaca kota
- News Tool: Cari berita berdasarkan topik
- Dictionary Tool: Cari definisi kata
- Quotes Tool: Dapatkan kutipan bijak
- Web Search Tool: Pencarian web
Menggunakan API (curl/Postman)
1. Auto Tool Router (/auto)
Endpoint ini secara otomatis memilih tool yang tepat berdasarkan kata kunci dalam prompt.
Endpoint: POST /auto
Request Body:
{
"prompt": "cuaca di Jakarta"
}
Contoh Penggunaan:
Cek Cuaca
curl -X POST http://localhost:8000/auto \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"cuaca di Bandung\"}"
Cari Berita
curl -X POST http://localhost:8000/auto \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"berita teknologi\"}"
Cari Definisi Kata
curl -X POST http://localhost:8000/auto \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"definisi technology\"}"
Dapatkan Quote
curl -X POST http://localhost:8000/auto \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"quote bijak\"}"
Web Search (Default)
curl -X POST http://localhost:8000/auto \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"python programming\"}"
2. Google Gemini LLM (/llm)
Endpoint untuk berkomunikasi langsung dengan Google Gemini AI.
Endpoint: POST /llm
Request Body:
{
"prompt": "Jelaskan apa itu artificial intelligence"
}
Contoh Penggunaan:
curl -X POST http://localhost:8000/llm \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"Apa itu FastAPI?\"}"
3. Health Check (/)
Cek status server.
Endpoint: GET /
curl http://localhost:8000/
Response:
{
"status": "MCP Server with Google AI Studio - OK"
}
Dokumentasi API Interaktif
Setelah server berjalan, akses dokumentasi API interaktif di:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
Struktur Proyek
.
├── .env # Environment variables (API keys)
├── server.py # Main FastAPI application
├── app.py # Streamlit frontend application
├── providers/
│ ├── google_llm.py # Google Gemini integration
│ └── ollama_llm.py # Ollama integration (optional)
└── tools/
├── weather_tool.py # Weather API
├── news_tool.py # News API
├── search_tool.py # DuckDuckGo search
├── dictionary_tool.py # Dictionary API
└── quotes_tool.py # Quotes API
Kata Kunci Auto Router
Auto router mendeteksi kata kunci berikut:
| Kata Kunci | Tool | Contoh |
|---|---|---|
cuaca, weather |
Weather Tool | "cuaca di Jakarta" |
berita, news |
News Tool | "berita teknologi" |
definisi, arti |
Dictionary Tool | "definisi python" |
quote, bijak |
Quotes Tool | "quote bijak" |
| Lainnya | Web Search | "python tutorial" |
Screenshot Streamlit App
Aplikasi Streamlit menyediakan 3 mode:
- Auto Tool Router - Routing otomatis berdasarkan kata kunci
- Google Gemini AI - Chat interface dengan history
- Manual Tools - Pilih tool secara manual dengan UI yang user-friendly
Troubleshooting
Error: Module not found
Pastikan semua dependencies sudah terinstall:
pip install fastapi uvicorn requests pydantic python-dotenv streamlit langchain-google-genai
Streamlit tidak bisa connect ke server
Pastikan FastAPI server sudah berjalan di http://localhost:8000 sebelum menjalankan Streamlit
Error: API key not valid / GOOGLE_API_KEY not found
Penyebab umum:
- API key tidak ada di file
.env - API key expired atau tidak valid
- API key memiliki restrictions yang tidak sesuai
Solusi:
- Pastikan file
.envada di root folder project - Dapatkan API key baru dari Google AI Studio
- Copy API key dan paste ke file
.env:GOOGLE_API_KEY=AIzaSy...your_actual_key - Restart server FastAPI setelah mengubah
.env - Pastikan tidak ada spasi atau karakter tambahan di API key
Server tidak bisa diakses
Pastikan server sudah berjalan dengan perintah:
uvicorn server:app --reload
Request loading lama / timeout
Lihat panduan lengkap di TROUBLESHOOTING.md
Quick Fix:
-
Test components:
python test_simple.py -
Try server without LLM:
uvicorn server_simple:app --reload --port 8001 -
Check API key dan ganti jika perlu di file
.env -
Ganti model di
providers/google_llm.py:model="models/gemini-1.5-flash" # More stable
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.