mcp-narajangteo

mcp-narajangteo

내 상황에 맞는 사업을 키워드 기반으로 알려주고 분석함

Category
访问服务器

README

Nara MCP Server (나라장터 입찰공고 검색)

MCP server for searching Korean government procurement bid notices from G2B (나라장터 - Nara Jangteo).

Features

  • 🔍 키워드 검색: 최근 7일간 용역 입찰공고를 키워드로 검색
  • 📅 자동 필터링: 마감되지 않은 공고만 자동 필터링
  • 📎 파일 추출: 제안요청서(RFP) 자동 다운로드 및 텍스트 추출
  • 🏢 맞춤형 추천: 부서 프로필 기반 Top 5 입찰공고 추천
  • 📄 다형식 지원: HWP, HWPX, PDF, DOCX, XLSX, ZIP 파일 자동 처리
  • 🎯 전략 분석: 첨부파일 기반 입찰 전략 제안

Prerequisites

1. API 키 발급 (필수)

나라장터 API를 사용하려면 공공데이터포털에서 API 키를 발급받아야 합니다.

발급 절차:

  1. 공공데이터포털 접속 및 회원가입
  2. 검색창에 "조달청_나라장터 입찰공고정보서비스" 검색
  3. "조달청_나라장터 입찰공고정보서비스" 선택
  4. 활용신청 클릭 (즉시 승인 또는 승인 대기)
  5. 마이페이지 > 개발계정 에서 ServiceKey 확인 (일반 인증키 Decoding을 사용하면 됩니다.)

2. Python 환경

  • Python 3.10 이상 필요

Installation

Option 1: From Source (권장)

git clone https://github.com/Datajang/narajangteo_mcp_server.git
cd narajangteo_mcp_server
pip install -r requirements.txt

Option 2: From PyPI (향후 제공 예정)

pip install nara-mcp-server

Configuration

Claude Desktop

Claude Desktop의 설정 파일을 수정하여 MCP 서버를 연결합니다.

설정 파일 위치:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

설정 예시:

{
  "mcpServers": {
    "nara-jangteo": {
      "command": "python",
      "args": ["C:\\absolute\\path\\to\\naraMcp\\server.py"],
      "env": {
        "NARA_API_KEY": "여기에_발급받은_ServiceKey_입력"
      }
    }
  }
}

중요 사항:

  • args의 경로는 절대 경로로 지정
  • Windows 경로는 \\로 구분 (예: C:\\Users\\...)
  • NARA_API_KEY에 발급받은 ServiceKey 입력

Other MCP Clients

Continue, Cline 등 다른 MCP 클라이언트에서도 동일한 방식으로 환경변수 설정:

{
  "env": {
    "NARA_API_KEY": "your_service_key_here"
  }
}

Available Tools

1. get_bids_by_keyword

키워드로 최근 7일간 용역 입찰공고를 검색합니다.

파라미터:

  • keyword (필수): 검색 키워드 (예: "인공지능", "AI", "플랫폼", "시스템 구축")

반환 정보:

  • 공고명 (bidNtceNm)
  • 공고번호 (bidNtceNo)
  • 수요기관 (dminsttNm)
  • 마감일시 (bidClseDt) - 마감되지 않은 공고만
  • 제안요청서 링크 (ntceSpecDocUrl1)

예시 질문:

나라장터에서 "인공지능" 키워드로 입찰공고를 검색해줘
AI 관련 정부 프로젝트 입찰 공고를 찾아줘

2. recommend_bids_for_dept

부서/팀 프로필을 기반으로 맞춤형 입찰공고를 추천합니다 (최대 30개 검색 후 Top 5 선정).

파라미터:

  • keyword (필수): 검색 키워드
  • department_profile (필수): 부서/팀 설명 (예: "UI/UX 디자인팀", "AI/ML 개발팀")

예시 질문:

우리 팀은 클라우드 인프라 구축 전문팀이야. "클라우드" 키워드로 우리 팀에 맞는 입찰공고 추천해줘
데이터베이스 마이그레이션 전문가인데, "DB" 키워드로 적합한 입찰공고를 찾아줘

3. analyze_bid_detail

입찰공고 첨부파일(제안요청서)을 다운로드하고 텍스트를 추출하여 분석합니다.

파라미터:

  • file_url (필수): 첨부파일 URL (검색 결과의 ntceSpecDocUrl1)
  • filename (필수): 파일명 (검색 결과의 ntceSpecFileNm1)
  • department_profile (선택): 부서 설명 (입력 시 전략 분석 포함)

지원 형식:

  • HWP/HWPX: 한글 문서 (주요 형식)
  • PDF: 이미지 기반 PDF는 제외
  • DOCX: MS Word 문서
  • XLSX: Excel 스프레드시트
  • ZIP: 자동으로 내부 파일 선택 (제안요청서 우선)

예시 질문:

위 공고의 첨부파일을 분석해줘. 우리 팀은 AI 개발팀이야.

분석 결과:

  • Fit Score (0-100): 팀과 프로젝트의 적합도
  • Core Tasks: 팀이 수행할 핵심 업무
  • Winning Strategy: 입찰 전략 3가지
  • Risk Factors: 위험 요소 (기술스택, 일정, 페널티 등)

Usage Examples

기본 검색

Q: 나라장터에서 "시스템 개발" 키워드로 입찰공고를 검색해줘

A: 🔍 Found 15 bid notice(s) total, 8 still open for keyword: '시스템 개발'
   📅 Search period: 20260109 ~ 20260116

   ## 1. AI 기반 고객관리 시스템 개발 용역
      📌 공고번호: 20260112345-00
      🏢 수요기관: 서울시청
      ⏰ 마감일시: 202601201430
      📎 제안요청서: [다운로드 링크]

맞춤형 추천

Q: 우리 팀은 React 기반 웹 프론트엔드 개발 전문팀이야. "플랫폼 구축" 키워드로 우리 팀에 맞는 입찰공고 Top 5를 추천해줘

A: 🎯 Department-Filtered Bid Search Results

   📋 Department Profile: React 기반 웹 프론트엔드 개발 전문팀
   🔍 Keyword: 플랫폼 구축
   📊 Total Open Bids: 22 (out of 30 total)

   **Top 5 Recommendations:**

   1. ✅ 시민참여 플랫폼 구축 (적합도 95점)
      - React/TypeScript 기반 웹 프론트엔드 구축 명시
      - UI/UX 디자인 역량 중요
   ...

전략 분석

Q: 위 1번 공고의 첨부파일을 분석해줘

A: 📄 Bid Document Analysis

   📎 File: 제안요청서_시민참여플랫폼.hwp

   ## Strategic Analysis

   **Fit Score:** 92/100
   - React 18, TypeScript, Tailwind CSS 기술스택 요구
   - 반응형 웹 디자인 및 접근성(WCAG 2.1) 준수 필요

   **Core Tasks:**
   1. React 기반 SPA(Single Page Application) 개발
   2. 사용자 대시보드 및 관리자 콘솔 UI 구현
   3. REST API 연동 및 상태 관리 (Redux/Zustand)

   **Winning Strategy:**
   1. 포트폴리오에서 정부기관 반응형 웹 사례 강조
   2. 접근성 준수 경험 및 웹 표준 인증서 제시
   3. React 성능 최적화 기법 (Code Splitting, Lazy Loading) 강조

   **Risk Factors:**
   - ⚠️ 개발 기간 3개월로 촉박함 (일반적으로 4-5개월 소요)
   - ⚠️ 지체상금: 일 0.1% (최대 10%)
   - ✅ 기술스택은 팀 역량과 100% 일치

Troubleshooting

1. ValueError: NARA_API_KEY environment variable is required

원인: API 키가 환경변수로 설정되지 않았습니다.

해결 방법:

  • Claude Desktop 설정 파일의 env 섹션에 NARA_API_KEY 추가
  • Claude Desktop 재시작

2. API Error (Code: 03 - No Data)

원인: 검색 결과가 없거나, 최근 7일간 해당 키워드의 공고가 없습니다.

해결 방법:

  • 다른 키워드로 검색 시도
  • 검색 기간을 확장하고 싶다면 개발자에게 문의

3. API Error (Code: 20 - Access Denied)

원인: API 키가 잘못되었거나 활용신청이 승인되지 않았습니다.

해결 방법:

4. HWP 파일 추출 실패

원인: DRM/암호화된 HWP 파일이거나 비표준 인코딩입니다.

해결 방법:

  • 원본 링크에서 수동 다운로드 시도
  • PDF 버전 파일이 있는지 확인

API Information

  • 데이터 출처: 조달청 나라장터 (Korea Public Procurement Service)
  • API 서비스: BidPublicInfoService
  • 엔드포인트: getBidPblancListInfoServcPPSSrch
  • 공고 유형: 용역 (Service) - 컨설팅, 개발, SI 프로젝트
  • 검색 기간: 최근 7일 (마감되지 않은 공고 비율 최적화)
  • 필터링: 마감일시 기준 자동 필터링

참고:

  • 물품 공고: 엔드포인트 변경 필요 (getBidPblancListInfoThngPPSSrch)
  • 공사 공고: 엔드포인트 변경 필요 (getBidPblancListInfoCnstwkPPSSrch)

Technical Stack

  • Python: 3.10+
  • MCP SDK: mcp[cli] - Model Context Protocol server framework
  • HTTP Client: httpx - Async HTTP requests
  • File Extraction:
    • olefile - HWP (MS OLE format)
    • pypdf - PDF text extraction
    • python-docx - DOCX parsing
    • openpyxl - XLSX reading

Project Structure

naraMcp/
├── server.py              # Main MCP server
├── file_extractor.py      # Multi-format file text extraction
├── pyproject.toml         # Python project metadata
├── requirements.txt       # Python dependencies
├── README.md              # This file
├── CLAUDE.md              # Developer guide
├── SMITHERY_GUIDE.md      # Publishing guide
└── LICENSE                # MIT License

Development

Local Testing

# Set environment variable
export NARA_API_KEY="your_service_key_here"  # MacOS/Linux
set NARA_API_KEY=your_service_key_here       # Windows

# Run server
python server.py

Testing with MCP Inspector

# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Run with inspector
mcp-inspector python server.py

Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with clear commit messages
  4. Test thoroughly with real API calls
  5. Submit a Pull Request

License

MIT License - see LICENSE file for details

Author

Datajang (GitHub)

Links

  • Repository: https://github.com/Datajang/nara-mcp-server
  • Issues: https://github.com/Datajang/nara-mcp-server/issues
  • 공공데이터포털: https://www.data.go.kr/
  • 나라장터: https://www.g2b.go.kr/

Acknowledgments

  • 조달청 나라장터 for providing the public API
  • Anthropic for the MCP protocol
  • Korean government for open data initiatives

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选