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
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。