nace-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nace-mcp Find NACE code for a car repair shop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nace-mcp
An MCP server exposing NACE Rev. 2.1 economic activity classification codes for AI agents.
NACE (Nomenclature of Economic Activities) is the European standard for classifying economic activities. This server loads all 1,047 codes into memory at startup and provides four tools for browsing, looking up, searching, and fuzzy-matching codes — without ever dumping the full dataset to the agent.
MCP Configuration
Add to your Claude (or any MCP-compatible client) config:
{
"mcpServers": {
"nace-mcp": {
"command": "npx",
"args": ["nace-mcp"]
}
}
}Related MCP server: filed-mcp-server
Tools
nace_get(code)
Returns full details for a single NACE code.
Input: code — e.g. "A", "01", "25.1", "25.11"
Example output:
{
"code": "95.31",
"label": "Repair and maintenance of motor vehicles",
"level": "class",
"parent": "95.3"
}nace_browse(parent_code?)
Returns the direct children of a code (compact: code + label only). Omit parent_code to list all 22 top-level sections. Max 50 results.
Input: parent_code (optional) — e.g. "C", "25", "25.1"
Example — nace_browse() (no argument):
[
{ "code": "A", "label": "Agriculture, forestry and fishing" },
{ "code": "B", "label": "Mining and quarrying" },
{ "code": "C", "label": "Manufacturing" },
...
]Example — 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)
Case-insensitive substring search across all activity labels. Returns up to 10 matches.
Input: query — e.g. "software", "fishing", "consulting"
Example — 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)
Fuzzy-matches a free-text description to NACE codes. Tokenizes the input, scores by matched terms, and returns the top 5 candidates with a brief explanation. Designed for AI agents doing classification.
Input: activity_description — free-text description of the economic activity
Example — 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\""
},
...
]Tip: For non-English descriptions (e.g. German "KFZ Mechaniker"), rephrase in English before calling
nace_suggest.
Prompt Examples
These examples show how an AI agent uses the tools in practice.
"What NACE code applies to a car repair shop?"
The agent calls nace_suggest with an English description:
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\""
}
]The agent then drills into the best match with nace_get("95.31") to confirm the parent chain:
{
"code": "95.31",
"label": "Repair and maintenance of motor vehicles",
"level": "class",
"parent": "95.3"
}Result: 95.31 is the correct class-level code for a car repair shop.
"What NACE code covers a bakery?"
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\""
}
]Result: 10.71 — first candidate is an exact match, no further navigation needed.
"Explore the information & communication sector"
The agent browses the hierarchy top-down:
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" }
]Then zooms into division 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" }
]Data
Source: jnsprnw/nace-codes — community-maintained JSON conversion of the official Eurostat NACE Rev. 2.1 classification
Coverage: 1,047 entries across 22 sections (A–U), 4 levels (section → division → group → class)
Authority: Eurostat NACE Rev. 2.1
Development
npm install
npm run build # compile TypeScript → dist/
node dist/index.js # run the server (listens on stdio)To inspect with the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsAvailable Tools
4 toolsnace_browseA
Returns direct children of a NACE code (code + label only). Omit parent_code to get all 22 top-level sections. Max 50 results.
Inputs: parent_code.
nace_getA
Returns full details for a single NACE Rev. 2.1 code: code, label, level (section/division/group/class), and parent code.
Inputs: code (required).
nace_searchA
Case-insensitive substring search across all 1,047 NACE Rev. 2.1 activity labels. Returns up to 10 matches with code, label, and level.
Inputs: query (required).
nace_suggestA
Fuzzy-match a free-text activity description to NACE Rev. 2.1 codes. Tokenizes the input, scores by matched terms, and returns the top 5 candidates with a reason. Ideal for AI agents classifying business activities.
Inputs: activity_description (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool serves a distinct purpose: exact code lookup, hierarchical browsing, substring search, and fuzzy matching for classification. There is no overlap in functionality, and the descriptions clearly differentiate them.
All tools follow a consistent 'nace_<verb>' pattern (get, browse, search, suggest). This is a uniform and predictable naming convention.
With 4 tools, the server is well-scoped for its purpose. Each tool covers a necessary operation for working with NACE codes, and there is no bloat or redundancy.
The tool set covers the entire workflow: retrieving details, navigating the hierarchy, searching by text, and classifying free-text descriptions. No major functional gaps exist for a NACE classification lookup and browsing service.
Maintenance
Related MCP Connectors
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Hosted MCP server for live public-data APIs and Skills for AI agents.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Open network for AI agents to find, exchange and reuse structured knowledge via MCP and JSON.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for Slovak business registers (RPO) — AI agents can query 1.4M+ Slovak legal entities via Slovakia's official Statistical Office API. Search companies by name, IČO, or get full entity details including legal form, address, and statutory representatives.21MIT
- AlicenseAqualityDmaintenanceAn MCP server that gives AI agents access to US business entity data, enabling searches across 9 state registries, SEC EDGAR filings, federal contracts, and lobbying disclosures.61MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to interact with the SkillShare registry, including searching, reading, creating, and managing resources like skills, MCP configurations, and notes.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to explore, search, and query API definitions from OpenAPI/Swagger JSON files.18 npmMIT