singapore-entities-directory
Server Details
Free, read-only lookup of Singapore registered entities by name or UEN, from ACRA/UEN open data.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
search_companies is the discovery tool (partial name / UEN matching, compact results) while get_company is the detail tool keyed by exact UEN. The descriptions explicitly link them ('call get_company with a UEN for the full record'), so an agent can never confuse the two.
Both names follow a clean verb_noun snake_case pattern (get_company, search_companies). The singular/plural noun choice correctly reflects cardinality (one record vs. many results), which is a convention, not an inconsistency.
Two tools is slightly thin, but for a read-only public registry the search-plus-detail pair is exactly the natural surface and neither tool is redundant. Each tool clearly earns its place; there is just no third capability to round it out.
Search plus full-record retrieval covers the core lookup lifecycle for a public directory, and create/update/delete are rightly absent since the data is read-only. Minor gaps remain (search limited to name/UEN prefix with no pagination or filtering by SSIC activity, address, or entity status).
Available Tools
2 toolsget_companyGet a Singapore entity by UENARead-onlyIdempotentInspect
Get the public registry record of one Singapore entity by its UEN: name, entity type, status and status date, incorporation date, SSIC activities, registered address (when shown publicly), conversion successor, SGPID and its sgpbusiness.com profile link, plus the open-data attribution to include when presenting it.
| Name | Required | Description | Default |
|---|---|---|---|
| uen | Yes | Unique Entity Number, e.g. "201108760R". |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tier | Yes | |
| source | Yes | |
| disclaimer | No | |
| profile_url | No | |
| generated_at | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, non-open-world), so the bar is lower. The description still adds real behavioral context: some fields may be withheld ('registered address (when shown publicly)') and an attribution obligation exists ('open-data attribution to include when presenting it'), which the agent would not otherwise know.
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 sentence, front-loaded with verb, resource and key. It is dense with an enumerated field list, but nothing is wasted and the critical lookup key precedes the payload detail.
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 single-read tool with an output schema and full annotation coverage, the description is sufficient: it names the lookup key, flags conditionally-absent fields, and states the attribution requirement. Listing return fields is mildly redundant against the output schema but does not hurt.
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?
Only one parameter, and schema coverage is 100% with an inline example ('201108760R') and a regex pattern. The description's 'by its UEN' adds no syntax or format detail beyond the schema, so the baseline of 3 applies.
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?
States a specific verb ('Get') and resource ('public registry record of one Singapore entity'), plus the lookup key (UEN). The singular 'one ... entity by its UEN' framing implicitly separates it from the search_companies sibling, so an agent can route correctly.
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?
Usage is only implied: the agent can infer it should use this when it already has a UEN. Neither search_companies nor any when-not condition (e.g. 'use search_companies if you only know the name') is named, so the alternative-routing guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesSearch Singapore entitiesARead-onlyIdempotentInspect
Find Singapore registered entities by name or UEN. Matches an exact UEN, an exact name, or names that START WITH the query (case-insensitive). Live entities and shorter names rank first. Returns up to 10 compact results; call get_company with a UEN for the full record.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (1-10). | |
| query | Yes | Entity name (or its beginning) or a UEN, e.g. "Singapore Airlines" or "197200078R". |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds genuinely useful behavior beyond that: match semantics, ranking rules ('live entities and shorter names rank first'), and a 10-result cap with compact payloads. It stops short of describing pagination or what 'compact' omits.
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?
Three sentences, zero waste, front-loaded with what is searched, then match semantics, then ranking/limits, then the hand-off to the sibling. Every sentence carries distinct 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?
An output schema exists, so return values need not be described; the description instead covers what matters for correct invocation: match modes, ranking, result cap, and the escalation path. Nothing an agent needs to call this correctly is missing.
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 baseline is 3, but the description adds interpretation the schema cannot: query is matched as exact UEN, exact name, or name prefix (case-insensitive). It doesn't explain the limit parameter's interaction with ranking beyond the stated cap, which is already in the schema.
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?
States a specific verb+resource+scope: finding Singapore registered entities by name or UEN, and explicitly distinguishes itself from get_company (compact results vs. full record). An agent can pick it apart from its sibling without opening any schema.
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?
Names the alternative tool and the condition that selects it: 'call get_company with a UEN for the full record.' Combined with the match-mode explanation (exact UEN, exact name, prefix), it tells the agent both when this tool suffices and when to escalate.
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.
2 tool updates
- First observed
get_company - First observed
search_companies
Related MCP Connectors
Singapore ACRA (Bizfile) company search by name, UEN, SSIC industry code, entity type and status.
Singapore business directory. Search companies, UENs, and SSIC industry classifications.
Singapore business directory. Search companies, UENs, and SSIC industry classifications.
Official company and director data: search, profiles, filings, and name normalization.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables lookup of Singapore companies by UEN or name using ACRA's free open data from data.gov.sg, with tools for UEN validation, exact lookup, and free-text search.MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching Hong Kong company names and BR numbers, retrieving newly incorporated, registered, or renamed companies, and joining results to HKEX tickers using keyless open data from the Companies Registry.65 npmMIT

com.qorpiq/mcaofficial
AlicenseAqualityCmaintenanceEnables read-only lookups of Indian company and director records, including CIN, LLPIN, FCRN, DIN, registry status, and recent incorporations. It also supports company name searches and director directorship histories.6MIT- AlicenseAqualityDmaintenanceEnables direct access to Norwegian company data — lookup, search, roles, subunits, and live updates — through the free Brønnøysund Open Data API.545 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.