nace-mcp について
nace-mcpは、NACE Rev. 2.1に基づいて経済活動を特定するAIエージェント向けMCPサーバーです。分類階層の閲覧、コード照会、テキスト検索、ファジーマッチに対応し、全データを一度に返しません。
主な機能
- 01コードの詳細照会
- 02分類階層の閲覧
- 03活動ラベルのテキスト検索
- 04説明文とコードのファジーマッチ
- 05理由付き候補の順位表示
活用シーン
- 01説明文から事業活動を分類する
- 02コードと親コードを確認する
- 03経済分野のコードを調べる
MCP 対応
MCPクライアントに、コード照会、階層閲覧、ラベル検索、ファジーマッチの4種類のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| code | string | はい | NACE コード。例:'A'、'01'、'01.1'、'01.11' |
詳細
nace-mcp
AI エージェント向けに NACE Rev. 2.1 の経済活動分類コードを公開する MCP サーバーです。
NACE(経済活動分類)は、経済活動を分類するための欧州標準です。このサーバーは起動時に1,047件すべてのコードをメモリに読み込み、データセット全体をエージェントに一括で出力することなく、コードの閲覧、照会、検索、あいまい一致に対応する4つのツールを提供します。
MCP の設定
Claude(またはMCP互換クライアント)の設定に追加します。
{
"mcpServers": {
"nace-mcp": {
"command": "npx",
"args": ["nace-mcp"]
}
}
}
ツール
nace_get(code)
単一のNACEコードの詳細情報を返します。
入力: code — 例:「"A"」「"01"」「"25.1"」「"25.11"」
出力例:
{
"code": "95.31",
"label": "Repair and maintenance of motor vehicles",
"level": "class",
"parent": "95.3"
}
nace_browse(parent_code?)
コードの直下にある子項目を返します(簡潔表示:コードとラベルのみ)。parent_code を省略すると、22の最上位セクションすべてを一覧表示します。最大50件の結果を返します。
入力: parent_code(任意)— 例:「"C"」「"25"」「"25.1"」
例 — nace_browse()(引数なし):
[
{ "code": "A", "label": "Agriculture, forestry and fishing" },
{ "code": "B", "label": "Mining and quarrying" },
{ "code": "C", "label": "Manufacturing" },
...
]
例 — nace_browse("J"):
[
{ "code": "58", "label": "Publishing activities" },
{ "code": "59", "label": "Motion picture, video and television programme production, sound recording and music publishing activities" },
{ "code": "60", "label": "Programming, broadcasting, news agency and other content distribution activities" },
...
]
nace_search(query)
すべての活動ラベルを対象に、大文字と小文字を区別せず部分一致検索します。最大10件の一致結果を返します。
入力: query — 例:「"software"」「"fishing"」「"consulting"」
例 — nace_search("software"):
[
{ "code": "58.1", "label": "Publishing of books, newspapers and other publishing activities, except software publishing", "level": "group" },
{ "code": "58.19", "label": "Other publishing activities, except software publishing", "level": "class" },
{ "code": "58.2", "label": "Software publishing", "level": "group" },
{ "code": "58.29", "label": "Other software publishing", "level": "class" }
]
nace_suggest(activity_description)
自由記述の説明をNACEコードにあいまい一致させます。入力をトークン化し、一致した用語に基づいてスコアを付け、簡単な説明とともに上位5件の候補を返します。分類を行うAIエージェント向けに設計されています。
入力: activity_description — 経済活動の自由記述による説明
例 — nace_suggest("computer programming software development consultancy"):
[
{
"code": "62",
"label": "Computer programming, consultancy and related activities",
"level": "division",
"reason": "Matched: \"computer\", \"programming\", \"consultancy\""
},
{
"code": "62.1",
"label": "Computer programming activities",
"level": "group",
"reason": "Matched: \"computer\", \"programming\""
},
{
"code": "62.10",
"label": "Computer programming activities",
"level": "class",
"reason": "Matched: \"computer\", \"programming\""
},
...
]
ヒント: 英語以外の説明(例:ドイツ語の「KFZ Mechaniker」)の場合は、
nace_suggestを呼び出す前に英語で言い換えてください。
プロンプトの例
ここでは、AI エージェントが実際にツールをどのように使うかを示します。
「自動車修理工場に該当するNACEコードは何ですか?」
エージェントは英語の説明を使って nace_suggest を呼び出します。
nace_suggest("motor vehicle repair maintenance workshop")
[
{
"code": "95",
"label": "Repair and maintenance of computers, personal and household goods, and motor vehicles and motorcycles",
"level": "division",
"reason": "Matched: \"motor\", \"vehicle\", \"repair\", \"maintenance\""
},
{
"code": "95.3",
"label": "Repair and maintenance of motor vehicles and motorcycles",
"level": "group",
"reason": "Matched: \"motor\", \"vehicle\", \"repair\", \"maintenance\""
},
{
"code": "95.31",
"label": "Repair and maintenance of motor vehicles",
"level": "class",
"reason": "Matched: \"motor\", \"vehicle\", \"repair\", \"maintenance\""
}
]
次に、最適な候補について nace_get("95.31") を使って詳細を確認し、親コードの階層を確かめます。
{
"code": "95.31",
"label": "Repair and maintenance of motor vehicles",
"level": "class",
"parent": "95.3"
}
結果: 95.31 は自動車修理工場に該当する正しいクラスレベルのコードです。
「パン屋に該当するNACEコードは何ですか?」
nace_suggest("bakery bread pastry production")
[
{
"code": "10.71",
"label": "Manufacture of bread; manufacture of fresh pastry goods and cakes",
"level": "class",
"reason": "Matched: \"bread\", \"pastry\""
}
]
結果: 10.71 — 最初の候補が完全一致するため、追加の確認は不要です。
「情報通信セクターを調べる」
エージェントは階層を上から順に閲覧します。
nace_browse("J")
[
{ "code": "58", "label": "Publishing activities" },
{ "code": "59", "label": "Motion picture, video and television programme production, sound recording and music publishing activities" },
{ "code": "60", "label": "Programming, broadcasting, news agency and other content distribution activities" },
{ "code": "61", "label": "Telecommunications" },
{ "code": "62", "label": "Computer programming, consultancy and related activities" },
{ "code": "63", "label": "Information service activities" }
]
続いて、62の分類を詳しく確認します。
nace_browse("62")
[
{ "code": "62.1", "label": "Computer programming activities" },
{ "code": "62.2", "label": "Computer consultancy and computer facilities management activities" },
{ "code": "62.3", "label": "Computer facilities management activities" },
{ "code": "62.9", "label": "Other information technology and computer service activities" }
]
データ
- 出典: jnsprnw/nace-codes — Eurostat公式のNACE Rev. 2.1分類を、コミュニティがJSONに変換して管理しているデータ
- 収録範囲: 22セクション(A~U)にわたる1,047件、4階層(セクション → 部門 → グループ → クラス)
- 権威ある情報源: Eurostat NACE Rev. 2.1
開発
npm install
npm run build # compile TypeScript → dist/
node dist/index.js # run the server (listens on stdio)
MCP Inspectorで確認するには:
npx @modelcontextprotocol/inspector node dist/index.js
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。