Meural
Python client library and MCP server for Meural Canvas digital art frames.
Installation
pip install meural
For MCP server support:
pip install meural[mcp]
For CLI support:
pip install meural[cli]
For all features:
pip install meural[all]
Quick Start
As a Library
from meural import MeuralAPI
# Initialize with credentials
api = MeuralAPI(username="your@email.com", password="your_password")
# Or from environment variables (MEURAL_USERNAME, MEURAL_PASSWORD)
api = MeuralAPI.from_env()
# Get user info
user = api.get_user()
# List devices
devices = api.get_user_devices()
# Get galleries
galleries = api.get_user_galleries()
# Search for art
results = api.search("monet")
# Preview an image on device
api.post_device_preview(device_id="12345", item_id="67890")
CLI Usage
# Set credentials
export MEURAL_USERNAME="your@email.com"
export MEURAL_PASSWORD="your_password"
# List devices
meural-cli device list
# Show device details
meural-cli device show
# List galleries
meural-cli gallery list
# Search for art
meural-cli browse search "van gogh"
# Set brightness
meural-cli device brightness 50
MCP Server
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"meural": {
"command": "uv",
"args": ["--directory", "/path/to/meural_api", "run", "python", "-m", "scripts.meural_mcp"],
"env": {
"MEURAL_USERNAME": "your@email.com",
"MEURAL_PASSWORD": "your_password"
}
}
}
}
Available MCP tools:
meural_get_device- Get device info and statusmeural_list_galleries- List user's galleries/playlistsmeural_get_gallery- Get gallery details with itemsmeural_search- Search Meural catalogmeural_preview_item- Preview an image on device (60 seconds)meural_push_gallery- Push a gallery to devicemeural_device_galleries- List galleries on devicemeural_set_brightness- Set device brightnessmeural_set_image- Display an image on device
Authentication
The library uses AWS Cognito for authentication. Tokens are automatically cached and refreshed.
Credentials can be provided via:
- Constructor arguments
- Environment variables (
MEURAL_USERNAME,MEURAL_PASSWORD) - Credentials file (
~/.meural)
API Coverage
The library covers the Meural API v4 including:
- User management
- Device control (brightness, sleep/wake, settings)
- Gallery/playlist management
- Item uploads and management
- Favorites
- Content discovery (channels, artists, categories)
- Search
License
MIT
Metadata
Release files for meural 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 | Provenance | |
|---|---|---|---|---|
| meural-0.1.0.tar.gz | 28.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meural-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.9 kB
Release files / meural-0.1.0.tar.gz
| Download URL | meural-0.1.0.tar.gz |
|---|---|
| Size | 28.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6e92c470966ba308728bc6a337cd316b5d18d5010c716a2deebd5eb91b2103d5
|
|
BLAKE2b-256 checksum How to use checksums |
294796f45a5ab9fd6adbc84ab827c532ee5b2e6fbe2a8d6f57c78eb691e6f7da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / meural-0.1.0-py3-none-any.whl
| Download URL | meural-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a5cfd930e0fd3f1eb60d44524591a9ecbb1de58755003dc7fd0f1ad73eda7307
|
|
BLAKE2b-256 checksum How to use checksums |
a11df4898c81079bbda05bad420b59ddd753a019c01041c8e739e4841ee6469a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Security for meural 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.