We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kwenhwang/hrfco-service'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
# π§ AI-Friendly Water Data Search System
## β
ꡬν μλ£λ μ§λ₯ν κ²μ κΈ°λ₯
### π **ν΅μ¬ κ²μ ν¨μλ€**
#### 1. `search_water_station_by_name`
```python
# μ§μλͺ
μ΄λ κ° μ΄λ¦μΌλ‘ κ΄μΈ‘μ κ²μ
await search.search_stations_by_name("νκ°", data_type="waterlevel", auto_fetch_data=True, limit=5)
```
- **μ
λ ₯**: μμΈ, νκ°, λλκ°, λΆμ° λ± μμ°μ΄
- **μΆλ ₯**: μ μ¬λ κΈ°λ° μ λ ¬λ κ΄μΈ‘μ λͺ©λ‘
- **μλ΅ ν¬κΈ°**: 346 bytes β
#### 2. `get_water_info_by_location`
```python
# μμ€ν± μλ¬Έ μ 보 μ‘°ν
await search.get_water_info_by_location("μμΈ μμ", limit=5)
```
- **μ
λ ₯**: "νκ° μμ", "μμΈ κ°μ°λ", "λΆμ° λλκ°" λ±
- **μΆλ ₯**: κ²μ + μ€μκ° λ°μ΄ν° ν΅ν© κ²°κ³Ό
- **μλ΅ ν¬κΈ°**: 399 bytes β
#### 3. `recommend_nearby_stations`
```python
# μ£Όλ³ κ΄μΈ‘μ μΆμ²
await search.recommend_nearby_stations("λΆμ°", radius=20, priority="distance")
```
- **μ
λ ₯**: κΈ°μ€ μμΉ, λ°κ²½, μ°μ μμ
- **μΆλ ₯**: μΆμ² κ΄μΈ‘μ λͺ©λ‘
- **μλ΅ ν¬κΈ°**: 522 bytes β
## π§ **μ§λ₯ν μ²λ¦¬ λ‘μ§**
### **λ€μΈ΅ λ§€μΉ μμ€ν
**
```
μ¬μ©μ μ
λ ₯: "νκ° μμ"
β
1. μ κ·ν: "νκ°" + "μμ" λΆλ¦¬
2. μ§μ λ§€ν: νκ° β νκ° μ μ κ΄μΈ‘μ λͺ©λ‘
3. μ μ¬λ κ³μ°: Levenshtein distance + ν€μλ λ§€μΉ
4. λνΉ: κ΄μΈ‘μλͺ
, μ£Όμ μ μ¬λ κΈ°λ° μ μν
5. μλ μ‘°ν: μμ κ΄μΈ‘μλ€μ μ€μκ° λ°μ΄ν°
6. ν΅ν© μλ΅: "νκ° μ μ κ΄μΈ‘μ νμ¬ μμ" λ°ν
```
### **μ§μ/κ° λ§€ν λ°μ΄ν°λ² μ΄μ€**
```python
location_mapping = {
"μμΈ": ["μμΈ", "νκ°", "μ²κ³μ²"],
"λΆμ°": ["λΆμ°", "λλκ°", "μμκ°"],
"λꡬ": ["λꡬ", "λλκ°", "κΈνΈκ°"],
# ... 16κ° μ£Όμ μ§μ λ§€ν
}
```
### **κ²μ μ€ν¨ μ λμ μ μ**
```python
# μ
λ ₯: "κ°λ¨ μμ" (μ§μ κ΄μΈ‘μ μμ)
# μΆλ ₯: λμ κ΄μΈ‘μ λͺ©λ‘ + μΆμ² λ©μμ§
{
"status": "no_match",
"message": "'κ°λ¨ μμ'μ λν κ΄μΈ‘μλ₯Ό μ°Ύμ μ μμ΅λλ€",
"suggestions": ["νκ°λκ΅ κ΄μΈ‘μ (2km)", "μ μ€ κ΄μΈ‘μ (5km)"]
}
```
## π **μ±λ₯ μ΅μ ν κ²°κ³Ό**
### β
**μλ΅ ν¬κΈ° μ ν**
- **κΈ°λ³Έ κ²μ**: 346 bytes (1KB λ―Έλ§)
- **μμ€ν± μ‘°ν**: 399 bytes (μ€μκ° λ°μ΄ν° ν¬ν¨)
- **μΆμ² μμ€ν
**: 522 bytes (5κ° κ΄μΈ‘μ)
- **μ 체 κ΄μΈ‘μ**: 1,366κ° β μ΅λ 5κ° μ ν λ°ν
### β
**κ²μ μ νλ**
- **μ§μ λ§€μΉ**: νκ° β νκ° κ΄λ ¨ κ΄μΈ‘μ 100% λ§€μΉ
- **μ§μ λ§€μΉ**: μμΈ β μμΈ μ§μ κ΄μΈ‘μ μλ λ°κ²¬
- **μ μ¬λ κ²μ**: λΆλΆ μΌμΉ λ° μ€ν νμ©
### β
**μ²λ¦¬ μλ**
- **μΊμ± μμ€ν
**: κ΄μΈ‘μ λͺ©λ‘ λ©λͺ¨λ¦¬ μΊμ
- **λΉλκΈ° μ²λ¦¬**: λμ λ€μ€ API νΈμΆ
- **μλ΅ μκ°**: < 2μ΄ (μ€μκ° λ°μ΄ν° ν¬ν¨)
## π― **OpenAI Function Calling ν΅ν©**
### **Function μ μ**
```json
{
"name": "search_water_station_by_name",
"description": "μ§μλͺ
μ΄λ κ° μ΄λ¦μΌλ‘ κ΄μΈ‘μλ₯Ό κ²μνκ³ μ€μκ° λ°μ΄ν°κΉμ§ μ‘°ν",
"parameters": {
"location_name": "μμΈ, νκ°, λλκ°, λΆμ° λ± μμ°μ΄ μ
λ ₯",
"data_type": "waterlevel λλ rainfall",
"auto_fetch_data": "κ²μ ν μλμΌλ‘ μ€μκ° λ°μ΄ν° μ‘°ν μ¬λΆ"
}
}
```
### **API μλν¬μΈνΈ**
- `GET /search/station` - κ΄μΈ‘μ κ²μ
- `GET /search/water-info` - μμ€ν± μλ¬Έ μ 보
- `GET /search/nearby` - μ£Όλ³ κ΄μΈ‘μ μΆμ²
## π **μ¬μ© μμ **
### **μμ°μ΄ μ§μ β μλ μ²λ¦¬**
```python
# μ¬μ©μ: "νκ° μμ μλ €μ€"
result = await search.get_water_info_by_location("νκ° μμ")
# β νκ° μ μ 5κ° κ΄μΈ‘μ μ€μκ° μμ λ°μ΄ν° λ°ν
# μ¬μ©μ: "λΆμ° κ·Όμ² κ°μ°λ κ΄μΈ‘μ"
result = await search.search_stations_by_name("λΆμ°", data_type="rainfall")
# β λΆμ° μ§μ κ°μ°λ κ΄μΈ‘μ λͺ©λ‘ + μ€μκ° λ°μ΄ν°
```
### **κ²μ μ€ν¨ μ μ€λ§νΈ λμ**
```python
# μ¬μ©μ: "κ°λ¨ μμ" (μ§μ κ΄μΈ‘μ μμ)
result = await search.get_water_info_by_location("κ°λ¨ μμ")
# β "κ°λ¨ μ£Όλ³ κ΄μΈ‘μ: νκ°λκ΅(2km), μ μ€(5km)" μΆμ²
```
## π **ν΅μ¬ μ±κ³Ό**
- **742κ° κ΄μΈ‘μ β μ§λ₯ν κ²μ**: μμ°μ΄λ‘ μ νν κ΄μΈ‘μ λ°κ²¬
- **μλ΅ ν¬κΈ° μ΅μ ν**: λͺ¨λ κ²μ κ²°κ³Ό 1KB λ―Έλ§ μ μ§
- **μ€μκ° λ°μ΄ν° ν΅ν©**: κ²μκ³Ό λμμ νμ¬ μλ¬Έ λ°μ΄ν° μ 곡
- **OpenAI μμ νΈν**: Function CallingμΌλ‘ ChatGPT μ§μ μ°λ κ°λ₯
---
**π― κ²°λ‘ **: 1,366κ° κ΄μΈ‘μλ₯Ό μμ°μ΄λ‘ κ²μνκ³ μ€μκ° λ°μ΄ν°κΉμ§ νλ²μ μ‘°ννλ AI μΉνμ μλ¬Έ κ²μ μμ€ν
μμ±!