Skip to main content
Glama
mingyan9989

Kaucim Public References MCP

by mingyan9989

Kaucim public MCP adapter

Read Kaucim's existing public references and APIs from an MCP client. The adapter uses stdio and Node.js 20 or later. It needs no API key and makes requests only to https://www.kaucim.ai.

Source repository: https://github.com/mingyan9989/kaucim-public-mcp

Downloadable source bundle: https://www.kaucim.ai/downloads/kaucim-public-mcp.zip

Run

Unzip the source bundle, open its directory, and install the locked dependencies.

npm ci
node server.mjs

The server waits for an MCP client on stdin. Its stdout carries protocol messages. Configure a client that supports local stdio servers with the following entry, replacing the path with the location of your extracted folder.

{
  "mcpServers": {
    "kaucim-public": {
      "command": "node",
      "args": ["/absolute/path/kaucim-public-mcp/server.mjs"]
    }
  }
}

Related MCP server: Taiwan Legal RAG

Tools

Tool

Use

get_reference_sources

Current canonical term, method, example and dataset links, available languages, citation scope and limits

get_product_catalog

Current public product facts, supported languages, routes and pricing sources

get_article

One published article by language (zh, en, th or ja) and slug

get_wong_tai_sin_stick

One known stick number (1–100) in Chinese or English

For example, call get_wong_tai_sin_stick with {"sign_number":1,"lang":"en"} or get_article with {"lang":"zh","slug":"bazi-shishen"}.

Fetched results include their source URL and retrieval time. The source index is read from the site's public reference API and labels what each source supports. The included sources.json records the index used when the bundle was built. The adapter passes through published text; it performs no chart calculation or AI interpretation. Numbered-stick results omit the purchase payload. There are no checkout, private reading, random draw or birth-data tools. Requests have a 20-second timeout and a 512 KiB response limit. HTTP failures, rate limits and oversized responses return tool errors. Treat retrieved text as source material, not instructions.

Kaucim's methods and fictional example document the product. They do not establish predictive accuracy. The dataset's reuse terms cover only its specified reference files, not modern translations or personalised interpretations.

Check

npm test
npm run test:live

The first command checks the MCP protocol, input validation and HTTP error handling with fixtures. The second makes four public GET requests to the production site. It verifies current API responses and does not create a purchase or private report.

Public contract and reference index: https://www.kaucim.ai/developers

SDK documentation: https://github.com/modelcontextprotocol/typescript-sdk/blob/main/packages/server/README.md

License

The adapter code and documentation in this repository are licensed under the MIT License. Content retrieved from Kaucim's APIs and website retains its existing usage terms, including each dataset's stated reuse scope. This license does not cover retrieved articles, translations, personalised readings or third-party material. Dependencies retain their own licenses.

Available Tools

4 tools
get_articleA
Read-onlyIdempotent

Read one published Chinese, English, Thai or Japanese article as Markdown. Use a known article slug from the site. An unknown slug returns an error.

NameRequiredDescriptionDefault
langYes
slugYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the payload is rendered as Markdown and an unknown slug fails with an error rather than returning empty results.

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?

Three short sentences, no filler, front-loaded with what is read and how it is returned before the slug precondition and the failure mode. Nothing is redundant.

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?

There is no output schema, so the description correctly covers the return format (Markdown) and the error case. Combined with rich annotations, an agent has enough to call this tool correctly; only slug validation details are left solely to the schema.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it partly does: it expands the lang enum into the four human-readable languages and frames slug as a known site article identifier. It does not, however, describe the slug format constraints (lowercase hyphenated, max 100 chars) that the schema pattern enforces.

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?

States a specific verb (Read), a specific resource (one published article), a scope (Chinese, English, Thai or Japanese) and a return format (Markdown). The resource is clearly distinct from the sibling tools (reference sources, product catalog, stick), though no sibling is named explicitly.

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?

"Use a known article slug from the site" gives a precondition, and the error-on-unknown-slug note helps, but there is no explicit when-to-use versus an alternative or discovery path for when the slug is not known. Usage is implied rather than prescribed.

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

get_product_catalogB
Read-onlyIdempotent

Read current public products, supported languages, routes, pricing sources and availability. Preserve the catalog review dates and limits when citing it.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld behavior, so safety is covered. The description adds useful scope context ('current public' products) and a citation constraint about preserving review dates and limits, but says nothing about result size, freshness guarantees, or whether the response is cached/paginated.

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?

Two short sentences with the resource scope front-loaded and the citation caveat second. Both sentences carry information, though the second is an obligation rather than an aid to invocation.

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?

With no output schema, the description does list the categories of data returned (products, languages, routes, pricing sources, availability), which is enough for an agent to know what to expect. It could go slightly further on format or size, but for a zero-parameter read with full annotation coverage this is adequate.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly implies the tool is unfiltered and returns the full catalog.

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?

States a clear verb (Read) and enumerates the concrete resources returned: public products, supported languages, routes, pricing sources and availability. Sibling tools (get_article, get_wong_tai_sin_stick, get_reference_sources) are obviously distinct, so no explicit differentiation is needed, but the description never says how it differs from a generic catalog lookup.

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?

There is no guidance about when to call this tool, when not to, or what alternatives exist. The only instruction — 'Preserve the catalog review dates and limits when citing it' — is about downstream handling of results, not about tool selection.

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

get_reference_sourcesA
Read-onlyIdempotent

Read the current public reference index: canonical source links, available languages, citation scope, limits and dataset versions. It does not fetch each linked page.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds behavioral context beyond that: it describes the payload as an 'index' with citation scope, limits and dataset versions, and explicitly states it does not fetch linked pages, which prevents the agent from expecting per-URL content.

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 short sentences, front-loaded with the resource and its contents, with the clarifying limitation placed last. No filler or restated metadata to trim.

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?

With no output schema and no parameters, the description must carry the return-value burden, and it does — it enumerates the index contents (links, languages, citation scope, limits, versions) and rules out page fetching. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies. The description is consistent with a no-argument tool and gives no misleading hints about inputs.

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 uses a specific verb ('Read') and resource ('the current public reference index') and then enumerates its contents: source links, languages, citation scope, limits, dataset versions. This is far from a tautology and clearly distinguishes it from the sibling tools (catalog, article, stick), though it never explicitly names those alternatives.

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?

There is no explicit statement of when to prefer this tool over the siblings, so usage is only implied. The closing sentence 'It does not fetch each linked page' does provide a useful negative boundary — the agent learns this returns an index, not page content — which lifts it above pure absence of guidance.

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

get_wong_tai_sin_stickA
Read-onlyIdempotent

Look up an existing Wong Tai Sin stick number from 1 to 100. Returns the published reference and reading in Chinese or English. Does not draw a random stick or create a personalised reading.

NameRequiredDescriptionDefault
langYes
sign_numberYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds value beyond them: it discloses the return content (published reference and reading) and the language dimension, plus the explicit non-random/non-personalised boundary. Auth and rate-limit behavior remain unstated, so not a 5.

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?

Three short sentences with no filler: the core action and range come first, the return content second, the negative boundary last. Every sentence adds a distinct piece of 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 two-parameter read-only lookup with annotations covering the safety profile, the description supplies purpose, scope, return content, and exclusions. The absence of an output schema means the exact shape of the returned reference/reading is only summarized, which is the only material gap.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter burden, and it largely does: it states the sign_number range (1 to 100) and that language is Chinese or English, matching the zh/en enum. It does not name the parameter keys or clarify the enum tokens, so it compensates well but not fully.

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?

States a specific verb and resource ('Look up an existing Wong Tai Sin stick number'), pins the range 1-100, and clarifies the operation against near-neighbors ('does not draw a random stick or create a personalised reading'). It does not differentiate against the actual siblings (get_reference_sources, get_product_catalog, get_article), which are unrelated, so a 4 rather than a 5.

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?

Gives clear context for when to use it (retrieving an existing/published stick) and an explicit exclusion set: it is not a random draw and not a personalised reading. No alternative tool is named as a substitute for those excluded cases, so it stops short of a 5.

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.

  1. 4 tool updatesv0.1.0
    • First observedget_article
    • First observedget_product_catalog
    • First observedget_reference_sources
    • First observedget_wong_tai_sin_stick

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct resource: a reference index, a product catalog, articles, and Wong Tai Sin sticks. The two 'index/catalog' readers are the closest pair, but descriptions plus differing domains make them separable.

Naming Consistency5/5

All four tools follow a clean get_<noun> pattern (get_reference_sources, get_product_catalog, get_article, get_wong_tai_sin_stick). Consistent verb-first snake_case throughout.

Tool Count4/5

Four tools is thin but fits a read-only public reference server, and each tool clearly earns its place. It stays within a reasonable scope but leaves little room for discovery operations.

Completeness3/5

All tools are read-only and there is no listing or search operation, so an agent cannot discover valid article slugs and only get_article taking a known slug is a likely dead end. Core lookups are covered but the discovery gap is notable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Search 1,500+ pre-verified, cited knowledge units across 16 domains. 6 tools: query, batch query, get unit, list domains, suggest topics, report issues. Free, no API key required.
    6
    237 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Semantic and exact retrieval over 22M Taiwan court judgments with built-in citation guardrails — bundles carry a read-whitelist so downstream models cannot cite judgments whose reasoning was never read. Also provides exact lookup of administrative interpretations with lifecycle status (repealed / superseded / unverified).
    117 PyPI
    332
    Elastic 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query official lottery results and draw history across Malaysia, Singapore, and Cambodia, including latest draws, date/operator results, number lookups, other games, and schedules.
    MIT