nace-mcp
An MCP server for the Drex API: coding agents get calibrated decisions and document jobs as tools. MIT; built on nace-sdk.
nace-mcp login # or: uvx nace-mcp login; paste a key from https://console.nace.ai/dashboard/api-keys
claude mcp add nace -- uvx nace-mcp # Claude Code
nace-mcp login checks the key against Drex and saves it to ~/.nace/config.toml (mode 0600), the file nace login from nace-cli writes too, so either signs in both. --api-key KEY passes the key, --api-key - reads it from stdin; without a terminal one of them is required. $NACE_API_KEY, $NACE_BASE_URL and $NACE_CONFIG_PATH in the server's environment override the file. Without a key the server still starts, and every tool answers with how to sign in until one is saved. The server reads the credentials on each call, so nace-mcp login while it runs, to sign in or to replace a refused key, needs no restart. nace-mcp --version prints the server and SDK versions.
Connect an agent
Codex: codex mcp add nace -- uvx nace-mcp (or a [mcp_servers.nace] table with command = "uvx" and args = ["nace-mcp"] in ~/.codex/config.toml).
OpenCode (opencode.json): "mcp": {"nace": {"type": "local", "command": ["uvx", "nace-mcp"], "enabled": true}}.
Claude Desktop (claude_desktop_config.json) and Cursor (.cursor/mcp.json):
{
"mcpServers": {
"nace": {
"command": "uvx",
"args": ["nace-mcp"]
}
}
}
Add "env": {"NACE_API_KEY": "nace_sk_..."} to pass a key without nace-mcp login. To install it once instead of through uvx: pipx install nace-mcp (Python 3.11 or later), then use nace-mcp as the command.
Tools
| Tool | What it does |
|---|---|
decide |
Answer typed questions (noul, choice, score) about text or JSON with calibrated probabilities. |
list_models |
List the models decide can use. |
upload_document |
Upload a local file into the account's workspace. |
parse_document |
Convert a document to Markdown, text or layout blocks. |
split_document |
Cut a packet into segments, each with a class. |
classify_document |
Label a document, or each page, with your classes. |
extract_data |
Fill a JSON Schema, with a status and citation per field. |
ground_items |
Find where each quote appears in a document. |
get_job |
Read a job and a summary of its result. |
wait_for_job |
Wait for a job to finish. |
list_jobs |
List jobs, newest first. |
cancel_job |
Cancel a running job, or drop a finished one from the list. |
get_job_request |
The request a job ran under. |
download_job_file |
Save a file a job produced. |
get_job_rows |
Page through a parsed sheet's rows. |
list_extraction_schemas |
List saved extraction schemas. |
get_extraction_schema |
Read a saved schema, at its latest or a given version. |
list_extraction_schema_versions |
List a saved schema's versions. |
create_extraction_schema |
Save a new extraction schema. |
add_extraction_schema_version |
Add a version to a saved schema. |
get_documentation |
Usage notes for a topic, shipped with the server. |
The document tools take one source: an https:// url, a local path (uploaded first), an uploaded file's workspace_id and file_id, or a finished parse's parse_job_id. They wait up to wait_seconds (60 at most) and return the job; one still running comes back with an instruction to call wait_for_job. Any other request field goes in a tool's options; an argument a tool doesn't have is refused rather than ignored. Results are summarised, and text or JSON longer than max_inline_chars is written to a file readable only by you, whose path is returned. For a document too large to return inline, parse_document saves the full Markdown to a file.
Full documentation: MCP server.
Metadata
Release files for nace-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nace_mcp-0.1.0.tar.gz | 37.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nace_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 86.8 kB
Release files / nace_mcp-0.1.0.tar.gz
| Download URL | nace_mcp-0.1.0.tar.gz |
|---|---|
| Size | 37.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2cca325fcf174cb7490e40da94cbdbc1e907cd1cc98c48c5c5e8a523917807a
|
|
BLAKE2b-256 checksum How to use checksums |
db5d78491024b94f4ecd88cdfca3eeb53a7317e7fccb0f6a7371dd05fc5b5f5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / nace_mcp-0.1.0-py3-none-any.whl
| Download URL | nace_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 49.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ddde0f43fc8578f538c497eae1c1354af891df1876f51d1e7fb19a3b42104ae
|
|
BLAKE2b-256 checksum How to use checksums |
8ebb0f456dc41a44498823d950d01889c62d1a18e1802184c1c5dff2fd99de7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log