Parent/fan access to Artsonia student-art portfolios, comments, and fans (AI-built).
About
Parent/fan access to Artsonia student-art portfolios, comments, and fans (AI-built).
Security Report
Valid MCP server (2 strong, 1 medium validity signals). 3 known CVEs in dependencies (0 critical, 2 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (79/80 approved); 5 highly-trusted packages.
10 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: ARTSONIA_USERNAME
Environment variable: ARTSONIA_PASSWORD
Environment variable: ARTSONIA_SESSION_CACHE
Environment variable: ARTSONIA_SESSION_FILE
Environment variable: ARTSONIA_OUTPUT_DIR
Environment variable: ARTSONIA_TRANSPORT
Environment variable: ARTSONIA_WS_PORT
Environment variable: ARTSONIA_INLINE_DOWNLOADS
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-chrischall-artsonia-mcp": {
"env": {
"ARTSONIA_WS_PORT": "your-artsonia-ws-port-here",
"ARTSONIA_PASSWORD": "your-artsonia-password-here",
"ARTSONIA_USERNAME": "your-artsonia-username-here",
"ARTSONIA_TRANSPORT": "your-artsonia-transport-here",
"ARTSONIA_OUTPUT_DIR": "your-artsonia-output-dir-here",
"ARTSONIA_SESSION_FILE": "your-artsonia-session-file-here",
"ARTSONIA_SESSION_CACHE": "your-artsonia-session-cache-here",
"ARTSONIA_INLINE_DOWNLOADS": "your-artsonia-inline-downloads-here"
},
"args": [
"-y",
"artsonia-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
artsonia-mcp
Artsonia MCP server for Claude — developed and maintained by AI (Claude Code)
Download folders
artsonia_download_artwork saves images only inside an allowed folder; any other dest is refused before anything is fetched or written, and no file is ever written through a symlink.
| variable | default | |
|---|---|---|
ARTSONIA_OUTPUT_DIR | ~/Downloads and ~/Pictures | The folders dest must be inside (subfolders are fine and are created). Several folders: separate them with : (; on Windows). On a hosted server (MCP_DATA_DIR or MCP_BLOB_BASE_URL set), or with ARTSONIA_INLINE_DOWNLOADS=1, nothing is written to disk, so dest is only a label and is not checked: images come back inline up to 10 MiB per result, the rest as one signed zip link when the host has a blob store, and anything that still cannot be delivered is listed by name with the reason. |
Upgrading
next release
artsonia_download_artwork no longer drops or strands an image. What changed in its result:
- Hosted servers never write to disk. With
MCP_DATA_DIRorMCP_BLOB_BASE_URLset, downloads now behave as ifARTSONIA_INLINE_DOWNLOADS=1were set, whatever that variable says. Before, a hosted server without it saved into$MCP_DATA_DIR/downloadsand reported files nobody could open. Because no file is written, a hosted result no longer carriesdest,downloaded[].file,skipped[].file,index_fileormetadata_count(write_indexandwrite_metadatahave nothing to write there); readdelivered_viainstead. - New
archive(only when used):{ url, expires_at, file_count, bytes, archive_bytes }. On a hosted server with a blob store, the images that do not fit inline (10 MiB per result) go into one zip behind that signed link. They count as downloaded. downloaded[]entries gaindelivered_viaon the inline path:"inline","archive"(plusarchive_file, its path in the zip) or"link"(plusurlandexpires_at, for a single image too big to inline). Disk downloads are unchanged.omitted[]entries were{ artwork_id, bytes, is_private }. They are now{ artwork_id, name, bytes, reason, title?, is_private }.nameis the file name the image would have had, andreasonsays why it was not delivered. An image whose zip upload failed is moved here fromdownloaded.failed[]entries gaintitlewhen the artwork's detail page was read.
Confirmations
The writes that reach other people — posting a comment and inviting a fan — ask you to confirm them first. Changing your notification settings, marking feedback read, and downloading artwork into your allowed download folders run straight away. A client that can show a confirmation prompt (Claude Code) shows one. A client that cannot (claude.ai, Claude Desktop) gets a two-step flow instead: the first call changes nothing and returns a preview of exactly what would be sent plus a confirmToken; only a second, identical call carrying that token goes ahead. The token is single-use, expires, and is refused if anything changed between the two calls.
| variable | default | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | What a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse. |
MCP_CONFIRM_ELICITATION | on | off never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE path. Set it for a client that claims to support prompts but never shows one (the write hangs — opencode 2.0.x). Any other value stays on, with a warning on stderr. |
MCP_CONFIRM_TTL_SECONDS | 600 | How long a token stays valid. |
MCP_CONFIRM_SECRET | random per process | Signing key; set it only if tokens must survive a server restart. |
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.