Skip to main content
Glama
asgard-ai-platform

mcp-tw-company

MCP Taiwan Company Registry

PyPI version Python License: MIT MCP GitHub stars GitHub issues GitHub last commit

An MCP server for Taiwan company registry open data, exposing AI-callable tools over Model Context Protocol (MCP). Powered by the Ministry of Economic Affairs GCIS open data endpoints.

繁體中文

Features

  • stdio JSON-RPC 2.0 — Standard MCP transport protocol

  • @mcp.tool() decorator — Pydantic-typed tool registration

  • REST connector — Retry support with exponential backoff

  • No-auth public API access — Uses the GCIS open data endpoint directly

  • E2E testing — Live API test runner

  • 9 registered tools — Company search, directors, business items, branch offices, and more

Related MCP server: mcp-tw-lvr

Prerequisites

  • Python 3.14.x

  • uv

  • No API key required (public open data)

Installation

From PyPI

pip install mcp-tw-company

With uvx (no install needed)

uvx mcp-tw-company

From source

git clone https://github.com/asgard-ai-platform/mcp-tw-company.git
cd mcp-tw-company
uv sync

Configuration

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "tw-company": {
      "command": "uvx",
      "args": ["mcp-tw-company"]
    }
  }
}

Claude Code

Add to .mcp.json in your project:

{
  "mcpServers": {
    "tw-company": {
      "command": "uvx",
      "args": ["mcp-tw-company"]
    }
  }
}

Cursor

Add to Cursor MCP settings:

{
  "mcpServers": {
    "tw-company": {
      "command": "uvx",
      "args": ["mcp-tw-company"]
    }
  }
}

Quick Start

# Setup
uv sync

# Test connection
uv run python scripts/auth/test_connection.py

# Run server
uv run python mcp_server.py

Usage Examples

"Search for companies by name"

You: 幫我查「宏碁」相關的公司

AI calls:

get_company_registrations_by_name_keyword(
  company_name_keyword = "宏碁",
  company_status = "01",
)

Result: SUCCESS — Returns matching company registrations including name, unified business number, capital, representative, and address.

"Look up a specific company by number"

You: 統一編號 89845559 是哪家公司?

AI calls:

get_company_registration_master_by_number(
  business_accounting_no = "89845559",
)

Result: SUCCESS — Returns master registration profile: 森鉅科技材料股份有限公司, capital NT$3B, located in Tainan.

"Find directors and supervisors"

You: 查一下這家公司的董監事名單

AI calls:

get_company_directors_by_number(
  business_accounting_no = "89845559",
)

Result: SUCCESS — Returns 9 directors/supervisors with positions, names, corporate representatives, and shareholding.

"Check what business items a company is registered for"

You: 這家公司的營業項目有哪些?

AI calls:

get_company_registration_with_business_items_by_number(
  business_accounting_no = "89845559",
)

Result: SUCCESS — Returns company profile with 13 registered business items including manufacturing, trading, and construction.

"Determine entity type by number"

You: 統編 00208407 是公司還是商號?

AI calls:

get_registry_entity_type_by_number(
  no = "00208407",
)

Result: SUCCESS — Returns entity classification (company, branch office, or business).

Tools Reference

Tool

Description

Key Parameters

get_company_registrations_by_name_keyword

Search companies by name keyword

company_name_keyword, company_status

get_company_registration_master_by_number

Company master profile

business_accounting_no (8 digits)

get_company_registration_with_business_items_by_number

Company profile with business items

business_accounting_no (8 digits)

get_company_directors_by_number

Directors and supervisors

business_accounting_no (8 digits)

get_company_name_by_number

Company name lookup

business_accounting_no (8 digits)

get_registry_entity_type_by_number

Entity type classification

no (8 digits)

get_branch_offices_by_company_number

Branch offices by company

business_accounting_no (8 digits)

get_business_registration_profile_by_agency

Business profile by agency

president_no, agency

get_business_registration_items_by_number

Business registration items

president_no (8 digits)

All tools support skip (default 0) and top (default 50) pagination parameters.

TODO

  • Integrate company registration basic data (application 2) from F05D1060-7D57-4763-BDCE-0DAF5975AFE0

  • Integrate business name by number from 855A3C87-003A-4930-AA4B-2F4130D713DC

  • Investigate the upstream access restriction for business registrations by name keyword (A1B4CBFF-2D3A-409B-8A78-2AD94F63AE4A): the test endpoint currently returns unauthorized integration IP in this environment

  • Investigate the upstream access restriction for branch offices by branch number (23632BB3-5DB7-4423-9643-1D4AC140D479): the test endpoint currently returns unauthorized integration IP in this environment

Project Structure

mcp-tw-company/
├── app.py                  # FastMCP singleton
├── mcp_server.py           # Entry point (stdio transport)
├── config/settings.py      # API endpoints, URL builder, request headers
├── connectors/
│   └── rest_client.py      #   HTTP REST with retry + pagination
├── auth/
│   └── none.py             #   No auth (public API)
├── tools/
│   └── company_registry_tools.py
├── tests/test_all_tools.py # E2E test runner
└── scripts/auth/test_connection.py

Testing

uv run python scripts/auth/test_connection.py   # Validate API connectivity
uv run python tests/test_all_tools.py           # Run all tool E2E tests

Data Source

This project uses Ministry of Economic Affairs GCIS open data endpoints for company and business registration data.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT License — see LICENSE for details.

Available Tools

9 tools
get_branch_offices_by_company_numberB

Get branch office records by company unified business number.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_accounting_noYesUnified business number for the registered company
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

B3.1/5.0
Behavior2/5

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

The description does not disclose any behavioral characteristics beyond 'get'. There is no mention of pagination, return format, error handling, or side effects, and annotations are absent, so the description carries the full burden but provides minimal transparency.

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

Conciseness4/5

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

The description is a single, well-front-loaded sentence with no wasted words. However, it is slightly too terse, omitting useful context that could fit without verbosity.

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

Completeness2/5

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

Given the lack of an output schema, the description should clarify what the tool returns (e.g., whether it's a single branch office or a list). It does not mention pagination or expected results, leaving a significant gap for an agent.

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?

Input schema coverage is 100% with descriptions for all three parameters. The description adds no new semantic meaning beyond reinforcing that business_accounting_no is the identifier. According to guidelines, baseline 3 applies when schema coverage is high and description adds marginal value.

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 action 'Get', the specific resource 'branch office records', and the criteria 'by company unified business number', effectively differentiating it from sibling tools that retrieve other entity types like directors or registrations.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It neither specifies prerequisites nor contrasts with sibling tools like get_company_directors_by_number.

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

get_business_registration_items_by_numberC

Get business registration items by business number.

ParametersJSON Schema
NameRequiredDescriptionDefault
president_noYesUnified business number for the registered business
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic operation (get) without disclosing potential side effects, rate limits, or authorization needs. For a read operation, this is minimal.

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

Conciseness4/5

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

The description is a single sentence, front-loaded, and contains no unnecessary words. Appropriate for a simple tool.

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

Completeness3/5

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

The description does not mention return format or pagination behavior, which are important for a query tool. However, parameters are fully covered by the schema, so it is marginally adequate.

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%, so baseline is 3. The description does not add extra meaning beyond what the schema already provides for each parameter.

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

Purpose4/5

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

The description clearly states the action (Get) and resource (business registration items) by a business number. It is specific, but does not differentiate from similar sibling tools like 'get_company_registration_with_business_items_by_number'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Sibling tools exist with overlapping purposes, but no context or exclusions are provided.

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

get_business_registration_profile_by_agencyC

Get business registration profile by business number and agency.

ParametersJSON Schema
NameRequiredDescriptionDefault
president_noYesUnified business number for the registered business
agencyYesBusiness registration agency code
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only says 'Get' but does not disclose that this is a read operation, whether pagination is involved, or any behavioral traits like rate limits or data freshness. The skip and top parameters imply pagination, but the description doesn't explain it.

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

Conciseness4/5

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

Single sentence that is front-loaded and efficient. However, it could be slightly more informative without sacrificing conciseness, e.g., mentioning that it returns a profile record and supports pagination.

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

Completeness2/5

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

For a tool with 4 parameters and no output schema, the description is too minimal. It does not explain what the response contains, how pagination works with skip/top, or any constraints on the agency code. The agent would need to infer behavior from parameter names alone.

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%, so the input schema already documents all parameters. The description mentions 'business number and agency' but adds no extra meaning beyond the schema definitions. Baseline 3 is appropriate as the description provides minimal added value.

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

Purpose4/5

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

Description clearly states the verb 'Get' and resource 'business registration profile', specifying key parameters (business number and agency). However, it does not differentiate from sibling tools like get_business_registration_items_by_number or get_company_registration_master_by_number, which have overlapping functionality.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of prerequisites, context, or scenarios. The description simply states what it does without any situational advice.

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

get_company_directors_by_numberB

Get company directors/supervisors by unified business number.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_accounting_noYesUnified business number for the registered company
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action. It does not disclose that it is a read-only operation, any required permissions, or pagination behavior beyond the schema parameters.

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 sentence that is front-loaded with the verb and resource. Every word is essential, and there is no unnecessary information.

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

Completeness2/5

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

Despite low complexity, the description omits any mention of the return format or list behavior. For a tool that returns a list of directors, stating that it returns a list would improve completeness.

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 each parameter already described. The description adds no additional meaning or context for the parameters, so it meets the baseline of 3.

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 'Get', the resource 'company directors/supervisors', and the key identifier 'unified business number', distinguishing it from sibling tools that deal with branches, registrations, or names.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as other company information tools. The description does not mention exclusions or prerequisites.

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

get_company_name_by_numberC

Get company name by unified business number.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_accounting_noYesUnified business number for the registered company
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

C2.8/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It states a read operation but fails to explain handling of missing numbers, the possibility of multiple results (implied by skip/top), or the return format. This is insufficient for safe invocation.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it is too brief to convey necessary context like pagination behavior or return type. It sacrifices completeness for brevity.

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

Completeness2/5

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

Given the presence of three parameters (including pagination) and no output schema or annotations, the description is incomplete. It does not explain the return value, the effect of skip/top, or how it differs from sibling tools that also take a business number.

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 already describes all parameters with 100% coverage (business_accounting_no with pattern, skip with max, top with min/max). The description adds no new semantic information beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'company name' by a unified business number, distinguishing it from siblings that retrieve other information by number. However, it does not clarify how the pagination parameters (skip, top) fit with the singular 'company name', creating slight ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its siblings (e.g., get_company_directors_by_number). There are no context notes, prerequisites, or alternatives mentioned, leaving the agent to infer usage from the name alone.

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

get_company_registration_master_by_numberB

Get company registration master profile by unified business number.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_accounting_noYesUnified business number for the registered company
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. However, it only states that the tool retrieves a profile, without revealing behavioral traits such as pagination behavior, rate limits, or whether multiple results are possible (despite skip and top parameters).

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

Conciseness4/5

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

The description is a single, clear sentence that directly conveys the tool's purpose without unnecessary words. It is appropriately concise, though it could benefit from slightly more structure (e.g., mentioning pagination).

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

Completeness2/5

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

Given the presence of skip and top parameters (implying pagination) and the lack of output schema, the description should clarify that this tool supports pagination or returns a list. It currently suggests a single-profile retrieval, which is inconsistent with the parameters.

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%, so the baseline is 3. The description itself adds no additional parameter information beyond what the schema already provides for business_accounting_no, skip, and top.

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 action ('Get') and the specific resource ('company registration master profile') and the method ('by unified business number'). It effectively distinguishes this tool from sibling tools like get_company_directors_by_number and get_branch_offices_by_company_number.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or scenarios where this tool is preferred over siblings.

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

get_company_registrations_by_name_keywordB

Search company registrations by company name keyword and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_name_keywordYesCompany name keyword for company registration search
company_statusYesCompany status code
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose pagination behavior, return format, or whether results are limited in any way beyond schema constraints. The description is too sparse to convey behavioral traits.

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

Conciseness3/5

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

The description is a single sentence with 8 words, very concise. However, it sacrifices informational content. It is front-loaded but lacks structure to present additional context (e.g., pagination parameters).

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

Completeness2/5

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

Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It omits details about pagination (skip/top), result limits, and response format, which are important for an agent to invoke correctly.

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 descriptions for all parameters. The description adds no extra meaning beyond restating 'company name keyword and status', which is already implied by parameter names. 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 clearly states the verb 'Search' and the resource 'company registrations', with specific filters 'by company name keyword and status'. This distinguishes it from sibling tools that search by number or other criteria.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_company_registration_master_by_number. No explicit conditions or exclusions are mentioned.

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

get_company_registration_with_business_items_by_numberC

Get company registration profile with business items by unified business number.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_accounting_noYesUnified business number for the registered company
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the burden. It implies a read operation but does not explicitly confirm read-only behavior, nor does it disclose authentication needs, rate limits, or potential side effects. The description is insufficient for behavioral transparency.

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 clear sentence with no redundant words or information. It is front-loaded and conveys the essential purpose efficiently.

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

Completeness2/5

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

The tool has no output schema and the description does not explain what fields are returned (e.g., profile details, items list). The pagination parameters (skip, top) are described in schema but their effect on the 'business items' part is unclear. More context on the response structure is needed for completeness.

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 provides 100% coverage with descriptions for all three parameters. The tool description adds no additional meaning beyond the schema, such as explaining that 'business_accounting_no' is the primary key. Baseline is 3, and no extra value is provided.

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

Purpose4/5

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

The description clearly specifies the verb 'Get', the resource 'company registration profile with business items', and the identifier 'unified business number'. It distinguishes from siblings like 'get_company_registration_master_by_number' by including 'with business items', though it could further clarify the relationship to other tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus sibling tools such as 'get_business_registration_profile_by_agency' or 'get_company_registration_master_by_number'. There are no prerequisites, exclusions, or alternative suggestions.

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

get_registry_entity_type_by_numberA

Check whether a unified number is company, branch, or business.

ParametersJSON Schema
NameRequiredDescriptionDefault
noYesUnified business number to determine company/branch/business type
skipNoNumber of records to skip
topNoMaximum number of records to return

TDQS

A3.6/5.0
Behavior3/5

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

The description indicates a read-only check operation, but provides no details about pagination (skip/top parameters) or return format. With no annotations, more behavioral context would be helpful.

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?

A single, concise sentence that directly conveys the tool's purpose without any extraneous information.

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

Completeness2/5

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

The description does not explain the return value (e.g., what format the type is returned in) and fails to mention the pagination parameters. Given no output schema, more information is needed.

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%, and the description adds no extra meaning beyond the schema's parameter descriptions. Baseline score 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 clearly states the action (check) and the resource (unified number type), distinguishing it from sibling tools that deal with specific entity details like branches or directors.

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?

No explicit guidance on when to use this tool versus alternatives, nor any conditions for usage. The description implies it's for determining type, but lacks context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedget_branch_offices_by_company_number
    • First observedget_business_registration_items_by_number
    • First observedget_business_registration_profile_by_agency
    • First observedget_company_directors_by_number
    • First observedget_company_name_by_number
    • First observedget_company_registration_master_by_number
    • First observedget_company_registration_with_business_items_by_number
    • First observedget_company_registrations_by_name_keyword
    • First observedget_registry_entity_type_by_number

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct aspect of company data (branch offices, directors, name, registration profile, etc.), with clear separation even among similar-sounding tools like master profile vs. registration with business items.

Naming Consistency5/5

All tools follow a consistent 'get_' + descriptive noun phrase pattern with underscores, making naming predictable and easy to navigate.

Tool Count5/5

9 tools is well-scoped for a company information retrieval server, covering essential queries without redundancy or unnecessary complexity.

Completeness4/5

The set comprehensively covers common lookup needs by number and name keyword, but lacks operations like listing all companies or searching by additional criteria, which is a minor gap.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for querying Brazilian CNPJ company data, including partner graphs, address/contact joins, CNAE statistics, and national/annual overviews.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for querying Taiwan's real estate transaction registry via web scraping of the Ministry of the Interior's official portal. Enables natural language queries for real estate sales, rentals, and pre-sale housing data.
    1
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for searching Japanese corporate data including companies, financials, patents, subsidies, and government statistics via official government APIs.
    1
    MIT

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/asgard-ai-platform/mcp-tw-company'

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