job-mcp-server
README.md
# job-mcp-server
기획재정부(공공기관 경영정보 공개시스템, 알리오) 채용정보 조회서비스 Open API를 호출하는 MCP(Model Context Protocol) 서버입니다.
## 사전 준비: 서비스키 발급
1. [공공데이터포털](https://www.data.go.kr) 회원가입
2. [기획재정부_공공기관 채용정보 조회서비스](https://www.data.go.kr/data/15125273/openapi.do) 활용신청
3. 승인 완료 후 마이페이지 > 활용신청 현황에서 서비스키(일반 인증키, Decoding) 확인
4. 아래 환경변수에 설정
## 설치 및 빌드
```bash
git clone https://github.com/iapke486-arch/job-mcp-server.git
cd job-mcp-server
npm install
npm run build
```
## 실행
### 직접 실행 (테스트)
```bash
JOB_API_KEY=발급받은서비스키 node build/index.js
```
Windows PowerShell:
```powershell
$env:JOB_API_KEY = "발급받은서비스키"
node build/index.js
```
### Claude Desktop / Claude Code 설정
#### Claude Desktop
`claude_desktop_config.json`(보통 `%APPDATA%\Claude\claude_desktop_config.json`)에 아래와 같이 등록합니다.
```json
{
"mcpServers": {
"job": {
"type": "stdio",
"command": "node",
"args": ["/path/to/job-mcp-server/build/index.js"],
"env": {
"JOB_API_KEY": "발급받은서비스키"
}
}
}
}
```
경로 예시:
- Windows: `C:/Users/YourName/Documents/pke/job-mcp-server/build/index.js`
- macOS/Linux: `/home/username/projects/job-mcp-server/build/index.js`
#### Claude Code CLI
```bash
claude mcp add --env JOB_API_KEY=발급받은서비스키 -- node /path/to/job-mcp-server/build/index.js
```
### 연결 확인
Claude Code: `/mcp` 목록에서 `job` 서버가 ✓ Connected 상태인지 확인하세요.
## 제공 도구 (Tools)
| Tool | 설명 |
|---|---|
| `job_search_recruitments` | 공공기관 채용공고 목록 조회. 고용형태/채용구분/근무지역/NCS 직무분야/학력조건/진행중여부로 필터링, 기관명·제목 키워드로 클라이언트 측 부분 필터링 지원 |
| `job_get_codes` | 필터에 사용하는 공통코드(고용형태, 채용구분, 근무지역, NCS 분류, 학력조건, 첨부유형, 기관유형, 주무부처) 조회 |
## 참고
- 원본 API는 JSON을 직접 지원하므로 별도 XML 파싱 없이 그대로 반환합니다.
- 기관명(`instNm`)·공고제목(`recrutPbancTtl`) 키워드 검색은 API 자체에서 지원하지 않아, `job_search_recruitments`가 조회된 페이지(`numOfRows`) 범위 내에서만 부분 일치로 필터링합니다. 특정 기관/제목을 폭넓게 찾으려면 `numOfRows`를 늘리거나 `pblntInstCd` 등 서버 필터를 함께 사용하세요.
- 코드값(`hireTypeLst`, `recrutSe`, `workRgnLst`, `ncsCdLst`, `acbgCondLst`)은 `job_get_codes`로 조회한 값을 사용해야 합니다. 출처: `MOEF_NKOD_DB_05_코드 정의서_v1.2`.
- 서비스키가 만료되었거나 잘못된 경우, API가 반환하는 원본 오류 메시지를 그대로 전달합니다.
TDQS
A4.2/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: one retrieves codes for filtering, the other searches for job postings. There is no overlap or ambiguity between them.
Naming Consistency5/5
Both tools follow the consistent verb_noun pattern with the 'job_' prefix, making them predictable and easy to understand.
Tool Count3/5
With only two tools, the server feels minimal. While it covers the basic search and code retrieval, additional tools for details or application would be expected for a recruitment domain.
Completeness2/5
The tool set lacks key operations such as retrieving details of a specific recruitment, filtering by multiple criteria simultaneously, or handling applications. This leaves significant gaps for a recruitment workflow.
Maintenance
ActivityInactive
ResponsivenessNo issues