Skip to main content
Glama
youjin8812-hub

seoul-opendata-mcp

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Each tool has a distinct role: recommendation, direct search, detail lookup, refinement, and recent updates. The main overlap is between recommend_seoul_apis_for_idea and search_seoul_datasets, but their input types and purposes are clearly differentiated.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern (recommend_, search_, get_, refine_, list_). The objects vary slightly (apis, datasets, recommendations, recent_updates), but the structure is predictable and readable.

    Tool Count4/5

    Five tools is a lean but reasonable scope for a catalog discovery server. Each tool serves a distinct facet of finding and exploring Seoul open data, though coverage could be expanded without feeling bloated.

    Completeness3/5

    The core discovery lifecycle is covered: search, detail, recommendations, and recent updates. However, a significant gap exists—get_seoul_dataset_detail explicitly cannot return API request URLs or parameter specs, requiring a browser workaround, which limits the set's usefulness for actually consuming APIs.

  • Average 4/5 across 5 of 5 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 28 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

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

    With no annotations present, the description discloses the core behavior: automatic keyword search and scoring over the catalog, then returning top results. This goes beyond a bare action statement, though it does not describe side effects or limitations; the read/recommend nature is still reasonably transparent.

    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 with no filler; the main action is front-loaded and the scoring/return behavior is stated concisely in the second sentence. Every sentence earns its place.

    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?

    The description is adequate for a recommendation tool but leaves gaps: no output schema is provided and the description does not clarify the returned result shape, sorting order, or empty-result behavior. The detailed parameter schema compensates partially, but an agent still does not know exactly what the returned 'top results' look like.

    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 100%, and every parameter already has a meaningful description, including examples where useful. The free-text description adds no extra parameter-level semantics beyond mentioning keyword search/scoring, so the baseline score of 3 applies.

    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 action ('recommends suitable API candidates') against a named resource (Seoul open data catalog), and clearly centers on natural-language idea input. It does not explicitly contrast with sibling tools like search_seoul_datasets, so it falls short of 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 Guidelines3/5

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

    The opening phrase '자연어로 아이디어를 설명하면' implies the intended use case: use this when the user has an idea rather than a precise search query. However, it gives no explicit when-not-to-use guidance or mention of alternatives such as search_seoul_datasets or refine_seoul_recommendations, leaving routing partially implicit.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the behavioral disclosure burden. It discloses that the tool performs a direct search and returns raw results plus totalMatchCount, which is useful, but it does not mention result ordering, pagination semantics, or output 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?

    The description is a single, tight sentence that front-loads the core action and return value. Every phrase earns its place with no filler.

    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?

    All parameters are described in the schema, and the description explains the key return field totalMatchCount, so invocation is feasible. However, with no output schema, '원시 검색 결과' is underspecified and the exact result shape is not disclosed, making this minimally complete rather than fully complete.

    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 100%, so the schema already documents all five parameters. The description adds minimal parameter-level value beyond reinforcing the keyword concept and the service-name criterion.

    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 states a specific verb ('검색합니다'), a specific resource ('서울 열린데이터광장 카탈로그'), and a clear scope ('서비스명 기준'). It also clarifies this is a direct keyword search and what it returns, clearly distinguishing it from the sibling recommendation, detail, refine, and recent-list tools.

    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 the appropriate usage: use this when you want a direct keyword search of the catalog. However, it does not explicitly state when to use this tool versus alternatives such as recommend_seoul_apis_for_idea or refine_seoul_recommendations, leaving routing to inference.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full disclosure burden and does well: it reveals the descending sort behavior by DATA_LT_NM and, more valuably, the caveat that results exceeding 1,000 rows are only sample-sorted and a note announces this. This is genuine behavioral insight beyond the schema. Minor gaps remain around result shape and the note's exact placement.

    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 tight sentences: core action and sort order first, filtering options plus use case second, and the sample-sort caveat last. No filler, no repetition of schema content — every sentence earns its place and the most important action is front-loaded.

    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 there is no output schema and no annotations, the description covers the essentials an agent needs to decide and invoke: purpose, sort semantics, filter capability, use case, and the 1,000-record sampling caveat. It falls just short of fully complete because it never describes the shape of returned items or how the note surfaces, which matters more without an output schema.

    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 100%, so the baseline is 3 — the schema already documents all five parameters (limit, apiOnly, keyword, orgName, division) with defaults and examples. The description adds modest framing by grouping the filters (keyword/org/division) and enumerating division values (본청·산하기관·자치구), but it does not fundamentally extend parameter meaning.

    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 verb and resource ('최근 갱신된 서울시 데이터셋을... 조회합니다') with an explicit sort criterion (DATA_LT_NM 내림차순). The recency-focused scope and the 'actively managed APIs' use case set it apart from generic search or detail siblings, though it never names a sibling directly.

    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 gives a clear contextual trigger: '요즘 활발히 관리되는 API를 바로 찾을 때 유용합니다' (useful when looking for actively-managed APIs). It implies this tool is for recency-driven discovery rather than general purpose search, but it does not state exclusions or explicitly route to alternatives like search_seoul_datasets.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It specifies what the tool returns (provider, department, update cycle, last updated date, SRV_TYPE, and a swaggerUrl), and transparently discloses a key limitation: it cannot resolve individual API endpoint details. This is meaningful behavioral context beyond the schema.

    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 compact and front-loaded: it states the core action first, then lists returned fields, and ends with a necessary caveat. The limitation note earns its place because it prevents the agent from attempting to use this tool to retrieve API endpoint specifications. No wasted words.

    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?

    The tool is simple, with one well-documented parameter and no output schema. The description compensates by naming the key return values and the swaggerUrl limitation. It could be slightly more explicit about the full response shape, but for a single-dataset metadata lookup, the provided information is sufficient for correct invocation.

    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 100%, and the schema already explains that detailUrl is a dataset detail page URL or service ID with concrete examples. The description adds context about what the tool does with that parameter, but no additional semantic depth beyond the schema. A baseline score of 3 is appropriate.

    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 retrieves detailed metadata for a specific Seoul dataset, naming the specific returned fields (provider institution, department, update cycle, last updated date, format). This clearly differentiates it from sibling tools like search_seoul_datasets or list_seoul_recent_updates, which operate over collections rather than a single dataset detail.

    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 implies the tool is used when you have a specific detailUrl or service ID, since that is the required parameter. It also explicitly states what the tool cannot do—retrieve individual API request URLs and parameter specs—and directs the user to the returned swaggerUrl's 'Open API' tab as the alternative. It does not explicitly name sibling alternatives for finding datasets, but the usage context is clear.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden and it states the core behavior: it operates only on the previous results and does not perform a new search, saving tokens and API calls. It could add more about output form or how filters combine, but the main non-side-effect behavior is disclosed.

    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?

    Single concise sentence front-loads the action and includes the main benefit. There is no redundant text or repetition of schema fields.

    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 straightforward refinement tool with fully documented parameters, the description plus schema is sufficient for an agent to call it. It does not describe the output structure, but the output is implied to be the same shape as the input recommendations; with no output schema, a slightly more explicit return note would push this to 5.

    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 100%, so the baseline is 3. The description adds only the generic notion of filtering/sorting by conditions; individual parameter meanings are left to the schema. No additional semantics or examples are given in the description.

    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?

    Description uses a specific verb, re-filter/re-order, and a clear resource, previous recommendation results, and explicitly states it does not re-search. This differentiates it from sibling tools like recommend_seoul_apis_for_idea and search_seoul_datasets.

    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 conveys the context for use, i.e., after a recommendation has been made, to narrow/re-sort without incurring a new search or API call. It does not explicitly name alternatives or exclusion conditions, but '재검색 없이' makes the when-to-use scenario clear.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

seoul-opendata-mcp MCP server — quality and maintenance score on Glama

Copy to your README.md:

Score Badge

seoul-opendata-mcp MCP server — quality and maintenance score on Glama

Copy to your README.md:

Latest Blog Posts

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/youjin8812-hub/seoul-opendata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server