Skip to main content
Glama
README.md6.77 kB
# 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 1. Clone atau download repository ini 2. Install dependencies: ```bash pip install -r requirements.txt ``` Atau install manual: ```bash pip install fastapi uvicorn requests pydantic python-dotenv streamlit langchain-google-genai ``` 3. **PENTING**: Konfigurasi API Key Google a. Dapatkan API key dari [Google AI Studio](https://aistudio.google.com/app/apikey) b. Buat/edit file `.env` di root folder project: ``` GOOGLE_API_KEY=your_actual_api_key_here ``` c. Pastikan API key valid dan aktif (bukan expired atau restricted) **Catatan**: Ganti `your_actual_api_key_here` dengan API key Anda sendiri ## Menjalankan Aplikasi ### 1. Jalankan FastAPI Server Buka terminal pertama dan jalankan: ```bash uvicorn server:app --reload ``` Server akan berjalan di `http://localhost:8000` ### 2. Jalankan Streamlit App (Opsional) Buka terminal kedua dan jalankan: ```bash 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:** 1. **Auto Tool Router**: Masukkan pertanyaan dan sistem otomatis memilih tool yang tepat 2. **Google Gemini AI**: Chat interaktif dengan AI Google Gemini 3. **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**: ```json { "prompt": "cuaca di Jakarta" } ``` **Contoh Penggunaan**: #### Cek Cuaca ```bash curl -X POST http://localhost:8000/auto \ -H "Content-Type: application/json" \ -d "{\"prompt\": \"cuaca di Bandung\"}" ``` #### Cari Berita ```bash curl -X POST http://localhost:8000/auto \ -H "Content-Type: application/json" \ -d "{\"prompt\": \"berita teknologi\"}" ``` #### Cari Definisi Kata ```bash curl -X POST http://localhost:8000/auto \ -H "Content-Type: application/json" \ -d "{\"prompt\": \"definisi technology\"}" ``` #### Dapatkan Quote ```bash curl -X POST http://localhost:8000/auto \ -H "Content-Type: application/json" \ -d "{\"prompt\": \"quote bijak\"}" ``` #### Web Search (Default) ```bash 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**: ```json { "prompt": "Jelaskan apa itu artificial intelligence" } ``` **Contoh Penggunaan**: ```bash 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 /` ```bash curl http://localhost:8000/ ``` **Response**: ```json { "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: 1. **Auto Tool Router** - Routing otomatis berdasarkan kata kunci 2. **Google Gemini AI** - Chat interface dengan history 3. **Manual Tools** - Pilih tool secara manual dengan UI yang user-friendly ## Troubleshooting ### Error: Module not found Pastikan semua dependencies sudah terinstall: ```bash 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:** 1. Pastikan file `.env` ada di root folder project 2. Dapatkan API key baru dari [Google AI Studio](https://aistudio.google.com/app/apikey) 3. Copy API key dan paste ke file `.env`: ``` GOOGLE_API_KEY=AIzaSy...your_actual_key ``` 4. Restart server FastAPI setelah mengubah `.env` 5. Pastikan tidak ada spasi atau karakter tambahan di API key ### Server tidak bisa diakses Pastikan server sudah berjalan dengan perintah: ```bash uvicorn server:app --reload ``` ### Request loading lama / timeout **Lihat panduan lengkap di [TROUBLESHOOTING.md](TROUBLESHOOTING.md)** **Quick Fix:** 1. Test components: ```bash python test_simple.py ``` 2. Try server without LLM: ```bash uvicorn server_simple:app --reload --port 8001 ``` 3. Check API key dan ganti jika perlu di file `.env` 4. Ganti model di `providers/google_llm.py`: ```python model="models/gemini-1.5-flash" # More stable ```

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamalexfo/mcp-api-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server