Atlas / MCP servers / atushi1841 / japan-fuel-price-mcp

japan-fuel-price-mcpSAFE

mcp/atushi1841/japan-fuel-price-mcp

MCP server: Japan weekly gasoline/diesel/kerosene retail prices from METI Agency for Natural Resources and Energy official XLSX (47 prefectures + nationwide, since 1990)

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
5 5r · 0w · 0d
Transport
stdio · streamable-http
License
—
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

MCPサーバー: 日本のガソリン・軽油・灯油の週次小売価格を、資源エネルギー庁(METI)公式統計XLSXからAIエージェントに提供します。

  • データソース: 資源エネルギー庁 給油所小売価格調査 公式XLSX(毎週更新、1990年〜の全国・都道府県別平均現金価格)
  • 利用規約: 政府標準利用規約2.0(出典明示で商用利用可)
  • 単位: ガソリン・軽油 = 円/L、灯油 = 円/18L(消費税込み)

Tools

prefecture は漢字・ローマ字・「都/府/県」付きのいずれでも可(東京 / tokyo / 東京都)。北海道・沖縄はMETI調査の局単位データを都道府県として提供。

動作

  1. 初回呼び出しで最新 YYMMDDs5.xlsx を取得(ブラウザUA必須)、openpyxlでパースしJSONキャッシュ化
  2. 以後6時間はキャッシュから即答、TTL切れで新週ファイルをチェック
  3. METIのレート制限/障害時はビルド時同梱のシードキャッシュ(data/fuel_prices.json)にフォールバック — ツールが500になることはない

MCP接続

Apify Standby モード(streamable HTTP):

https://api.apify.com/v2/acts//mcp
Authorization: Bearer 

ローカル開発

pip install -r requirements.txt
python3 -m pytest tests/ -q          # 14 tests, network-stubbed, seed cache
PORT=3999 python3 -m src.main &      # shim経由でApify SDK不要
python3 tests/http_smoke.py http://localhost:3999/mcp

シード更新(週1回、木曜の公開後):

python3 scripts/refresh_seed.py          # METIから取得して data/fuel_prices.json 再生成
python3 scripts/refresh_seed.py path/to/YYMMDDs5.xlsx   # 手元DL分から生成(レート制限回避)
git add data/fuel_prices.json && git commit -m "data: seed refresh" && git push

Deploy

GitHub連携 Apify Actor(usesStandbyMode, webServerMcpPath=/mcp)。push後にビルドAPIを叩く:

curl -X POST "https://api.apify.com/v2/acts//builds?version=0.1&tag=latest&token=$APIFY_TOKEN"

出典表記

Source: Agency for Natural Resources and Energy (METI), Petroleum Produc
Read from source at commit d8c5d1876b02OBSERVED · 2026-10-09
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add japan-fuel-price-mcp -- uvx japan-fuel-price-mcp
claude-desktop
{
  "mcpServers": {
    "japan-fuel-price-mcp": {
      "command": "uvx",
      "args": [
        "japan-fuel-price-mcp"
      ]
    }
  }
}
03

Exposed tools (5)

5 read · 0 write · 0 destructive.

ToolRiskDescription
cheapest_prefecturesreadRank Japan
get_fuel_price_historyreadGet weekly retail fuel price history for a Japanese prefecture or nationwide.
get_latest_fuel_pricereadGet the latest weekly average retail fuel price for a Japanese prefecture or nationwide.
list_fuel_regionsreadList all queryable regions (47 prefectures + regional bureaus + nationwide) with romaji aliases, and the 5 fuel products with their units.
national_fuel_trendreadGet nationwide weekly fuel price trend across multiple products — an inflation/macro indicator for Japan.
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (4 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (5)

LOWInventory / provenance · inv.hidden_file · CWE-1104
.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
requirements.txt
apify, fastmcp, mcp, uvicorn, openpyxl
Why it matters. 5 requirement(s) not pinned with ==
Fix. pin exact versions
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:58
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/builds?version=0.1&tag=latest&token=$APIFY_TOKEN"
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
data/fuel_prices.json
data/fuel_prices.json
Why it matters. 1987724 bytes not read

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-09 · audit v0.4.1 · source sha d8c5d1876b02full audit observations/trust-audit/mcp-server/atushi1841__japan-fuel-price-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-09d8c5d1876b02SAFEB89first audit
06

Questions

What is the japan-fuel-price-mcp MCP server?

MCP server: Japan weekly gasoline/diesel/kerosene retail prices from METI Agency for Natural Resources and Energy official XLSX (47 prefectures + nationwide, since 1990)

What tools does japan-fuel-price-mcp expose?

5 in total: 5 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is japan-fuel-price-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does japan-fuel-price-mcp need?

No credential environment variables were found in its source, so it appears to need none.

How does japan-fuel-price-mcp run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on PyPI as japan-fuel-price-mcp.

How current is this page?

The grade is for one exact copy of the source (d8c5d1876b02), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement