Skip to main content
Glama
DeJo90

nace-mcp

by DeJo90

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.1

  • Disambiguation5/5

    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.

    Naming Consistency5/5

    All tools follow a consistent 'nace_<verb>' pattern (get, browse, search, suggest). This is a uniform and predictable naming convention.

    Tool Count5/5

    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.

    Completeness5/5

    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.

  • Average 4.2/5 across 4 of 4 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the return fields (code, label, level, parent code), which is helpful, but it does not mention error cases, edge behavior (e.g., invalid code), or any side effects—though this is likely a read-only operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, well-structured sentence that front-loads the main purpose and necessary output details. No wasted words or redundant information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-parameter lookup tool with no output schema, the description is largely complete: it states the purpose and enumerates the returned fields. Minor gaps include no mention of error behavior or formatting, but these are not critical for typical use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, with the single parameter 'code' documented and given examples. The description itself does not add parameter-level detail, so it meets the baseline but provides no additional semantic value beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Returns full details') and identifies the resource ('a single NACE Rev. 2.1 code'), clearly distinguishing it from sibling tools like browse, search, and suggest by emphasizing 'single' code retrieval.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It clearly implies this tool is for fetching details of a known, single NACE code, contrasting with broader operations like browse or search. However, it does not explicitly name alternatives or state when not to use it, so it falls just short of full guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden and discloses key behaviors: case-insensitivity, substring matching, full corpus coverage (1,047 entries), a result cap of 10, and the exact fields returned (code, label, level). This goes beyond a basic summary and sets clear expectations, though it does not mention edge cases like empty queries or result ordering.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is exactly two sentences, front-loaded with the primary action and resource. Every phrase is informative: case-insensitive, substring, full scope, result limit, and return fields. There is no redundant or irrelevant content.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-parameter search tool with no output schema, the description is sufficient. It explains the search behavior, the scope, the limit, and the return structure (code, label, level). Without an output schema, this description fills the necessary gaps for an agent to invoke the tool and understand the response.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already provides 100% coverage for the single 'query' parameter by describing it as a 'substring to search for'. The description reinforces this and adds the case-insensitive attribute, but the core parameter semantic is already fully captured in the schema. Baseline 3 is appropriate as the description adds minimal supplementary meaning.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'search' with specific technical characteristics ('case-insensitive substring search'), the resource ('NACE Rev. 2.1 activity labels'), and the scope ('all 1,047'). This distinguishes it from sibling tools like nace_get, nace_browse, and nace_suggest by clarifying it is a flexible search rather than a targeted lookup or hierarchical navigation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description conveys when to use the tool: when you need to find activities by partial label text. However, it does not explicitly state alternatives or provide exclusion criteria (e.g., 'for exact codes use nace_get'). The usage is implied by the term 'search' and the return of matches, but the lack of direct sibling comparisons leaves guidance implicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full disclosure burden. It explains the internal process (tokenizes, scores by matched terms) and the output behavior (returns top 5 with a reason), which is transparent about how results are generated. It does not detail edge cases like zero matches or partial matches, but the provided context is sufficient for a simple read-like tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three sentences, each earning its place: the first defines the core function, the second details the method, and the third gives the use case. No fluff, no unnecessary repetition, and it is front-loaded with the primary action.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a one-parameter tool with no output schema, the description covers the essential aspects: what it does, how it works, and when to use it. It mentions the output shape (top 5 with reason) which is sufficient. Missing only minor details like behavior with ambiguous/empty input, but overall it is complete for its complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 100% coverage for the single parameter 'activity_description', already describing it as a free-text description. The tool description merely echoes 'free-text activity description' without adding new semantics, so it provides no value beyond the schema. Baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Fuzzy-match') and resource ('free-text activity description to NACE Rev. 2.1 codes'), clearly distinguishing it from sibling tools like nace_search (likely exact/match-oriented) and nace_browse (hierarchical). It states the output (top 5 candidates with reason), making the tool's function unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'Ideal for AI agents classifying business activities' provides clear context for when to use this tool. However, it does not explicitly mention alternatives or exclusions (e.g., 'use nace_search for exact code lookup'), so it lacks the direct comparison that would earn a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Without annotations, the description carries full burden and excellently discloses key behaviors: results are limited to 'direct children' (non-recursive), return fields are restricted to 'code + label only', and results are capped at 'Max 50'. These are critical runtime traits an agent needs to know.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with the primary purpose, and every sentence delivers distinct information: functionality, response scope, optional behavior, and result limit. No fluff or repetition.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a single-optional-parameter tool with no output schema, the description sufficiently covers all necessary context: what is returned (code+label), how to get top-level sections, the result cap, and the non-recursive nature. An agent has enough information to invoke correctly and interpret results.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100% since the parameter's description ('Parent NACE code. Omit to list top-level sections.') already explains core semantics. The tool description adds the 'direct children' detail, but that is more about output behavior than parameter syntax, so the description adds minimal value beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function: 'Returns direct children of a NACE code', with a specific scope ('code + label only'). This distinguishes it from sibling tools like nace_get (single item), nace_search (query matching), and nace_suggest (autocomplete) by explicitly framing it as a tree-browsing operation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear usage context: 'Omit parent_code to get all 22 top-level sections' and 'Max 50 results' gives a constraint. However, it does not explicitly mention alternatives or when to prefer this tool over siblings, leaving some room for the agent to infer the browse-vs-search/get distinction.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

nace-mcp MCP server

Copy to your README.md:

Score Badge

nace-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeJo90/nace-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server