loading…
Search for a command to run...
loading…
Provides access to Korea Petroleum Corporation's Opinet fuel price API for South Korea. Enables querying of current national and regional fuel averages, recent
Provides access to Korea Petroleum Corporation's Opinet fuel price API for South Korea. Enables querying of current national and regional fuel averages, recent price trends, lowest-price stations, and nearby gas station details through natural language.
한국석유공사 오피넷(Opinet) 유가정보 무료 API를 Claude / Claude Code 등 MCP 클라이언트에서 사용할 수 있게 해주는 MCP 서버입니다.
@modelcontextprotocol/sdkfetch 사용)npm 레지스트리에 publish 후 사용 가능. publish는 아래 "배포" 섹션 참고.
OPINET_API_KEY=발급키 npx -y opinet-mcp
npm install -g opinet-mcp
OPINET_API_KEY=발급키 opinet-mcp
git clone https://github.com/KimJintak/opinet-mcp.git
cd opinet-mcp
npm install
npm run build
OPINET_API_KEY=발급키 node dist/index.js
설정 파일 위치:
| OS | 경로 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"opinet": {
"command": "npx",
"args": ["-y", "opinet-mcp"],
"env": {
"OPINET_API_KEY": "발급받은_키"
}
}
}
}
{
"mcpServers": {
"opinet": {
"command": "opinet-mcp",
"env": {
"OPINET_API_KEY": "발급받은_키"
}
}
}
}
{
"mcpServers": {
"opinet": {
"command": "node",
"args": ["/절대/경로/opinet-mcp/dist/index.js"],
"env": {
"OPINET_API_KEY": "발급받은_키"
}
}
}
}
⚠️ Claude Desktop은 PATH를 제한적으로 상속받습니다.
command: "node"또는"npx"로 실행 시 못 찾는다면 절대경로(/opt/homebrew/bin/node,/usr/local/bin/npx등)로 지정하세요. 터미널에서which node/which npx로 확인.
설정 후 Claude Desktop 완전 종료(Cmd+Q) → 재실행하면 도구 아이콘에서 6개 툴을 확인할 수 있습니다.
위 JSON 구조와 동일하게 각 클라이언트의 MCP 서버 설정 파일에 추가하면 됩니다.
| Tool name | 오피넷 엔드포인트 | 설명 |
|---|---|---|
get_national_average_price |
avgAllPrice.do |
전국 주유소 평균가격 (현재) |
get_sido_average_price |
avgSidoPrice.do |
시도별 주유소 평균가격 (현재) |
get_recent_7days_price |
avgRecentPrice.do |
최근 7일간 전국 일일 평균가격 (추세) |
get_lowest_price_top20 |
lowTop10.do |
전국/지역별 최저가 주유소 TOP20 |
search_stations_around |
aroundAll.do |
KATEC 좌표 기준 반경 내 주유소 검색 |
get_station_detail |
detailById.do |
주유소 ID(UNI_ID)로 상세정보 조회 |
제품코드 (prodcd)
| 코드 | 제품 |
|---|---|
B027 |
보통휘발유 |
D047 |
자동차경유 |
B034 |
고급휘발유 |
C004 |
실내등유 |
K015 |
자동차부탄 |
시도코드 (sido / area 2자리)
| 코드 | 지역 | 코드 | 지역 |
|---|---|---|---|
| 01 | 서울 | 10 | 부산 |
| 02 | 경기 | 11 | 제주 |
| 03 | 강원 | 12 | 대구 |
| 04 | 충북 | 13 | 인천 |
| 05 | 충남 | 14 | 광주 |
| 06 | 전북 | 15 | 대전 |
| 07 | 전남 | 16 | 울산 |
| 08 | 경북 | 17 | 세종 |
| 09 | 경남 |
시군구 단위는 4자리 코드입니다 (예:
0207= 경기 광명시). 오피넷areaCode.do엔드포인트로 별도 조회 가능.
search_stations_around의 입력 좌표(x, y)와 모든 응답의 GIS_X_COOR / GIS_Y_COOR는 KATEC 좌표계입니다. WGS84(위경도)와 다르므로, 위경도를 입력으로 받으려면 클라이언트에서 KATEC으로 변환 후 호출하세요.
get_national_average_priceget_sido_average_price (sido=01, prodcd=D047)get_recent_7days_price (prodcd=B027)get_lowest_price_top20 (prodcd=B027, area=0207, cnt=5)get_station_detailAPI 키 없이 실행 → 환경변수 안내 후 종료되면 빌드 OK:
node dist/index.js
API 키가 있을 때, stdio로 직접 호출:
export OPINET_API_KEY=발급키
# 등록된 툴 목록 확인
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.js
# 전국 평균가격 호출
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_national_average_price","arguments":{}}}' | node dist/index.js
npm install
npm run dev # tsc --watch
npm run build # 한 번 빌드
npm start # dist/index.js 실행
npm run clean # dist 삭제
프로젝트 구조:
opinet-mcp/
├── src/
│ └── index.ts # MCP 서버 본체
├── dist/ # 빌드 결과물 (배포 대상)
├── package.json
├── tsconfig.json
├── README.md
└── LICENSE
처음 publish할 때:
# 1) npm 로그인
npm login
# 2) package.json의 author / repository / name 확인 (필요하면 scoped: @yourname/opinet-mcp)
# 3) 빌드 + publish (prepublishOnly에서 자동 빌드됨)
npm publish
# scoped 패키지면
npm publish --access public
이후 버전 업:
npm version patch # 0.1.0 -> 0.1.1
npm publish
publish 후에는 누구나 npx -y opinet-mcp 로 즉시 사용 가능합니다.
prepare스크립트가 있어서npm install시 자동 빌드됩니다. 즉, GitHub에서 직접 설치 (npm i github:KimJintak/opinet-mcp) 해도 동작합니다.
MIT.
데이터 출처는 한국석유공사 오피넷이며, 데이터 사용 시 오피넷 이용 약관을 따르시기 바랍니다.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"opinet-mcp": {
"command": "npx",
"args": []
}
}
}