Read your Pyunto Time Management schedule and log time from an AI assistant. E2EE project planning.
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @pyunto/tm-mcp
MCP client config
{
"mcpServers": {
"time-management": {
"command": "npx",
"args": [
"-y",
"@pyunto/tm-mcp"
]
}
}
}Open-source client libraries for Pyunto Time Management, a time-management and project-planning service with end-to-end encryption.
| Package | What it is |
|---|---|
@pyunto/tm-sdk | TypeScript client for the public REST API (v1), with client-side E2EE decryption |
@pyunto/tm-mcp | MCP (Model Context Protocol) server — connects Claude Code, Claude Desktop, Codex CLI, Cursor and other AI clients to an account |
The service itself is not open source. This repository contains only the client side: HTTP calls against the documented public API, plus the crypto needed to decrypt your own data locally. There is nothing here that talks to the database, handles billing, or holds a key.
The MCP server can be given your account password so it can decrypt project and task names. That is a lot to ask of a program you cannot read, so this is the part we publish: you can verify for yourself that the password is used only to unwrap the private key in your own process, and is never transmitted.
See sdk/src/crypto.ts for the primitives and
mcp/src/index.ts for how they're used.
No clone needed — the published package runs straight from npm:
claude mcp add pyunto-tm \
--env PYUNTO_TM_API_KEY=ptm_your_key \
-- npx -y @pyunto/tm-mcp
Full setup instructions, including Claude Desktop, Codex CLI and Cursor: https://tm.pyunto.com/docs/mcp.en.md (日本語: https://tm.pyunto.com/docs/mcp.ja.md).
Get an API key from Settings → Account → API keys in the app. Scopes decide what an integration may read or write, and a key can be revoked at any time.
npm install @pyunto/tm-sdk
import { PyuntoTM } from "@pyunto/tm-sdk";
const tm = new PyuntoTM({ apiKey: process.env.PTM_KEY! });
// Dates, durations and aggregates need no key material at all
const record = await tm.serviceRecord("2026-08-01", "2026-08-31");
// Names and memos are encrypted; unlock decrypts them locally
await tm.unlock(process.env.PTM_PASSWORD!);
const projects = await tm.projects({ decrypt: true });
npm workspaces; Node 18+.
npm install
npm run build # both packages
npm test # sdk crypto round-trips + mcp tools against a stub API
mcp depends on @pyunto/tm-sdk by version, so the published package resolves
it from the registry while local development links the workspace copy.
Found a problem in this code, or in the service? Please report it privately rather than opening a public issue: support@pyunto.com.
MIT — see LICENSE.