Mcp Statistics Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Statistics Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
国内外の統計データソースにアクセスするためのMCP(Model Context Protocol)サーバーです。LLMから統計データを直接取得できます。
通常の利用では、Cursor や Claude Desktop のチャットで「データを取得して」「グラフを描いて」と依頼し、AI がこのサーバーのツール(`estat_get_data` や `generate_chart` など)を呼び出す形が正しい使い方です。 毎回スクリプトを書いたり node xxx.js を手で実行する必要はありません。
詳しくは docs/MCP_USAGE.md を参照してください。
このMCPサーバーは、以下のデータソースへのアクセスを提供します:
npm installサンプル設定ファイルをコピーして、APIキーを設定します:
cp config.example.json config.json次に config.json を編集して、e-Stat APIキーを設定します:
{
"dataSources": {
"estat": {
"apiKey": "YOUR_ESTAT_API_KEY"
}
}
}重要:config.jsonは.gitignoreに含まれており、GitHubにプッシュされません。APIキーは安全に保管されます。
環境変数を使用する場合(推奨):
環境変数を使用すると、より安全に設定を管理できます:
# .envファイルを作成
cp .env.example .env
# .envファイルを編集してAPIキーを設定
ESTAT_API_KEY=your_actual_api_key_here環境変数は config.json より優先されます。利用可能な環境変数:
ESTAT_API_KEY - e-Stat APIキーESTAT_BASE_URL - e-Stat ベースURL(オプション)ESTAT_ENABLED - e-Statを有効化(true/false)WORLDBANK_BASE_URL - World Bank ベースURL(オプション)WORLDBANK_ENABLED - World Bankを有効化(true/false)OECD_BASE_URL - OECD ベースURL(オプション)OECD_ENABLED - OECDを有効化(true/false)EUROSTAT_BASE_URL - Eurostat ベースURL(オプション)EUROSTAT_ENABLED - Eurostatを有効化(true/false)Note:.envファイルも.gitignoreに含まれており、GitHubにプッシュされません。
APIキーの取得方法:
npm run buildnpm startClaude DesktopやCursorなどのMCPクライアントで使用する場合、設定ファイルに以下を追加します:
~/Library/Application Support/Claude/claude_desktop_config.json){
"mcpServers": {
"statistics": {
"command": "node",
"args": ["/Volumes/OWC Express 1M2/Documents/MCP_statistics/dist/index.js"]
}
}
}.cursor/mcp_config.json){
"mcpServers": {
"statistics": {
"command": "node",
"args": ["/Volumes/OWC Express 1M2/Documents/MCP_statistics/dist/index.js"]
}
}
}設定で有効にしたデータソースおよび共通機能に対応する、次のツールを提供します。
| ツール名 | 説明 | 備考 |
|---|---|---|
estat_search_stats | e-Statで統計表を検索 | e-Stat有効時 |
estat_get_data | e-Statから統計データを取得 | e-Stat有効時 |
worldbank_get_indicator | World Bankの指標データを取得 | World Bank有効時。複数国はセミコロン区切り |
worldbank_search_indicators | World Bankの指標を検索 | World Bank有効時 |
oecd_get_data | OECDのデータを取得(SDMX形式) | OECD有効時 |
eurostat_get_data | Eurostatのデータを取得(JSON-stat形式) | Eurostat有効時 |
export_data | データをCSV/JSONで出力(専門ツール用) | worldbank または estat |
calculate_statistics | 基本統計量(平均・中央値・標準偏差等)を計算 | worldbank または estat |
generate_chart | チャート・グラフを生成(SVG) | worldbank または estat |
#### estat_search_stats 統計表を検索します。
{
searchWord: string; // 検索キーワード
limit?: number; // 取得件数(デフォルト: 10)
}#### estat_get_data 統計データを取得します。
{
statsDataId: string; // 統計表ID
limit?: number; // 取得件数(デフォルト: 100)
}#### worldbank_get_indicator 指標データを取得します。複数国の横断比較が可能です。
{
countryCode: string; // 国コード(例: JP, US, CN。複数国はセミコロン区切り: USA;JPN;CHN)
indicatorCode: string; // 指標コード(例: NY.GDP.MKTP.CD)
startYear?: number; // 開始年
endYear?: number; // 終了年
}複数国比較の例:
countryCode: "USA;JPN" - アメリカと日本のデータを同時取得countryCode: "USA;JPN;CHN" - アメリカ、日本、中国のデータを同時取得#### worldbank_search_indicators 指標を検索します。
{
search?: string; // 検索キーワード
}#### oecd_get_data データを取得します(SDMX形式)。
{
datasetId: string; // データセットID(例: QNA)
filter?: string; // フィルター(例: JPN.GDP.....)
startPeriod?: string; // 開始期間(例: 2020-Q1)
endPeriod?: string; // 終了期間(例: 2024-Q4)
}#### eurostat_get_data データを取得します(JSON-stat形式)。
{
datasetCode: string; // データセットコード(例: nama_10_gdp)
filters?: Record<string, string>; // フィルター
lang?: string; // 言語(EN, DE, FR等)
}#### generate_chart 統計データからチャートやグラフを生成します(SVG形式)。
{
chartType: 'line' | 'bar' | 'pie'; // チャートタイプ
dataSource: 'worldbank' | 'estat'; // データソース
dataParams: { // データソース固有のパラメータ
countryCode?: string; // 国コード(World Bank用、例: USA;JPN)
indicatorCode?: string; // 指標コード(World Bank用、例: NY.GDP.MKTP.CD)
startYear?: number; // 開始年(World Bank用)
endYear?: number; // 終了年(World Bank用)
statsDataId?: string; // 統計表ID(e-Stat用)
limit?: number; // 取得件数(e-Stat用)
},
title?: string; // チャートタイトル
xLabel?: string; // X軸ラベル
yLabel?: string; // Y軸ラベル
width?: number; // チャート幅(デフォルト: 800)
height?: number; // チャート高さ(デフォルト: 400)
}詳細は docs/CHART_GUIDE.md を参照してください。
#### export_data 専門ツール(Python、R、Excel等)で分析しやすい形式(CSV/JSON)でデータを出力します。
{
dataSource: 'worldbank' | 'estat'; // データソース
dataParams: { // データソース固有のパラメータ
countryCode?: string; // 国コード(World Bank用、例: USA;JPN)
indicatorCode?: string; // 指標コード(World Bank用、例: NY.GDP.MKTP.CD)
startYear?: number; // 開始年(World Bank用)
endYear?: number; // 終了年(World Bank用)
statsDataId?: string; // 統計表ID(e-Stat用)
limit?: number; // 取得件数(e-Stat用)
},
format: 'csv' | 'json' | 'json-structured'; // 出力形式
transform?: { // データ変換オプション
asTimeSeries?: { // 時系列形式に変換
dateColumn: string;
valueColumn: string;
groupColumn?: string;
};
asPivot?: { // ピボット形式に変換
indexColumn: string;
columnsColumn: string;
valuesColumn: string;
};
filter?: Record<string, unknown>; // フィルタリング条件
sort?: Array<{ // ソート条件
column: string;
order: 'asc' | 'desc';
}>;
};
}詳細は docs/DATA_EXPORT_GUIDE.md を参照してください。
#### calculate_statistics 統計データから基本的な統計量(平均、中央値、標準偏差など)を計算します。
{
dataSource: 'worldbank' | 'estat'; // データソース
dataParams: { // データソース固有のパラメータ
countryCode?: string; // 国コード(World Bank用、例: USA;JPN)
indicatorCode?: string; // 指標コード(World Bank用、例: NY.GDP.MKTP.CD)
startYear?: number; // 開始年(World Bank用)
endYear?: number; // 終了年(World Bank用)
statsDataId?: string; // 統計表ID(e-Stat用)
limit?: number; // 取得件数(e-Stat用)
},
statistics: Array< // 計算する統計量
'mean' | 'median' | 'mode' | 'std' | 'variance' |
'min' | 'max' | 'range' | 'q1' | 'q3' | 'iqr'
>;
groupBy?: string; // グループ化する列(例: country_code, year)
valueColumn?: string; // 値の列名(デフォルト: value)
}詳細は docs/STATISTICS_GUIDE.md を参照してください。
e-Statで「人口」に関する統計を検索してください日本の2020年から2023年のGDPデータを取得してください
(国コード: JP, 指標コード: NY.GDP.MKTP.CD)OECDから日本の四半期GDPデータを取得してください
(データセットID: QNA)日米のGDPを折れ線グラフで比較してください
(国コード: USA;JPN, 指標コード: NY.GDP.MKTP.CD, 期間: 2020-2023年)詳細は docs/CHART_GUIDE.md を参照してください。
各データソースのライセンス:
詳細は各データソースの公式サイトをご確認ください。
「Please tell me who you are」などと出る場合は、Git の user.name と user.email が未設定です。リポジトリで git config user.name "名前" と git config user.email "メール" を設定してください。詳しくは docs/GITHUB_AUTH_CURSOR.md の冒頭を参照。
Cursor やターミナルで git push が「could not read Username」などで失敗する場合の対処は docs/GITHUB_AUTH_CURSOR.md を参照してください(GitHub 拡張のサインイン・PAT・SSH の3通り)。
e-Statで「API key error」が出る場合:
config.json の apiKey が正しく設定されているか確認TypeScriptのコンパイルエラーが出る場合:
npm install
npm run buildデータソースに接続できない場合:
npm install してから package-lock.json をコミット・プッシュする。npm ci && npm run build && npm test && npm run lint を実行し、同じエラーが出ないか確認する。Actions のログでどのステップで失敗しているかを確認すると原因を特定しやすい。
テストが失敗する場合:
# 依存関係を再インストール
npm install
# テストを再実行
npm testこのリポジトリには MCP サーバー本体のみ を含めています。.cursor/(IDE設定)、output/(生成チャート・データ)、scripts/(開発用スクリプト)は .gitignore で除外しており、必要に応じてローカルで作成・利用してください。
MCP_statistics/
├── docs/ # ドキュメント
│ ├── README.md # ドキュメント一覧
│ ├── MCP_USAGE.md # MCPの正しい使い方
│ ├── CHART_GUIDE.md # チャート生成の使い方
│ ├── GITHUB_AUTH_CURSOR.md
│ ├── DATA_EXPORT_GUIDE.md
│ ├── STATISTICS_GUIDE.md
│ ├── COMPARISON_EXAMPLES.md
│ ├── PROMPT_EXAMPLES.md
│ ├── SETUP.md
│ └── STATISTICAL_FEATURES_PROPOSAL.md
├── src/
│ ├── index.ts # メインサーバー
│ ├── config.ts # 設定読み込み
│ ├── types.ts # 型定義
│ ├── validation.ts # 入力バリデーション
│ ├── errors.ts # エラーハンドリング
│ ├── logger.ts # ログ機能
│ ├── retry.ts # リトライ機能
│ ├── rateLimiter.ts # レート制限
│ ├── __tests__/ # テストファイル
│ └── sources/
│ ├── estat.ts # e-Statクライアント
│ ├── worldbank.ts # World Bankクライアント
│ ├── oecd.ts # OECDクライアント
│ └── eurostat.ts # Eurostatクライアント
├── .github/
│ └── workflows/
│ └── ci.yml # CI/CDパイプライン
├── config.json # 設定ファイル
├── package.json
├── tsconfig.json
├── jest.config.js # Jest設定
└── .eslintrc.json # ESLint設定npm run dev # TypeScriptの変更を監視# テストを実行
npm test
# ウォッチモードでテストを実行
npm run test:watch
# カバレッジレポートを生成
npm run test:coverage# リントを実行
npm run lint
# 自動修正
npm run lint:fixGitHub Actionsを使用して、プッシュ時に自動的に以下を実行します:
ワークフローファイル: .github/workflows/ci.yml
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.