Metadata-Version: 2.4
Name: sokgi-mcp
Version: 0.2.1
Summary: Sokgi — read and write Korean business documents (HWP/HWPX/DOCX/XLSX/PPTX) from your AI agent
Project-URL: Homepage, https://sokgi.14dimension.com
Project-URL: Console, https://sokgi.14dimension.com/console
Author-email: 14Dimension <admin@14dimension.com>
License: MIT
Keywords: ai-agent,claude,codex,document,hancom,hwp,hwpx,korean,mcp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Korean
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business
Classifier: Topic :: Text Processing :: Markup
Requires-Python: >=3.10
Requires-Dist: mcp<2,>=1.2.0
Requires-Dist: olefile>=0.47
Description-Content-Type: text/markdown

# 속기 (Sokgi) — MCP server

Korean business documents your AI agent can actually read.

An LLM will happily write a parser for `.hwpx` — and on real Korean government documents it
gets **27.9% of tables wrong**, silently. One unhandled merged cell shifts a whole row, so
"담당 부서" comes back as "담당자". Nothing errors.

Sokgi restores tables properly — **on your machine** — and hands your agent the fields it
asked for.

## Tools

| Tool | What it does |
|---|---|
| `read_document(paths)` | Parse locally → text + tables as 0-based grids, merged cells expanded |
| `extract_documents(paths, fields)` | Pull named fields out of a batch of documents |
| `fill_document(template, values, out_path)` | Fill a HWPX template, save a new file |

Formats: **HWPX / DOCX / XLSX / PPTX** (text + tables) and **HWP 5.0** (text). No Hancom Office
required — reading uses a pure-Python OLE parser, writing produces HWPX (ZIP + XML).
PDF is not supported; asking for one returns an explicit error, not an empty document.

## Install

```bash
claude mcp add sokgi --env SOKGI_API_KEY=<key> -- uvx sokgi-mcp
```

Get a free key at <https://sokgi.14dimension.com/console>.

## Why it abstains

A field that is not in the document comes back `null` and listed in `missing` — never invented.
You delegate precisely because you cannot re-check every file, so a confident guess is worse
than useless. Likewise `fill_document` refuses to save a document with unreplaced placeholders
or a table too narrow for its text.

**Where your documents go.** Documents are uploaded to the Sokgi API, processed there, and
deleted right after — they are not stored. Results come back to this machine, and
`fill_document` writes the finished file here.

If your documents may not leave your network at all, that is what the on-premise install is
for: it runs the whole pipeline inside your own network (`SOKGI_LOCAL_PARSE=1`). Ask us.

---

Part of the 명철 (MyungChul) series · <https://ai.14dimension.com> · admin@14dimension.com
