Skip to main content
Glama

LucyESL — English teaching jobs in Korea

Server Details

English-teaching jobs in South Korea: salary, disclosure and by-region stats. Read-only, no key.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.2/5.0

Scored across 7 tools

Disambiguation3/5

search and search_jobs overlap heavily (both search jobs and accept free text), and fetch and get_job both retrieve a single listing by id. Descriptions clarify return formats, but boundaries are still easy to mix up.

Naming Consistency3/5

The set mixes bare verbs (fetch, search), verb_noun names (get_job, search_jobs), and noun_stats names (disclosure_stats, market_stats, salary_stats). It is readable, but there is no single predictable convention.

Tool Count5/5

Seven tools fit a focused job-board data server: discovery, retrieval, and three distinct statistical views. Each tool has a plausible role without excessive surface area.

Completeness4/5

The read-only surface covers search, filtering, single-listing retrieval, and several useful aggregate statistics. It lacks bulk listing/pagination or employer-focused operations, but core job-search and market-analysis workflows are present.

Available Tools

7 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 cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the burden is lower. The description adds two useful traits the annotations lack: the data is restricted to 'live' adverts, and the scope is Korean ESL postings. It does not disclose the shape or granularity of the numbers, which is a gap given there is no output schema.

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 front-loaded sentence plus a license tag; no filler. It is slightly awkward as a question rather than a declarative statement, which costs a point.

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 stat tool the description does enumerate the exact attributes measured, which partially substitutes for the missing output schema. However it never says whether results are counts, percentages, or broken out by time period, leaving the return shape ambiguous.

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. Schema coverage is 100% and there is nothing for the description to disambiguate.

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 names a concrete resource: disclosure counts for eight specific attributes across live Korean ESL job adverts. That is enough for an agent to know what comes back, but it never states the operation as a verb (list/aggregate?) and does not distinguish itself from salary_stats or market_stats.

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 when-to-use statement, no alternatives named among the six siblings, and no condition that selects this tool over salary_stats or market_stats. The agent must infer routing from the topic alone.

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.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the return-format fact ('as a plain-text document with its facts'), which is genuinely useful beyond the annotations, but says nothing about error behavior for unknown ids or the document's structure.

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 front-loaded sentence with the action, resource, key, and return format; no filler or repetition of the title.

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 one-parameter read tool with rich annotations and no output schema, the description covers action, key, and response format adequately. The main omission is disambiguation from get_job/search_jobs, which is the only thing an agent could get wrong here.

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% and the single 'id' parameter has no schema-level description, so the description carries the burden. It does identify the parameter's meaning ('one LucyESL job listing by id'), which is more than the schema offers, but adds no format, source, or example of a valid id.

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 (Fetch) and resource (one LucyESL job listing) plus the lookup key (by id), so the operation is unambiguous. However, it does not distinguish itself from the sibling get_job or search_jobs, which likely retrieve the same entity, leaving the agent to guess which fetch tool to pick.

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 when-to-use guidance is given: nothing says when this is preferable to get_job, search, or search_jobs, nor any prerequisite such as a valid id. The only implied context is that the caller already has an id, which the agent must infer.

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.4/5.0
Behavior2/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes only the word 'live' (data freshness) and 'structured', adding marginal context but nothing about missing-id behavior or scope.

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?

A single short sentence with no filler and no buried lede, which is structurally sound. The problem is under-specification rather than verbosity, so it reads as sparse rather than efficiently concise.

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?

This is a low-complexity, single-parameter tool with no output schema, so the description carries the burden of explaining the record's shape, fetch semantics, and failure mode for a nonexistent id. 'Structured record' is too vague to tell an agent what it will receive or how to recover from a bad id.

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%: the required integer parameter 'id' (minimum 1) is documented nowhere in the schema, and the description never mentions a parameter at all. It does not say the id is a listing/job identifier or what happens for an unknown id, so it fails to compensate for the coverage gap.

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 phrase 'One live listing as a structured record' conveys that a single listing is retrieved, which is more than the title alone. However it has no explicit verb, names no resource type (job? listing?), and gives no differentiation from the sibling tools fetch, search, or search_jobs. The purpose is only broadly inferable.

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 when-to-use guidance, no statement of prerequisites, and no routing against alternatives. An agent cannot tell from this text whether to call get_job, fetch, or search_jobs for a given need. Score 2 rather than 1 only because nothing stated is actually wrong or misleading.

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

market_statsThe job market by regionA
Read-onlyIdempotent
Inspect

Live English-teaching job adverts in South Korea counted by region: how many in each, direct hire against recruiters, how many state total on-site hours, and the median advertised salary where the sample allows. Counts of adverts, not of employers. CC BY 4.0.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish the safe-read profile (readOnly, idempotent, closed-world), so the bar is lower, yet the description still adds real context: data is 'live', counts are of adverts rather than employers, and the median salary is only reported 'where the sample allows'. That last point usefully warns about missing values.

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?

A single dense sentence front-loads the scope (South Korea, by region) and then enumerates the metrics, closing with the licence. Efficient, though the mid-sentence clause stack is slightly heavy.

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 parameters and no output schema, the description carries the burden of describing what comes back, and it does so by naming the four reported measures plus the advert-vs-employer caveat. A note on granularity (e.g. region unit) or sample-size threshold would make it fully complete.

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 per the rubric the baseline is 4. There is nothing for the description to clarify beyond confirming the tool is parameterless and returns a fixed aggregate.

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?

States a precise resource (live English-teaching job adverts in South Korea) and the exact aggregation (counts by region, direct-hire vs recruiter split, on-site hours, median advertised salary). It is clearly distinguishable from siblings like salary_stats or disclosure_stats by naming the region-and-metric scope.

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?

Usage is implied by the aggregation framing, but there is no explicit when-to-use or when-not-to-use guidance, and no sibling (e.g. salary_stats, disclosure_stats) is named as the alternative for a different question. An agent must infer that this is the region-breakdown aggregate.

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.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and determinism are covered structurally. The description adds genuinely useful context beyond that: results are computed from live listings (data recency/source) and output is CC BY 4.0 licensed (attribution obligation). It does not disclose whether stats are cached, how listing recency is bounded, or sample-size caveats.

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?

A single dense sentence that front-loads the subject (English-teacher salary statistics for South Korea) and then lists covered dimensions without filler. The trailing license fragment is slightly bolted on but still earns its place for attribution compliance.

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 input schema fields and no output schema, the description carries the burden of describing what comes back, and it does so by enumerating the statistic families produced plus the data source and license. An agent can decide relevance and call it with no arguments; only the exact response shape and any caveats on sample size remain unspecified.

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, which is the baseline-4 case per the rubric. The description instead specifies the output dimensions (median, quartiles, region, employer type, hourly pay, disclosure, housing), which adds framing value even though there is nothing to disambiguate on the input side.

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 states a specific resource and scope: English-teacher salary statistics for South Korea computed from live listings, and enumerates the exact metrics produced (median, quartiles, by region/employer type, effective hourly pay, disclosure rates, housing). That is far more specific than a tautology, though it never explicitly positions itself against siblings like market_stats or disclosure_stats, so an agent must infer the boundary from scope alone.

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 when-to-use statement or named alternative, but the enumerated metric list strongly implies the question types this tool answers (regional pay comparisons, hourly-rate normalization, housing). Usage is inferable rather than stated, and the overlap in scope with market_stats/disclosure_stats is left unresolved.

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 boardB
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

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld=false, so the safety profile is covered. The description adds genuinely new behavioral context absent from annotations: results are structured records, pay is expressed in KRW per month unless stated, and null means the advert was silent. Return-data semantics are the right thing to disclose with no output schema.

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 front-loads the board and scope before the facet list, then a second sentence covers return semantics. No filler, though the facet enumeration is somewhat list-like rather than prioritized.

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 15-parameter, no-output-schema filter tool the description covers return format, currency, and null meaning, which is the most valuable missing piece. It still omits pagination behaviour (page/limit), default ordering, and what happens when no filters are supplied, leaving real gaps.

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 only 47% across 15 parameters, so the description must compensate. It names the filterable facets (region, student age, housing, visa, schedule, contract, setting, direct hire, minimum salary, free text), which helps map intent to parameters, but it adds no syntax, default, or combination guidance beyond the enumerations already in the 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?

"Filter the live LucyESL board of English-teaching jobs in South Korea" gives a specific verb (Filter), resource (job board), and domain scope, and then enumerates the filterable facets. It is clear enough to call, but it does not distinguish itself from the sibling named 'search', so an agent cannot tell the two apart from this text alone.

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 facet list implies the tool is for browsing/filtering, but there is no explicit when-to-use, when-not-to-use, or pointer to siblings such as get_job for a single posting or salary_stats for aggregates. The agent is left to infer routing.

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. 1 tool update
    • Addedmarket_stats
  2. 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
    A
    quality
    A
    maintenance
    Enables searching and retrieving South Korean national statistics tables, inspecting table metadata and values, and exporting results to xlsx/csv/json/sqlite, with automatic time-period splitting when responses exceed 40,000 cells.
    11
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables natural language queries to retrieve Korean real estate transaction data (land, commercial, apartments) from the public API, returning structured tables and summary statistics.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables natural language querying of Korean statistical data from KOSIS, including population, employment, GDP, housing prices, and more, with support for regional and trend analysis.
    8
    8 npm
    16
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources