CLI and MCP client for hosted dataz.md Discord and Telegram accounts
Project description
dataz-client
dataz-client is the read-only CLI and local MCP stdio bridge for hosted
dataz.md Discord and Telegram accounts.
Install and connect
Install the isolated command-line package:
pipx install dataz-client
# alternative: uv tool install dataz-client
In the dataz.md portal, open an active account and choose Connect CLI/MCP, or copy its HTTPS endpoint. Then add a protected local profile:
dataz account add work-discord \
--url https://YOUR_ACCOUNT_ENDPOINT
The command infers the provider, securely prompts for the one-time-visible
DATAZ_API_KEY, calls the provider's status operation, and saves only after
verification succeeds. For a noncanonical endpoint, add --provider discord
or --provider telegram.
Verify and use the account:
dataz --profile work-discord status
dataz account test work-discord
dataz --profile work-discord doctor --json
Install into an MCP client
One command creates a user-level entry. The MCP client receives the absolute
dataz-mcp path and profile name, never the endpoint or API key:
dataz mcp install codex --profile work-discord
Supported clients:
dataz mcp install claude-code --profile work-discord
dataz mcp install claude-desktop --profile work-discord
dataz mcp install cursor --profile work-discord
dataz mcp install vscode --profile work-discord
The default server name is dataz-PROFILE. Use --name NAME to choose another
name. Repeating an identical installation is a no-op; a conflicting existing
entry requires --replace. Codex uses ~/.codex/config.toml, Claude Code uses
user scope in ~/.claude.json, Cursor uses ~/.cursor/mcp.json, and the
desktop installers always target user-level configuration.
Multiple accounts
Create one profile per account. Two Telegram and two Discord accounts become four isolated profiles and four independently named MCP servers:
dataz account add telegram-personal --url https://.../telegram
dataz account add telegram-team --url https://.../telegram-2
dataz account add discord-primary --url https://.../discord
dataz account add discord-community --url https://.../discord-2
dataz mcp install codex --profile telegram-personal
dataz mcp install codex --profile telegram-team
dataz mcp install codex --profile discord-primary
dataz mcp install codex --profile discord-community
Each MCP process resolves exactly one profile and exposes only that provider's tools. Keys and endpoints cannot cross between accounts.
Profile security
Profiles are stored in a platform-native profiles.json:
- macOS:
~/Library/Application Support/Dataz/profiles.json - Linux:
${XDG_CONFIG_HOME:-~/.config}/dataz/profiles.json - Windows:
%APPDATA%\Dataz\profiles.json
The client writes atomically. POSIX files must be owned by the current user and
have mode 0600; insecure files are refused. On Windows, inherited access is
removed and the ACL is restricted to the current user. The profile store is
plaintext protected by filesystem permissions, not an OS keychain.
If permissions were changed outside the CLI, repair them before retrying:
chmod 600 "/path/to/profiles.json"
icacls "%APPDATA%\Dataz\profiles.json" /inheritance:r /grant:r "%USERNAME%:(F)"
Never commit this file, paste a key into a command argument, or place a plaintext key in shell history, logs, screenshots, issues, or MCP client configuration. Rotate exposed keys under Portal → API keys.
Servers, containers, and CI
Environment configuration remains supported where a profile file is not appropriate:
DATAZ_API_URL=https://YOUR_ACCOUNT_ENDPOINT
DATAZ_API_KEY=dz_live_...
DATAZ_PROVIDER is optional for canonical endpoints ending in discord,
discord-N, telegram, or telegram-N; otherwise set it explicitly. Do not
mix DATAZ_PROFILE or --profile with direct hosted variables.
Safe diagnostics:
dataz doctor --json
dataz-mcp --check --json
Exit 0 means healthy, 1 means a network/auth/remote failure, and 2 means
local configuration is invalid. Reports use stable codes and never include the
key or remote account payload.
Local contributor compatibility
When no profile or hosted variables are present, the commands preserve the legacy contributor defaults:
DATAZ_DISCORD_URLdefaults tohttp://localhost:8000.DATAZ_TELEGRAM_URLdefaults tohttp://localhost:8001.- provider-specific legacy keys remain supported.
Local mode prints a warning so a hosted user can immediately recognize missing configuration.
- Documentation: https://dataz.md/mcp
- Portal: https://dataz.md/portal
- Terms: https://dataz.md/terms
- Security: https://dataz.md/security
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dataz_client-0.2.0.tar.gz.
File metadata
- Download URL: dataz_client-0.2.0.tar.gz
- Upload date:
- Size: 26.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61968b79e145ce21c0c0b0819de8c0d58c01642a928f5a871ca40a6accfaf558
|
|
| MD5 |
8b8969c7c60afea3dc5e5145a338eb28
|
|
| BLAKE2b-256 |
569aa004b7e946edb2813e861b2619ee5aea842dc922ed6d14e6db69d3e3cedf
|
Provenance
The following attestation bundles were made for dataz_client-0.2.0.tar.gz:
Publisher:
publish-client.yml on jsindy/dataz.md
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataz_client-0.2.0.tar.gz -
Subject digest:
61968b79e145ce21c0c0b0819de8c0d58c01642a928f5a871ca40a6accfaf558 - Sigstore transparency entry: 2227574759
- Sigstore integration time:
-
Permalink:
jsindy/dataz.md@33ee4bdace7cef17e14fae045e3dd911dd8fcab9 -
Branch / Tag:
refs/tags/dataz-client-v0.2.0 - Owner: https://github.com/jsindy
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-client.yml@33ee4bdace7cef17e14fae045e3dd911dd8fcab9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dataz_client-0.2.0-py3-none-any.whl.
File metadata
- Download URL: dataz_client-0.2.0-py3-none-any.whl
- Upload date:
- Size: 28.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a04d276b24bf4c1e0ed5bed33182adfcb054aff85a9ebccd205ee95361763da
|
|
| MD5 |
a4bafbd4b30d0a33c433cd5759df245a
|
|
| BLAKE2b-256 |
9ffe58b6fe17c4b028bde146f64dd38a9e3c575db20052c967ec6bba4b70e3bb
|
Provenance
The following attestation bundles were made for dataz_client-0.2.0-py3-none-any.whl:
Publisher:
publish-client.yml on jsindy/dataz.md
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataz_client-0.2.0-py3-none-any.whl -
Subject digest:
6a04d276b24bf4c1e0ed5bed33182adfcb054aff85a9ebccd205ee95361763da - Sigstore transparency entry: 2227575270
- Sigstore integration time:
-
Permalink:
jsindy/dataz.md@33ee4bdace7cef17e14fae045e3dd911dd8fcab9 -
Branch / Tag:
refs/tags/dataz-client-v0.2.0 - Owner: https://github.com/jsindy
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-client.yml@33ee4bdace7cef17e14fae045e3dd911dd8fcab9 -
Trigger Event:
release
-
Statement type: