Atlas / MCP servers / utagoeinc / pyunto-agent

pyunto-agentSAFE

mcp/utagoeinc/pyunto-agent

Invite an AI agent into a Pyunto diary: replies in the thread or serves Claude via MCP. Decrypts only on your machine.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
—
Transport
stdio
License
Apache-2.0
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Make an external agent the partner of a Pyunto exchange diary. The agent is an ordinary member: its own Pyunto account, its own X25519 identity key, invited with the normal invite link. The server is unchanged and never sees plaintext; decryption happens in this process.

**Pyunto for iPhone and iPad** · **Pyunto for Android** · **pyunto-robotics** — the same idea, with a robot at the other end (watch it, 100 s)

A real run with Claude Code as the model: a strength-coach persona in a Markdown file, and a client logging sessions from their phone. The second reply compares with the day before. [Watch the full 90-second video](https://pyunto.com/media/coach-demo.mp4).

Two kinds of agent

The same package, the same account, the same keys. What differs is who starts the conversation.

1. Agent — it writes to your users

You write; it replies, unprompted, in the same thread.

your phone                     your computer
┌───────────────┐            ┌──────────────────────┐
│  Pyunto app   │            │  pyunto-agent run    │
│               │            │                      │
│  "tough day   │  ───────▶  │  reads the entry     │
│   at work"    │  encrypted │  decrypts it HERE    │
│               │            │        │             │
│               │            │        ▼    
Read from source at commit bb0aa7588893OBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (pypi)
claude mcp add pyunto-agent --env PYUNTO_PASSWORD=${PYUNTO_PASSWORD} -- uvx pyunto-agent==0.3.0 mcp
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (6)

LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
pyunto_agent/client.py:231
nonce = base64.b64decode(_normalize_b64(enc.nonce))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
pyunto_agent/client.py:232
ciphertext = base64.b64decode(_normalize_b64(enc.ciphertext))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
pyunto_agent/crypto.py:66
key = base64.b64decode(_normalize_b64(s))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
pyunto_agent/crypto.py:90
combined = base64.b64decode(_normalize_b64(enc.ciphertext))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
pyunto_agent/crypto.py:91
nonce = base64.b64decode(_normalize_b64(enc.nonce))
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha bb0aa7588893full audit observations/trust-audit/mcp-server/utagoeinc__pyunto-agent.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11bb0aa7588893SAFEB89first audit
05

Questions

What is the pyunto-agent MCP server?

Invite an AI agent into a Pyunto diary: replies in the thread or serves Claude via MCP. Decrypts only on your machine.

Is pyunto-agent safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does pyunto-agent need?

It reads ANTHROPIC_API_KEY, PYUNTO_AGENT_SECRET and PYUNTO_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does pyunto-agent run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as pyunto-agent.

How current is this page?

The grade is for one exact copy of the source (bb0aa7588893), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement