# 나라장터 공공데이터개방표준서비스 MCP Server
[English Documentation](#english-documentation)
조달청 나라장터(G2B)의 입찰공고, 낙찰정보, 계약정보를 조회할 수 있는 MCP 서버입니다.
## 주요 기능
- 🔍 **입찰공고 검색**: 날짜별 입찰공고 정보 조회
- 🏆 **낙찰정보 검색**: 업무구분별 낙찰 정보 조회
- 📋 **계약정보 검색**: 기관별 계약 정보 조회
- 📊 **상세정보 조회**: 특정 입찰공고의 상세 정보 확인
## 설치 방법
### PyPI를 통한 설치 (권장)
```bash
pip install data-go-mcp.pps-narajangteo
```
또는 `uvx`를 사용하여 직접 실행:
```bash
uvx data-go-mcp.pps-narajangteo@latest
```
### 소스 코드로부터 설치
```bash
git clone https://github.com/yourusername/data-go-mcp-servers
cd data-go-mcp-servers/src/pps-narajangteo
pip install -e .
```
## 환경 설정
### API 키 발급
1. [data.go.kr](https://www.data.go.kr) 회원가입
2. '나라장터 공공데이터개방표준서비스' 검색 및 활용신청
3. 발급받은 API 키를 환경변수로 설정
### 환경변수 설정
```bash
export API_KEY="your-api-key-here"
```
### Claude Desktop 설정
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"pps-narajangteo": {
"command": "uvx",
"args": ["data-go-mcp.pps-narajangteo@latest"],
"env": {
"API_KEY": "your-api-key-here"
}
}
}
}
```
## 사용 가능한 Tools
### 1. search_bid_announcements
입찰공고 정보를 검색합니다.
**파라미터:**
- `start_date` (선택): 검색 시작일 (YYYY-MM-DD 또는 YYYYMMDD)
- `end_date` (선택): 검색 종료일 (YYYY-MM-DD 또는 YYYYMMDD)
- `num_of_rows` (기본값: 10): 페이지당 결과 수 (최대: 999)
- `page_no` (기본값: 1): 페이지 번호
**예시:**
```python
# 오늘 공고된 입찰정보
result = await search_bid_announcements()
# 특정 기간 입찰공고
result = await search_bid_announcements(
start_date="2025-07-01",
end_date="2025-07-31"
)
```
**Claude에서 사용 예시:**
- "오늘 공고된 입찰정보를 보여줘"
- "2025년 7월 입찰공고를 검색해줘"
- "최근 입찰공고 100건을 조회해줘"
### 2. search_successful_bids
낙찰정보를 검색합니다.
**파라미터:**
- `business_type` (필수): 업무구분
- "1" 또는 "물품": 물품
- "2" 또는 "외자": 외자
- "3" 또는 "공사": 공사
- "5" 또는 "용역": 용역
- `start_date` (선택): 개찰 시작일
- `end_date` (선택): 개찰 종료일
- `num_of_rows` (기본값: 10): 페이지당 결과 수
- `page_no` (기본값: 1): 페이지 번호
**예시:**
```python
# 최근 7일간 공사 낙찰정보
result = await search_successful_bids(business_type="공사")
# 특정 기간 물품 낙찰정보
result = await search_successful_bids(
business_type="1",
start_date="2025-07-01",
end_date="2025-07-07"
)
```
**Claude에서 사용 예시:**
- "최근 공사 낙찰 정보를 알려줘"
- "이번 주 물품 낙찰 현황을 조회해줘"
- "용역 분야 낙찰 결과를 검색해줘"
### 3. search_contracts
계약정보를 검색합니다.
**파라미터:**
- `start_date` (선택): 계약체결 시작일 (YYYY-MM-DD 또는 YYYYMMDD)
- `end_date` (선택): 계약체결 종료일
- `institution_type` (선택): 기관구분
- "1": 계약기관
- "2": 수요기관
- `institution_code` (선택): 기관코드 (7자리)
- `num_of_rows` (기본값: 10): 페이지당 결과 수
- `page_no` (기본값: 1): 페이지 번호
**예시:**
```python
# 오늘 체결된 계약
result = await search_contracts()
# 특정 기관의 계약정보
result = await search_contracts(
start_date="2025-03-01",
end_date="2025-03-31",
institution_type="1",
institution_code="4490000" # 천안시
)
```
**Claude에서 사용 예시:**
- "오늘 체결된 계약 정보를 보여줘"
- "3월 한 달간 계약 현황을 조회해줘"
- "천안시의 최근 계약을 검색해줘"
### 4. get_bid_detail
특정 입찰공고의 상세정보를 조회합니다.
**파라미터:**
- `bid_notice_no` (필수): 입찰공고번호 (예: R25BK00933743)
**예시:**
```python
result = await get_bid_detail("R25BK00933743")
```
**Claude에서 사용 예시:**
- "입찰공고번호 R25BK00933743의 상세정보를 알려줘"
- "R25BK00933743 입찰공고 내용을 확인해줘"
## 응답 형식
모든 도구는 다음과 같은 형식으로 응답합니다:
```json
{
"success": true,
"items": [...], // 검색 결과 배열
"total_count": 100, // 전체 결과 수
"page_no": 1, // 현재 페이지
"num_of_rows": 10, // 페이지당 결과 수
"search_period": "20250701 ~ 20250731" // 검색 기간
}
```
오류 발생 시:
```json
{
"success": false,
"error": "오류 메시지",
"items": [],
"total_count": 0
}
```
## 제약사항
- **입찰공고 및 계약정보**: 검색 기간 최대 1개월
- **낙찰정보**: 검색 기간 최대 1주일
- **API 호출 제한**: 30 TPS (초당 30회)
- **응답 크기**: 최대 4000 bytes
## 에러 코드
| 코드 | 설명 | 해결방법 |
|------|------|----------|
| 01 | Application Error | 서비스 제공기관 문의 |
| 03 | No Data - 데이터 없음 | 검색 조건 확인 |
| 06 | 날짜 형식 오류 | YYYYMMDD 형식으로 입력 |
| 07 | 입력값 범위 초과 | 검색 기간 축소 (1개월/1주일 이내) |
| 08 | 필수값 누락 | 필수 파라미터 확인 |
| 22 | 일일 트래픽 초과 | 다음날 재시도 |
| 30 | 등록되지 않은 서비스키 | API 키 확인 |
| 31 | 기한 만료된 서비스키 | API 키 갱신 필요 |
## 개발
### 환경 설정
```bash
# 저장소 클론
git clone https://github.com/yourusername/data-go-mcp-servers.git
cd data-go-mcp-servers/src/pps-narajangteo
# 의존성 설치
uv sync
```
### 테스트
```bash
# 테스트 실행
uv run pytest tests/
# 커버리지 포함 테스트
uv run pytest tests/ --cov=data_go_mcp.pps_narajangteo
```
### 로컬 실행
```bash
# API 키 설정
export API_KEY="your-api-key"
# 서버 실행
uv run python -m data_go_mcp.pps_narajangteo.server
```
---
## English Documentation
MCP server for accessing Public Procurement Service (G2B) bid announcements, successful bid information, and contract information.
## Features
- 🔍 **Bid Announcement Search**: Search bid announcements by date
- 🏆 **Successful Bid Search**: Search successful bids by business type
- 📋 **Contract Search**: Search contracts by institution
- 📊 **Detail View**: Get detailed information for specific bid
## Installation
### Via PyPI (Recommended)
```bash
pip install data-go-mcp.pps-narajangteo
```
Or run directly with `uvx`:
```bash
uvx data-go-mcp.pps-narajangteo@latest
```
## Configuration
### Getting API Key
1. Sign up at [data.go.kr](https://www.data.go.kr)
2. Search and apply for '나라장터 공공데이터개방표준서비스' API
3. Set the API key as an environment variable
### Claude Desktop Setup
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"pps-narajangteo": {
"command": "uvx",
"args": ["data-go-mcp.pps-narajangteo@latest"],
"env": {
"API_KEY": "your-api-key-here"
}
}
}
}
```
## Available Tools
### 1. search_bid_announcements
Search for bid announcements.
**Parameters:**
- `start_date`: Search start date (YYYY-MM-DD)
- `end_date`: Search end date
- `num_of_rows`: Results per page (max: 999)
- `page_no`: Page number
### 2. search_successful_bids
Search for successful bid information.
**Parameters:**
- `business_type`: Business type (1:Goods, 2:Foreign, 3:Construction, 5:Service)
- `start_date`: Opening start date
- `end_date`: Opening end date
- `num_of_rows`: Results per page
- `page_no`: Page number
### 3. search_contracts
Search for contract information.
**Parameters:**
- `start_date`: Contract start date
- `end_date`: Contract end date
- `institution_type`: Institution type (1:Contract agency, 2:Demand agency)
- `institution_code`: Institution code (7 digits)
- `num_of_rows`: Results per page
- `page_no`: Page number
### 4. get_bid_detail
Get detailed information for a specific bid announcement.
**Parameters:**
- `bid_notice_no`: Bid announcement number (e.g., R25BK00933743)
## Limitations
- Bid announcements & contracts: Maximum 1 month search period
- Successful bids: Maximum 1 week search period
- API rate limit: 30 TPS (30 requests per second)
## API Documentation
For detailed API documentation, visit:
- Service URL: http://apis.data.go.kr/1230000/ao/PubDataOpnStdService
- data.go.kr: https://www.data.go.kr
## License
Apache License 2.0
## Contributing
Contributions are welcome! Please see the [main repository](https://github.com/yourusername/data-go-mcp-servers) for contribution guidelines.
## Support
For issues or questions:
- GitHub Issues: https://github.com/yourusername/data-go-mcp-servers/issues
- Documentation: https://github.com/yourusername/data-go-mcp-servers
Raw data
{
"_id": null,
"home_page": null,
"name": "data-go-mcp.pps-narajangteo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "api, data.go.kr, korea, mcp, pps-narajangteo",
"author": "DataGo MCP",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/b1/4d/63a52943bdded40a95bf537643d92c4ccf31c4d096e195647dce0faf3e2f/data_go_mcp_pps_narajangteo-0.1.0.tar.gz",
"platform": null,
"description": "# \ub098\ub77c\uc7a5\ud130 \uacf5\uacf5\ub370\uc774\ud130\uac1c\ubc29\ud45c\uc900\uc11c\ube44\uc2a4 MCP Server\n\n[English Documentation](#english-documentation)\n\n\uc870\ub2ec\uccad \ub098\ub77c\uc7a5\ud130(G2B)\uc758 \uc785\ucc30\uacf5\uace0, \ub099\ucc30\uc815\ubcf4, \uacc4\uc57d\uc815\ubcf4\ub97c \uc870\ud68c\ud560 \uc218 \uc788\ub294 MCP \uc11c\ubc84\uc785\ub2c8\ub2e4.\n\n## \uc8fc\uc694 \uae30\ub2a5\n\n- \ud83d\udd0d **\uc785\ucc30\uacf5\uace0 \uac80\uc0c9**: \ub0a0\uc9dc\ubcc4 \uc785\ucc30\uacf5\uace0 \uc815\ubcf4 \uc870\ud68c\n- \ud83c\udfc6 **\ub099\ucc30\uc815\ubcf4 \uac80\uc0c9**: \uc5c5\ubb34\uad6c\ubd84\ubcc4 \ub099\ucc30 \uc815\ubcf4 \uc870\ud68c\n- \ud83d\udccb **\uacc4\uc57d\uc815\ubcf4 \uac80\uc0c9**: \uae30\uad00\ubcc4 \uacc4\uc57d \uc815\ubcf4 \uc870\ud68c\n- \ud83d\udcca **\uc0c1\uc138\uc815\ubcf4 \uc870\ud68c**: \ud2b9\uc815 \uc785\ucc30\uacf5\uace0\uc758 \uc0c1\uc138 \uc815\ubcf4 \ud655\uc778\n\n## \uc124\uce58 \ubc29\ubc95\n\n### PyPI\ub97c \ud1b5\ud55c \uc124\uce58 (\uad8c\uc7a5)\n\n```bash\npip install data-go-mcp.pps-narajangteo\n```\n\n\ub610\ub294 `uvx`\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc9c1\uc811 \uc2e4\ud589:\n\n```bash\nuvx data-go-mcp.pps-narajangteo@latest\n```\n\n### \uc18c\uc2a4 \ucf54\ub4dc\ub85c\ubd80\ud130 \uc124\uce58\n\n```bash\ngit clone https://github.com/yourusername/data-go-mcp-servers\ncd data-go-mcp-servers/src/pps-narajangteo\npip install -e .\n```\n\n## \ud658\uacbd \uc124\uc815\n\n### API \ud0a4 \ubc1c\uae09\n\n1. [data.go.kr](https://www.data.go.kr) \ud68c\uc6d0\uac00\uc785\n2. '\ub098\ub77c\uc7a5\ud130 \uacf5\uacf5\ub370\uc774\ud130\uac1c\ubc29\ud45c\uc900\uc11c\ube44\uc2a4' \uac80\uc0c9 \ubc0f \ud65c\uc6a9\uc2e0\uccad\n3. \ubc1c\uae09\ubc1b\uc740 API \ud0a4\ub97c \ud658\uacbd\ubcc0\uc218\ub85c \uc124\uc815\n\n### \ud658\uacbd\ubcc0\uc218 \uc124\uc815\n\n```bash\nexport API_KEY=\"your-api-key-here\"\n```\n\n### Claude Desktop \uc124\uc815\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` \n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n \"mcpServers\": {\n \"pps-narajangteo\": {\n \"command\": \"uvx\",\n \"args\": [\"data-go-mcp.pps-narajangteo@latest\"],\n \"env\": {\n \"API_KEY\": \"your-api-key-here\"\n }\n }\n }\n}\n```\n\n## \uc0ac\uc6a9 \uac00\ub2a5\ud55c Tools\n\n### 1. search_bid_announcements\n\uc785\ucc30\uacf5\uace0 \uc815\ubcf4\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.\n\n**\ud30c\ub77c\ubbf8\ud130:**\n- `start_date` (\uc120\ud0dd): \uac80\uc0c9 \uc2dc\uc791\uc77c (YYYY-MM-DD \ub610\ub294 YYYYMMDD)\n- `end_date` (\uc120\ud0dd): \uac80\uc0c9 \uc885\ub8cc\uc77c (YYYY-MM-DD \ub610\ub294 YYYYMMDD)\n- `num_of_rows` (\uae30\ubcf8\uac12: 10): \ud398\uc774\uc9c0\ub2f9 \uacb0\uacfc \uc218 (\ucd5c\ub300: 999)\n- `page_no` (\uae30\ubcf8\uac12: 1): \ud398\uc774\uc9c0 \ubc88\ud638\n\n**\uc608\uc2dc:**\n```python\n# \uc624\ub298 \uacf5\uace0\ub41c \uc785\ucc30\uc815\ubcf4\nresult = await search_bid_announcements()\n\n# \ud2b9\uc815 \uae30\uac04 \uc785\ucc30\uacf5\uace0\nresult = await search_bid_announcements(\n start_date=\"2025-07-01\",\n end_date=\"2025-07-31\"\n)\n```\n\n**Claude\uc5d0\uc11c \uc0ac\uc6a9 \uc608\uc2dc:**\n- \"\uc624\ub298 \uacf5\uace0\ub41c \uc785\ucc30\uc815\ubcf4\ub97c \ubcf4\uc5ec\uc918\"\n- \"2025\ub144 7\uc6d4 \uc785\ucc30\uacf5\uace0\ub97c \uac80\uc0c9\ud574\uc918\"\n- \"\ucd5c\uadfc \uc785\ucc30\uacf5\uace0 100\uac74\uc744 \uc870\ud68c\ud574\uc918\"\n\n### 2. search_successful_bids\n\ub099\ucc30\uc815\ubcf4\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.\n\n**\ud30c\ub77c\ubbf8\ud130:**\n- `business_type` (\ud544\uc218): \uc5c5\ubb34\uad6c\ubd84\n - \"1\" \ub610\ub294 \"\ubb3c\ud488\": \ubb3c\ud488\n - \"2\" \ub610\ub294 \"\uc678\uc790\": \uc678\uc790\n - \"3\" \ub610\ub294 \"\uacf5\uc0ac\": \uacf5\uc0ac\n - \"5\" \ub610\ub294 \"\uc6a9\uc5ed\": \uc6a9\uc5ed\n- `start_date` (\uc120\ud0dd): \uac1c\ucc30 \uc2dc\uc791\uc77c\n- `end_date` (\uc120\ud0dd): \uac1c\ucc30 \uc885\ub8cc\uc77c\n- `num_of_rows` (\uae30\ubcf8\uac12: 10): \ud398\uc774\uc9c0\ub2f9 \uacb0\uacfc \uc218\n- `page_no` (\uae30\ubcf8\uac12: 1): \ud398\uc774\uc9c0 \ubc88\ud638\n\n**\uc608\uc2dc:**\n```python\n# \ucd5c\uadfc 7\uc77c\uac04 \uacf5\uc0ac \ub099\ucc30\uc815\ubcf4\nresult = await search_successful_bids(business_type=\"\uacf5\uc0ac\")\n\n# \ud2b9\uc815 \uae30\uac04 \ubb3c\ud488 \ub099\ucc30\uc815\ubcf4\nresult = await search_successful_bids(\n business_type=\"1\",\n start_date=\"2025-07-01\",\n end_date=\"2025-07-07\"\n)\n```\n\n**Claude\uc5d0\uc11c \uc0ac\uc6a9 \uc608\uc2dc:**\n- \"\ucd5c\uadfc \uacf5\uc0ac \ub099\ucc30 \uc815\ubcf4\ub97c \uc54c\ub824\uc918\"\n- \"\uc774\ubc88 \uc8fc \ubb3c\ud488 \ub099\ucc30 \ud604\ud669\uc744 \uc870\ud68c\ud574\uc918\"\n- \"\uc6a9\uc5ed \ubd84\uc57c \ub099\ucc30 \uacb0\uacfc\ub97c \uac80\uc0c9\ud574\uc918\"\n\n### 3. search_contracts\n\uacc4\uc57d\uc815\ubcf4\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.\n\n**\ud30c\ub77c\ubbf8\ud130:**\n- `start_date` (\uc120\ud0dd): \uacc4\uc57d\uccb4\uacb0 \uc2dc\uc791\uc77c (YYYY-MM-DD \ub610\ub294 YYYYMMDD)\n- `end_date` (\uc120\ud0dd): \uacc4\uc57d\uccb4\uacb0 \uc885\ub8cc\uc77c\n- `institution_type` (\uc120\ud0dd): \uae30\uad00\uad6c\ubd84\n - \"1\": \uacc4\uc57d\uae30\uad00\n - \"2\": \uc218\uc694\uae30\uad00\n- `institution_code` (\uc120\ud0dd): \uae30\uad00\ucf54\ub4dc (7\uc790\ub9ac)\n- `num_of_rows` (\uae30\ubcf8\uac12: 10): \ud398\uc774\uc9c0\ub2f9 \uacb0\uacfc \uc218\n- `page_no` (\uae30\ubcf8\uac12: 1): \ud398\uc774\uc9c0 \ubc88\ud638\n\n**\uc608\uc2dc:**\n```python\n# \uc624\ub298 \uccb4\uacb0\ub41c \uacc4\uc57d\nresult = await search_contracts()\n\n# \ud2b9\uc815 \uae30\uad00\uc758 \uacc4\uc57d\uc815\ubcf4\nresult = await search_contracts(\n start_date=\"2025-03-01\",\n end_date=\"2025-03-31\",\n institution_type=\"1\",\n institution_code=\"4490000\" # \ucc9c\uc548\uc2dc\n)\n```\n\n**Claude\uc5d0\uc11c \uc0ac\uc6a9 \uc608\uc2dc:**\n- \"\uc624\ub298 \uccb4\uacb0\ub41c \uacc4\uc57d \uc815\ubcf4\ub97c \ubcf4\uc5ec\uc918\"\n- \"3\uc6d4 \ud55c \ub2ec\uac04 \uacc4\uc57d \ud604\ud669\uc744 \uc870\ud68c\ud574\uc918\"\n- \"\ucc9c\uc548\uc2dc\uc758 \ucd5c\uadfc \uacc4\uc57d\uc744 \uac80\uc0c9\ud574\uc918\"\n\n### 4. get_bid_detail\n\ud2b9\uc815 \uc785\ucc30\uacf5\uace0\uc758 \uc0c1\uc138\uc815\ubcf4\ub97c \uc870\ud68c\ud569\ub2c8\ub2e4.\n\n**\ud30c\ub77c\ubbf8\ud130:**\n- `bid_notice_no` (\ud544\uc218): \uc785\ucc30\uacf5\uace0\ubc88\ud638 (\uc608: R25BK00933743)\n\n**\uc608\uc2dc:**\n```python\nresult = await get_bid_detail(\"R25BK00933743\")\n```\n\n**Claude\uc5d0\uc11c \uc0ac\uc6a9 \uc608\uc2dc:**\n- \"\uc785\ucc30\uacf5\uace0\ubc88\ud638 R25BK00933743\uc758 \uc0c1\uc138\uc815\ubcf4\ub97c \uc54c\ub824\uc918\"\n- \"R25BK00933743 \uc785\ucc30\uacf5\uace0 \ub0b4\uc6a9\uc744 \ud655\uc778\ud574\uc918\"\n\n## \uc751\ub2f5 \ud615\uc2dd\n\n\ubaa8\ub4e0 \ub3c4\uad6c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud615\uc2dd\uc73c\ub85c \uc751\ub2f5\ud569\ub2c8\ub2e4:\n\n```json\n{\n \"success\": true,\n \"items\": [...], // \uac80\uc0c9 \uacb0\uacfc \ubc30\uc5f4\n \"total_count\": 100, // \uc804\uccb4 \uacb0\uacfc \uc218\n \"page_no\": 1, // \ud604\uc7ac \ud398\uc774\uc9c0\n \"num_of_rows\": 10, // \ud398\uc774\uc9c0\ub2f9 \uacb0\uacfc \uc218\n \"search_period\": \"20250701 ~ 20250731\" // \uac80\uc0c9 \uae30\uac04\n}\n```\n\n\uc624\ub958 \ubc1c\uc0dd \uc2dc:\n```json\n{\n \"success\": false,\n \"error\": \"\uc624\ub958 \uba54\uc2dc\uc9c0\",\n \"items\": [],\n \"total_count\": 0\n}\n```\n\n## \uc81c\uc57d\uc0ac\ud56d\n\n- **\uc785\ucc30\uacf5\uace0 \ubc0f \uacc4\uc57d\uc815\ubcf4**: \uac80\uc0c9 \uae30\uac04 \ucd5c\ub300 1\uac1c\uc6d4\n- **\ub099\ucc30\uc815\ubcf4**: \uac80\uc0c9 \uae30\uac04 \ucd5c\ub300 1\uc8fc\uc77c\n- **API \ud638\ucd9c \uc81c\ud55c**: 30 TPS (\ucd08\ub2f9 30\ud68c)\n- **\uc751\ub2f5 \ud06c\uae30**: \ucd5c\ub300 4000 bytes\n\n## \uc5d0\ub7ec \ucf54\ub4dc\n\n| \ucf54\ub4dc | \uc124\uba85 | \ud574\uacb0\ubc29\ubc95 |\n|------|------|----------|\n| 01 | Application Error | \uc11c\ube44\uc2a4 \uc81c\uacf5\uae30\uad00 \ubb38\uc758 |\n| 03 | No Data - \ub370\uc774\ud130 \uc5c6\uc74c | \uac80\uc0c9 \uc870\uac74 \ud655\uc778 |\n| 06 | \ub0a0\uc9dc \ud615\uc2dd \uc624\ub958 | YYYYMMDD \ud615\uc2dd\uc73c\ub85c \uc785\ub825 |\n| 07 | \uc785\ub825\uac12 \ubc94\uc704 \ucd08\uacfc | \uac80\uc0c9 \uae30\uac04 \ucd95\uc18c (1\uac1c\uc6d4/1\uc8fc\uc77c \uc774\ub0b4) |\n| 08 | \ud544\uc218\uac12 \ub204\ub77d | \ud544\uc218 \ud30c\ub77c\ubbf8\ud130 \ud655\uc778 |\n| 22 | \uc77c\uc77c \ud2b8\ub798\ud53d \ucd08\uacfc | \ub2e4\uc74c\ub0a0 \uc7ac\uc2dc\ub3c4 |\n| 30 | \ub4f1\ub85d\ub418\uc9c0 \uc54a\uc740 \uc11c\ube44\uc2a4\ud0a4 | API \ud0a4 \ud655\uc778 |\n| 31 | \uae30\ud55c \ub9cc\ub8cc\ub41c \uc11c\ube44\uc2a4\ud0a4 | API \ud0a4 \uac31\uc2e0 \ud544\uc694 |\n\n## \uac1c\ubc1c\n\n### \ud658\uacbd \uc124\uc815\n\n```bash\n# \uc800\uc7a5\uc18c \ud074\ub860\ngit clone https://github.com/yourusername/data-go-mcp-servers.git\ncd data-go-mcp-servers/src/pps-narajangteo\n\n# \uc758\uc874\uc131 \uc124\uce58\nuv sync\n```\n\n### \ud14c\uc2a4\ud2b8\n\n```bash\n# \ud14c\uc2a4\ud2b8 \uc2e4\ud589\nuv run pytest tests/\n\n# \ucee4\ubc84\ub9ac\uc9c0 \ud3ec\ud568 \ud14c\uc2a4\ud2b8\nuv run pytest tests/ --cov=data_go_mcp.pps_narajangteo\n```\n\n### \ub85c\uceec \uc2e4\ud589\n\n```bash\n# API \ud0a4 \uc124\uc815\nexport API_KEY=\"your-api-key\"\n\n# \uc11c\ubc84 \uc2e4\ud589\nuv run python -m data_go_mcp.pps_narajangteo.server\n```\n\n---\n\n## English Documentation\n\nMCP server for accessing Public Procurement Service (G2B) bid announcements, successful bid information, and contract information.\n\n## Features\n\n- \ud83d\udd0d **Bid Announcement Search**: Search bid announcements by date\n- \ud83c\udfc6 **Successful Bid Search**: Search successful bids by business type\n- \ud83d\udccb **Contract Search**: Search contracts by institution\n- \ud83d\udcca **Detail View**: Get detailed information for specific bid\n\n## Installation\n\n### Via PyPI (Recommended)\n\n```bash\npip install data-go-mcp.pps-narajangteo\n```\n\nOr run directly with `uvx`:\n\n```bash\nuvx data-go-mcp.pps-narajangteo@latest\n```\n\n## Configuration\n\n### Getting API Key\n\n1. Sign up at [data.go.kr](https://www.data.go.kr)\n2. Search and apply for '\ub098\ub77c\uc7a5\ud130 \uacf5\uacf5\ub370\uc774\ud130\uac1c\ubc29\ud45c\uc900\uc11c\ube44\uc2a4' API\n3. Set the API key as an environment variable\n\n### Claude Desktop Setup\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"pps-narajangteo\": {\n \"command\": \"uvx\",\n \"args\": [\"data-go-mcp.pps-narajangteo@latest\"],\n \"env\": {\n \"API_KEY\": \"your-api-key-here\"\n }\n }\n }\n}\n```\n\n## Available Tools\n\n### 1. search_bid_announcements\nSearch for bid announcements.\n\n**Parameters:**\n- `start_date`: Search start date (YYYY-MM-DD)\n- `end_date`: Search end date\n- `num_of_rows`: Results per page (max: 999)\n- `page_no`: Page number\n\n### 2. search_successful_bids\nSearch for successful bid information.\n\n**Parameters:**\n- `business_type`: Business type (1:Goods, 2:Foreign, 3:Construction, 5:Service)\n- `start_date`: Opening start date\n- `end_date`: Opening end date\n- `num_of_rows`: Results per page\n- `page_no`: Page number\n\n### 3. search_contracts\nSearch for contract information.\n\n**Parameters:**\n- `start_date`: Contract start date\n- `end_date`: Contract end date\n- `institution_type`: Institution type (1:Contract agency, 2:Demand agency)\n- `institution_code`: Institution code (7 digits)\n- `num_of_rows`: Results per page\n- `page_no`: Page number\n\n### 4. get_bid_detail\nGet detailed information for a specific bid announcement.\n\n**Parameters:**\n- `bid_notice_no`: Bid announcement number (e.g., R25BK00933743)\n\n## Limitations\n\n- Bid announcements & contracts: Maximum 1 month search period\n- Successful bids: Maximum 1 week search period\n- API rate limit: 30 TPS (30 requests per second)\n\n## API Documentation\n\nFor detailed API documentation, visit:\n- Service URL: http://apis.data.go.kr/1230000/ao/PubDataOpnStdService\n- data.go.kr: https://www.data.go.kr\n\n## License\n\nApache License 2.0\n\n## Contributing\n\nContributions are welcome! Please see the [main repository](https://github.com/yourusername/data-go-mcp-servers) for contribution guidelines.\n\n## Support\n\nFor issues or questions:\n- GitHub Issues: https://github.com/yourusername/data-go-mcp-servers/issues\n- Documentation: https://github.com/yourusername/data-go-mcp-servers",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "MCP server for \ub098\ub77c\uc7a5\ud130 \uacf5\uacf5\ub370\uc774\ud130\uac1c\ubc29\ud45c\uc900\uc11c\ube44\uc2a4 (Public Procurement Service Open Data Standard)",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/yourusername/data-go-mcp-servers/issues",
"Changelog": "https://github.com/yourusername/data-go-mcp-servers/blob/main/src/pps-narajangteo/CHANGELOG.md",
"Documentation": "https://github.com/yourusername/data-go-mcp-servers/tree/main/src/pps-narajangteo",
"Homepage": "https://github.com/yourusername/data-go-mcp-servers",
"Repository": "https://github.com/yourusername/data-go-mcp-servers"
},
"split_keywords": [
"api",
" data.go.kr",
" korea",
" mcp",
" pps-narajangteo"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "be43ec9c4763ee9408f115df03a0469162164bc142abc829b4f9451ab6af99f2",
"md5": "2e27fb781c52506af00e0c3e453252a4",
"sha256": "23fdd2e8b357bcad64e6662288e9f4c4b3408b2f4a5709b4baba0d1e9592f968"
},
"downloads": -1,
"filename": "data_go_mcp_pps_narajangteo-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2e27fb781c52506af00e0c3e453252a4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 14461,
"upload_time": "2025-08-28T22:48:47",
"upload_time_iso_8601": "2025-08-28T22:48:47.890128Z",
"url": "https://files.pythonhosted.org/packages/be/43/ec9c4763ee9408f115df03a0469162164bc142abc829b4f9451ab6af99f2/data_go_mcp_pps_narajangteo-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b14d63a52943bdded40a95bf537643d92c4ccf31c4d096e195647dce0faf3e2f",
"md5": "29b6d6eb9deb06cac3c91878ed27c78c",
"sha256": "e9ad6b567789b03a8ae951c168b5e50b4dbd6d4756b86a7dd4bbea43ec3a37f0"
},
"downloads": -1,
"filename": "data_go_mcp_pps_narajangteo-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "29b6d6eb9deb06cac3c91878ed27c78c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 15424,
"upload_time": "2025-08-28T22:48:49",
"upload_time_iso_8601": "2025-08-28T22:48:49.373367Z",
"url": "https://files.pythonhosted.org/packages/b1/4d/63a52943bdded40a95bf537643d92c4ccf31c4d096e195647dce0faf3e2f/data_go_mcp_pps_narajangteo-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-28 22:48:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "data-go-mcp-servers",
"github_not_found": true,
"lcname": "data-go-mcp.pps-narajangteo"
}