mcp-tw-company
Click on "Install 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., "@mcp-tw-company查詢公司名稱含有「宏碁」的公司"
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.
MCP Taiwan Company Registry
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 registrationREST 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.xNo API key required (public open data)
Installation
From PyPI
pip install mcp-tw-companyWith uvx (no install needed)
uvx mcp-tw-companyFrom source
git clone https://github.com/asgard-ai-platform/mcp-tw-company.git
cd mcp-tw-company
uv syncConfiguration
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.pyUsage 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 |
| Search companies by name keyword |
|
| Company master profile |
|
| Company profile with business items |
|
| Directors and supervisors |
|
| Company name lookup |
|
| Entity type classification |
|
| Branch offices by company |
|
| Business profile by agency |
|
| Business registration items |
|
All tools support skip (default 0) and top (default 50) pagination parameters.
TODO
Integrate
company registration basic data (application 2)fromF05D1060-7D57-4763-BDCE-0DAF5975AFE0Integrate
business name by numberfrom855A3C87-003A-4930-AA4B-2F4130D713DCInvestigate the upstream access restriction for
business registrations by name keyword(A1B4CBFF-2D3A-409B-8A78-2AD94F63AE4A): the test endpoint currently returnsunauthorized integration IPin this environmentInvestigate the upstream access restriction for
branch offices by branch number(23632BB3-5DB7-4423-9643-1D4AC140D479): the test endpoint currently returnsunauthorized integration IPin 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.pyTesting
uv run python scripts/auth/test_connection.py # Validate API connectivity
uv run python tests/test_all_tools.py # Run all tool E2E testsData 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 toolsget_branch_offices_by_company_numberB
Get branch office records by company unified business number.
| Name | Required | Description | Default |
|---|---|---|---|
| business_accounting_no | Yes | Unified business number for the registered company | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| president_no | Yes | Unified business number for the registered business | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| president_no | Yes | Unified business number for the registered business | |
| agency | Yes | Business registration agency code | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| business_accounting_no | Yes | Unified business number for the registered company | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| business_accounting_no | Yes | Unified business number for the registered company | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| business_accounting_no | Yes | Unified business number for the registered company | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name_keyword | Yes | Company name keyword for company registration search | |
| company_status | Yes | Company status code | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| business_accounting_no | Yes | Unified business number for the registered company | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| no | Yes | Unified business number to determine company/branch/business type | |
| skip | No | Number of records to skip | |
| top | No | Maximum number of records to return |
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
v0.1.0- First observed
get_branch_offices_by_company_number - First observed
get_business_registration_items_by_number - First observed
get_business_registration_profile_by_agency - First observed
get_company_directors_by_number - First observed
get_company_name_by_number - First observed
get_company_registration_master_by_number - First observed
get_company_registration_with_business_items_by_number - First observed
get_company_registrations_by_name_keyword - First observed
get_registry_entity_type_by_number
TDQS
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.
All tools follow a consistent 'get_' + descriptive noun phrase pattern with underscores, making naming predictable and easy to navigate.
9 tools is well-scoped for a company information retrieval server, covering essential queries without redundancy or unnecessary complexity.
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
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
MCP server for 3M+ Polish companies — KRS & CEIDG financials, ownership, and industry search.
Hosted MCP server for real-world data: business registries, sanctions, companies, domains, crypto.
Search, compare, and contact real-world companies through a public MCP business directory.
Read-only MCP server for searching Japan government procurement bid information from the KKJ portal.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceMCP server for querying Brazilian CNPJ company data, including partner graphs, address/contact joins, CNAE statistics, and national/annual overviews.MIT- AlicenseAqualityDmaintenanceMCP 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.11MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for searching Japanese corporate data including companies, financials, patents, subsidies, and government statistics via official government APIs.1MIT
- FlicenseNot gradedqualityBmaintenanceA MCP server for querying Taiwan ISBN book data, supporting search by title, author, publisher, batch ISBN lookup, and browsing new books.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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