Back to Browse

Hangulport MCP Server

Developer ToolsModerate6.1MCP RegistryLocal
Free

Server data from the Official MCP Registry

Korean NLP via Bareun: morphology, dictionary search, tokenize, and grammar correction.

About

Korean NLP via Bareun: morphology, dictionary search, tokenize, and grammar correction.

Security Report

6.1
Moderate6.1Moderate Risk

hangulport is a thin forwarder that sends Korean text and tool arguments to the documented Bareun endpoint at api.bareun.ai, authenticated by an api-key header read from BAREUN_API_KEY. The code shows no shell execution, file access, obfuscation, or hardcoded secrets. The main concern is that BAREUN_MCP_URL can redirect the API key to any host, including non-HTTPS ones, without validation. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.

8 files analyzed · 8 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-cloudcorprecords-hangulport": {
      "args": [
        "-y",
        "@reneturcios/hangulport"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

hangulport

hangulport is a client for the hosted Bareun Korean NLP service. It exposes morphological analysis with part-of-speech tagging, the raw morphological model output, Urimalsaem dictionary search by jamo slot pattern, sentence tokenization, spelling and spacing correction, and the service's part-of-speech tag list. One binary serves a command-line interface and a stdio MCP server; both forward every call to the hosted endpoint.

An API key is required. Set BAREUN_API_KEY to your Bareun key; it is sent to the endpoint as the api-key header and nowhere else. Calls go to https://api.bareun.ai/mcp unless BAREUN_MCP_URL overrides the endpoint. When the key is missing, calls fail with an error naming BAREUN_API_KEY — no result is invented locally. The 47 POS tags behind list_pos_tags are served by the upstream; they are not hardcoded here.

Install

npx @reneturcios/hangulport tokenize "안녕하세요"

Or run the container image:

docker run -i ghcr.io/cloudcorprecords/hangulport

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead. Both forms need BAREUN_API_KEY in the environment (for Docker, add -e BAREUN_API_KEY=...).

CLI

hangulport analyze_syntax "안녕하세요" --auto-spacing --encoding utf8 --format compact
hangulport analyze_syntax_raw "안녕하세요" --with-sense
hangulport search_dict "ㄱㅏ*" --anchor prefix --limit 5 --with-definition
hangulport tokenize "문장을 나눕니다" --auto-spacing
hangulport correct_grammar "띄어쓰기연습" --enable-sentence-check
hangulport list_pos_tags

hangulport --version

Each subcommand is named after the MCP tool it calls. The first argument is the required text (or dictionary pattern); the remaining flags map one-to-one onto the tool's optional inputs. Boolean flags take no value: passing the flag sets it true, and omitting it forwards nothing — this client injects no defaults of its own. --custom-dict-names takes a comma-separated list. Commands print the upstream result text. Exit codes: 0 on success, 1 when a call fails (including a missing key or an upstream error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/hangulport mcp

MCP client configuration:

{
  "mcpServers": {
    "hangulport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/hangulport", "mcp"],
      "env": { "BAREUN_API_KEY": "your-key" }
    }
  }
}

To point the server at a different Bareun-compatible host, add BAREUN_MCP_URL to the client's env for this server.

Tools

ToolInputWhat it returns
analyze_syntaxtext (required); optional auto_split_sentence, auto_spacing, auto_jointing, custom_dict_names, encoding (utf32/utf16/utf8), format (full/compact), with_senseMorphological analysis with POS tagging.
analyze_syntax_rawtext (required); optional auto_split_sentence, encoding, format, with_senseRaw morphological model output, no post-processing.
search_dictpattern (required); optional anchor (word/prefix/suffix/contains), pos, std_only, with_definition, limit, count_onlyUrimalsaem dictionary matches for a jamo slot pattern.
tokenizetext (required); optional auto_spacing, encodingThe sentence split into word units.
correct_grammartext (required); optional custom_dict_names and nine boolean correction options (treat_as_title, disable_split_sentence, disable_caret_spacing, disable_vx_spacing, enable_limited_punctuation, disable_confusion, enable_cleanup_whitespace, disable_typo_correction, enable_sentence_check)Spelling/spacing correction blocks.
list_pos_tags(none)The 47 Bareun POS tags, as served upstream.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Reviews

No reviews yet

Be the first to review this server!