Skip to main content

unntak-mcp

local MCP server for the unntak.no agent API at https://app.unntak.no. it lets an MCP client read, create, time, comment on, and complete tasks inside an agent's tag scope.

all supported accounts are end-to-end encrypted. encrypted task content is decrypted only inside this local process. unntak.no receives the inner scoped API credential and ciphertext; the master key from the combined token is never sent to the server.

setup

  1. in app.unntak.no, open :) → settings → agents and create an agent token. copy the complete token once. encrypted tokens start with unntak-agent-v2..
  2. add the local server to your MCP client:
read -s "UNNTAK_TOKEN?Agent token: "
echo
claude mcp add --scope user unntak \
  -e UNNTAK_TOKEN="$UNNTAK_TOKEN" \
  -- uvx unntak-mcp
unset UNNTAK_TOKEN

for a local Unntak instance, also add -e UNNTAK_URL=http://localhost:8000 before --.

the complete token is a password and, for encrypted accounts, also contains the key needed to read the agent's task content. never commit it, paste it into issues, or include it in logs. revoke it in Unntak settings if it is exposed.

only combined unntak-agent-v2. tokens are accepted.

upgrade an existing installation

uvx installs published versions on demand. force it to refresh the cached package, then verify the token and E2EE decryption:

read -s "UNNTAK_TOKEN?Agent token: "
echo
export UNNTAK_TOKEN
uvx --refresh-package unntak-mcp unntak-mcp --check
unset UNNTAK_TOKEN

restart the MCP client afterwards. to replace a revoked token:

read -s "UNNTAK_TOKEN?New agent token: "
echo
claude mcp remove --scope user unntak
claude mcp add --scope user unntak \
  -e UNNTAK_TOKEN="$UNNTAK_TOKEN" \
  -- uvx unntak-mcp
unset UNNTAK_TOKEN

then confirm the connection:

claude mcp list

connection check

the check is read-only. success prints the decrypted agent name, scope, and open task count:

{"agent":"007","open_tasks":0,"scope":"agent;007"}

agent flow

the server sends these rules to the model automatically on connect: check list_tasks at session start, read a task and its comments before working, start the timer, comment progress, and always complete or stop the task before ending the session.

tools

  • whoami — agent name, scope, and open task count
  • list_tasks — open tasks in the agent's scope
  • get_task — one task with comments
  • add_task — create a scoped task
  • start_task / stop_task — operate the live focus timer
  • log_time — log a block of seconds without the live timer
  • comment — comment under the agent's name
  • complete_task — finish a task and archive it

encryption

combined v2 tokens use AES-256-GCM task and comment payloads, authenticated agent metadata, and HMAC-SHA-256 blind scope tokens. plaintext tokens and responses are rejected.

the combined token is split locally. only its inner API token is used as the HTTP bearer credential. ciphertext, keys, and combined tokens are removed from MCP tool results and error messages.

skill/SKILL.md documents the agent workflow for clients with skill support. encrypted accounts must use this MCP package or another compatible local E2EE client because the combined token must never be sent whole as an HTTP bearer.

development

uv sync --locked --dev
uv run pytest
uv build --no-sources

test the built wheel instead of the editable source:

UNNTAK_TOKEN=unntak-agent-v2... \
  uvx --from ./dist/unntak_mcp-0.3.1-py3-none-any.whl unntak-mcp --check

release

CI tests Python 3.11 and 3.14, builds both distributions, and smoke-tests the built artifacts. publishing uses the pypi GitHub environment and PyPI trusted publishing, so no PyPI password is stored in GitHub.

create a tag matching the package version only after CI passes:

uv run pytest
uv build --no-sources
git tag -a v0.3.1 -m v0.3.1
git push origin v0.3.1

the tag publishes to PyPI. server.json can then be published separately to the official MCP registry for discovery.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unntak_mcp-0.3.1.tar.gz (57.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unntak_mcp-0.3.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file unntak_mcp-0.3.1.tar.gz.

File metadata

  • Download URL: unntak_mcp-0.3.1.tar.gz
  • Upload date:
  • Size: 57.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for unntak_mcp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 fcba1974018b8aa0f67f71ce4a0fe82f0ccd6f4f062ab06012af3c5d67693be2
MD5 8ab82ce71650a9cd84b9567665c3b5d0
BLAKE2b-256 b13259777e128f792e58503246845778982e93efa875d5eccf7595ad60b71d73

See more details on using hashes here.

File details

Details for the file unntak_mcp-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: unntak_mcp-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for unntak_mcp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6ba5802195a04a850be645e4fe3f1d9cda07cad4c30f21cfa22e5b50c110cb1c
MD5 946b7f9207710007483abe76fa53fc07
BLAKE2b-256 34c5d853fbc0dc17e0733f6019b4ed36b5d8a14e4432fee23b8823cf51d88521

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.2

2 files

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page