Skip to main content
Glama

LucyESL — English teaching jobs in Korea

Server Details

Live English-teaching jobs in South Korea, with salary and disclosure statistics. Read-only, no key.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation3/5

Two pairs of tools have overlapping purposes: fetch and get_job both retrieve a listing by id (plain-text vs structured), and search and search_jobs both find listings (ids/titles/URLs vs filtered structured records). While descriptions clarify the differences, an agent could still misselect between the pair.

Naming Consistency3/5

Naming is mixed: disclosure_stats and salary_stats follow noun_verb pattern, fetch and search are bare verbs, get_job uses get_+noun, search_jobs uses verb_noun. No consistent convention, though each name is readable and not chaotic.

Tool Count5/5

Six tools is well within the ideal 3-15 range for a domain-specific read-only job board. Each tool has a clear purpose, though some redundancy exists, the count is appropriate.

Completeness4/5

The surface covers the core read-only workflows: search, retrieve details, and statistics. No create/update/delete needed. The redundancy between fetch/get_job and search/search_jobs suggests slight over-engineering rather than missing functionality, but no critical gaps.

Available Tools

6 tools
disclosure_statsDisclosure ratesB
Read-onlyIdempotent
Inspect

How many live Korean ESL job adverts state the salary, hours, severance, pension, insurance, airfare, vacation and split shifts. CC BY 4.0.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this tool safe (readOnlyHint, idempotentHint, destructiveHint false), so the description need not repeat that. It adds useful context about the data population and the counted attributes, but it does not describe the result shape or whether output is raw counts, percentages, or rates. Nothing contradicts the annotations.

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?

One dense sentence states the core purpose and lists the measured fields, followed by a brief license note. The list is necessary for scope precision, and the sentence is front-loaded with the query intent. Only the license line adds marginal value, but it is short.

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?

For a parameterless, read-only statistics tool, the description adequately specifies the population and the variables being counted. However, there is no output schema and the description does not clarify whether the result is a single count, per-field counts, or a percentage/rate, which leaves some ambiguity for an agent selecting or invoking the tool.

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 has zero parameters and the schema is empty, so parameter semantics are fully covered by the schema. The baseline for no parameters is 4; no additional explanation is required.

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 conveys a specific aggregation resource: counts of live Korean ESL job adverts that disclose each listed employment term. The verb is implicit ('how many' = count), but the resource and scope are clear enough to distinguish it from salary_stats, which concerns salary amounts rather than disclosure presence.

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 explicit guidance on when to use this tool versus siblings like salary_stats, search, or fetch. The intended use can be inferred from 'how many ... state ...', but no alternatives or exclusion conditions are named.

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

fetchFetch one listingB
Read-onlyIdempotent
Inspect

Fetch one LucyESL job listing by id as a plain-text document with its facts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful detail that the output is a plain-text document containing the listing's facts, but it does not describe error behavior or missing-id handling.

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?

One sentence with no filler, front-loading the verb and object. The length is appropriate for a simple one-parameter read tool.

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 single-parameter read-only fetch with annotations covering safety, the description conveys the target resource and output format. It does not distinguish fetch from get_job or enumerate the 'facts' included, but nothing essential for invoking the tool is missing.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to clarify the id parameter. It only restates 'by id,' which adds little beyond the parameter name and type. No format, source, or validation details are given.

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 ('Fetch'), identifies the resource ('LucyESL job listing'), specifies the retrieval key ('by id'), and names the output form ('plain-text document with its facts'). It is clear on its own, though it does not differentiate itself from the sibling get_job.

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 implies a lookup-by-id use case but provides no explicit guidance about when to use fetch instead of get_job, search_jobs, or search. No alternatives or exclusion conditions are mentioned.

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

get_jobOne listing as a recordC
Read-onlyIdempotent
Inspect

One live listing as a structured record.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds little beyond 'live' and 'structured record', which hints at freshness and return format but does not disclose pagination, error behavior, or whether the listing may be absent. With annotations covering the main behavioral traits, a 3 is appropriate.

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 short sentence with no wasted words. It is front-loaded with the key idea of a single live listing. However, it is so terse that it misses useful context, though this is more a completeness issue than a conciseness issue.

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 single-record retrieval tool with one parameter and no output schema, the description is minimal. It does not explain what 'structured record' contains, how to handle a missing ID, or how this differs from search_jobs and fetch. The annotations cover safety, but the description leaves an agent guessing about the return value and selection criteria.

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 0%, so the description carries the burden for explaining the 'id' parameter, but it does not mention 'id' at all. The schema itself defines id as an integer with minimum 1, which is self-explanatory for a single-record lookup. The description adds no meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose3/5

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

The description 'One live listing as a structured record' identifies the resource (a job listing) and the output form (structured record), but it does not use a specific verb like 'get' or 'fetch' and does not distinguish itself from sibling tools such as fetch or search_jobs. It is clear enough to know it returns a single listing, but vague about what makes it different from other retrieval 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 given about when to use this tool versus siblings like search_jobs or fetch. The description does not state that it is for retrieving a single listing by ID, nor does it mention any exclusions or alternatives. An agent would have to infer usage from the parameter schema.

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

salary_statsSalary statisticsA
Read-onlyIdempotent
Inspect

English-teacher salary statistics for South Korea computed from the live listings: median, quartiles, by region, by employer type, effective pay per teaching hour, disclosure rates, housing. CC BY 4.0.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and non-destructive behavior visa-vi hints. The description adds meaningful context beyond those hints: the statistics are computed from live listings, are licensed CC BY 4.0, and cover specific breakdowns. There is no contradiction with the annotations.

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 dense sentence front-loads the subject and source, then uses a colon-separated list to enumerate the statistics. Every element earns its place, including the license note.

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 parameterless, read-only statistics tool, the description covers scope, source, content, and licensing. It does not specify the exact output structure or statistical methodology, but the low complexity and strong annotations make this a minor, non-blocking 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?

The tool has zero parameters, so input ambiguity is minimal and the baseline is 4. The description compensates by detailing what output dimensions are included, which is useful given there is no output schema.

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 identifies the resource: English-teacher salary statistics for South Korea, and enumerates the specific breakdowns and metrics included (median, quartiles, by region, effective pay, etc.). It lacks an explicit verb like 'returns' or 'provides', and it does not directly distinguish itself from the sibling disclosure_stats, which likely overlaps on disclosure rates.

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

Usage Guidelines3/5

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

The description implies this tool is for aggregate salary statistics rather than individual listings or searches, but it never explicitly states when to choose it over alternatives like search_jobs or disclosure_stats. No exclusions or routing guidance is provided.

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

search_jobsFilter the live boardA
Read-onlyIdempotent
Inspect

Filter the live LucyESL board of English-teaching jobs in South Korea: region, student age, housing, visa, schedule, contract, setting, direct hire, minimum salary, free text. Returns structured records; pay in KRW per month unless stated otherwise; null means the advert did not say.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoWords to match in the title, city or employer name
ageNoStudent age group; adults_only means adults and nobody younger
pageNo
visaNoe2 = E-2 sponsorship, f = F-series visa holders
limitNo
formatNoClass shape
regionNoRegion key
housingNo
settingNo
contractNo
deliveryNo
scheduleNo
specialtyNo
min_salaryNoMinimum monthly pay in KRW; snaps down to the board's steps 2000000, 2300000, 2600000, 3000000
direct_onlyNoOnly employers hiring directly (no recruiters or agencies)

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, idempotent, and closed-world. The description adds useful context about return values (structured records, salary in KRW, null semantics) beyond the schema. However, it does not explain pagination or rate limits, and it does not contradict annotations. The behavioral disclosure is adequate given the annotations.

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 front-loads the core purpose and lists the filter dimensions without unnecessary verbiage. It is concise and structured for quick scanning, providing all essential information in one sentence.

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?

Given the complexity of 15 parameters and no output schema, the description is reasonably complete by summarizing the filter dimensions and noting the return structure. It could mention pagination or result ordering, but it covers the main aspects needed to call the tool effectively. The annotation coverage helps, so a 4 is appropriate.

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 47%, and the description provides a high-level list of filter dimensions but does not detail each parameter's semantics. Many parameters have enums with descriptions in the schema, so the description adds minimal value beyond that. It does mention 'minimum salary' snapping behavior, which is helpful, but overall it does not compensate fully for the low coverage.

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

Purpose5/5

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

The description clearly states the tool filters the live LucyESL job board and enumerates the main filter dimensions (region, age, housing, etc.). It distinguishes itself from sibling tools like get_job (fetching a single job) and search (generic search) by specifying it filters the board.

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

Usage Guidelines4/5

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

The description explains what it filters but does not explicitly state when to use this tool versus alternatives, such as salary_stats or disclosure_stats. It implies usage for job searching, but there are no clear exclusions or conditions for sibling tools. Still, the coverage of filter dimensions provides context for appropriate use.

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. 6 tool updates
    • First observeddisclosure_stats
    • First observedfetch
    • First observedget_job
    • First observedsalary_stats
    • First observedsearch
    • First observedsearch_jobs

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables read-only search and retrieval of KAMCO Onbid public auction property data, including listings, details, and bidding results, using user-provided API keys.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Connects to Korea's MOLIT real estate API to provide 14+ tools for live transaction data and financial scenarios like buy now, buy later, or invest only based on income and savings.
    16
    377
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides real-time Seoul city data including population congestion, traffic, parking, transit, bikes, EV chargers, weather, events, commercial, accidents, alerts, and news across 121 locations using Seoul Open Data API.
    3
    12 npm
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources