{"name":"io.github.ariferol01/tuval-studio","slug":"ariferol01-tuval-studio","title":null,"description":"Tuval Studio MCP: Graphic design, AI design & PDF catalog generator for Claude, Cursor & AI agents.","url":"https://mcp.market/server/ariferol01-tuval-studio","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":25,"stars":0,"forks":0,"downloads_week":107,"last_push_at":"2026-10-05T23:58:38.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/ariferol01/tuval-studio-mcp","website":null,"version":"1.0.7","remotes":[],"packages":[{"registryType":"npm","identifier":"@ariferol01/tuval-studio-mcp","version":"1.0.7","transport":{"type":"stdio"}}],"tools":[{"name":"assets_list_local","description":"Scans and lists all local images, icons, logos, and graphic assets in the workspace-assets directory ready to be placed onto the canvas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assets_list_patterns","description":"Lists all built-in geometric pattern and texture background presets (Dot Matrix, Technical Blueprint, Carbon Fiber, Diagonal Stripes, 3D Isometric Wireframe, Topography, Circuit Board).","write_action":false,"price_micros":0,"input_schema":null},{"name":"assets_list_stickers","description":"Lists all available built-in SVG stickers, badges, and vector elements available for insertion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assets_list_stock_pngs","description":"Lists free transparent 3D cutout assets, holographic spheres, lighting flares, and curated royalty-free photography available for instant placement.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assets_load_from_path","description":"Reads any local image or graphic file from the user computer (absolute path e.g. \"C:/Users/name/Desktop/logo.png\" or relative path), encodes it to Base64, and returns the data URL for use in canvas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"brush_draw","description":"Executes freehand brush drawing on the canvas with specific brush style (\"pencil\", \"spray\", \"circle\", \"eraser\"), color, size, and path coordinates.","write_action":true,"price_micros":0,"input_schema":null},{"name":"canvas_clear","description":"Clears all layers and objects from the canvas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"canvas_create_new","description":"Creates a new blank canvas with specific dimensions and background color.","write_action":true,"price_micros":0,"input_schema":null},{"name":"canvas_load_template","description":"Loads a pre-designed layout template onto the canvas (e.g. \"social-launch\", \"neon-sale-story\", \"youtube-thumbnail\", \"minimal-post\", \"bold-thumbnail\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"canvas_set_background","description":"Sets the solid background color or enables alpha transparency. NOTE FOR AI DESIGNERS: You are NOT restricted to solid colors! You can search & apply rich background photography, architectural textures, gradients, or pattern grids using \"image_add\" with { isBackground: true }, or choose from \"assets_list_patterns\" / \"assets_list_stock_pngs\" / \"assets_list_local\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"canvas_set_dimensions","description":"Changes the dimensions or applies a social media preset (1080x1080 Instagram Post, 1080x1920 Story, 1280x720 YouTube Thumbnail, 1200x630 Facebook/Web Banner).","write_action":false,"price_micros":0,"input_schema":null},{"name":"canvas_set_gradient","description":"Applies a modern gradient to the canvas background. You can specify a built-in preset (\"cyber\", \"sunset\", \"emerald\", \"space\", \"gold\", \"candy\", \"noir\") or custom colors array and angle.","write_action":false,"price_micros":0,"input_schema":null},{"name":"canvas_set_pattern","description":"Applies a patterned or textured geometric background to the canvas artboard.","write_action":false,"price_micros":0,"input_schema":null},{"name":"design_audit_layout","description":"Audits the current active canvas for text collisions, layer overlaps, and boundary overflows. Returns actionable recommendations for fixing overlaps and spacing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"element_add_stock","description":"Adds a free copyright-free stock image or cutout to the canvas directly by search query, image URL, or asset key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"elements_search","description":"Searches through thousands of copyright-free stock photos, transparent PNG cutouts, SVG vector icons, trust badges, and backgrounds by keywords and category filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"filter_adjust_values","description":"Manually adjusts color grading sliders on an image layer (brightness, contrast, saturation, hue, blur, noise, sepia, grayscale).","write_action":false,"price_micros":0,"input_schema":null},{"name":"filter_apply_preset","description":"Applies an aesthetic color grading preset to an image layer (\"Warm Film\", \"Cyberpunk\", \"Moody Noir\", \"Vintage 70s\", \"Pastel Soft\", \"Vivid HDR\", \"Film Grain\", \"Normal\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"history_redo","description":"Redoes the previously undone change.","write_action":false,"price_micros":0,"input_schema":null},{"name":"history_undo","description":"Reverts the canvas to the previous undo history state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"image_add","description":"Adds an image layer to the canvas. Source can be ANY local file path on the user computer (e.g. \"C:/path/to/img.png\" or \"workspace-assets/photo.jpg\"), an external public URL (e.g. Unsplash), or a Base64 data URL. Set isBackground: true to automatically make it a full-bleed background.","write_action":false,"price_micros":0,"input_schema":null},{"name":"image_crop","description":"Crops an image layer with a given aspect ratio (1:1, 4:5, 16:9, 9:16) or custom pixel coordinates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"image_remove_bg_auto","description":"Applies AI 1-click automatic background removal to an image layer by analyzing edges.","write_action":true,"price_micros":0,"input_schema":null},{"name":"image_remove_bg_magic","description":"Performs Magic Wand background removal on an image layer by sampling color at click coordinates with tolerance and feather smoothing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"layer_align","description":"Aligns an object to the canvas artboard (\"center\", \"left\", \"right\", \"top\", \"bottom\", \"center_h\", \"center_v\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"layer_delete","description":"Deletes a layer from the canvas.","write_action":true,"price_micros":0,"input_schema":null},{"name":"layer_duplicate","description":"Duplicates an existing layer and adds the copy to the canvas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"layer_reorder","description":"Reorders a layer in the visual z-index stack (\"bring_to_front\", \"send_to_back\", \"bring_forward\", \"send_backward\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"layer_set_gradient","description":"Applies a gradient fill to an existing text or shape layer by layerId.","write_action":false,"price_micros":0,"input_schema":null},{"name":"layer_set_shadow","description":"Adds or updates drop shadow on a layer (color, blur radius, horizontal/vertical offsets, or quick preset: \"soft\", \"float\", \"glow\", \"none\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"layer_set_state","description":"Toggles visibility (hide/show), locks/unlocks selection, or renames a layer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"layer_transform","description":"Transforms a layer: move X/Y, rotate angle, flip horizontally/vertically, set opacity, or change blend mode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"layers_get_all","description":"Returns the complete hierarchical list of all objects/layers currently on the canvas with their IDs, positions, and styles.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pages_add","description":"Adds a new page to the document. Ideal for designing multi-page catalogs, product lookbooks, brochures, magazines, and pitch decks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pages_delete","description":"Deletes a page from the document by index (the document must always keep at least 1 page).","write_action":true,"price_micros":0,"input_schema":null},{"name":"pages_duplicate","description":"Duplicates an existing page (including all text, shapes, images, and styling) into a new page immediately following it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pages_list","description":"Returns the full list of pages in the current multi-page document with titles, indices, dimensions, and active status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pages_switch","description":"Switches the active canvas view to a specific page index or page ID so the AI agent can design on that page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pdf_export_catalog","description":"Compiles all pages (or active page) into a print-ready, high-resolution multi-page PDF document and triggers client-side download.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_export_download","description":"Triggers the browser to download the current design as PNG, JPEG, SVG, or project JSON.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_save_local","description":"Saves the current design project state to the browser local storage / cloud session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_set_title","description":"Renames the active project title displayed in the top navbar and export filename.","write_action":false,"price_micros":0,"input_schema":null},{"name":"shape_add","description":"Adds a geometric shape to the canvas (rect, rrect, circle, triangle, star, heart). Supports fills, strokes, corner radius, and opacity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"shape_update_style","description":"Modifies the fill, stroke, corner radius, or opacity of an existing shape layer.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sticker_add","description":"Alias for svg_add. Adds a sticker or badge vector element to the canvas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_batch_actions","description":"Executes a sequential batch of multiple canvas actions in one round-trip and returns the final visual screenshot and layer state for rapid design creation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"studio_check_status","description":"Checks whether Tuval Studio is open in the browser and connected to the local WebSocket bridge. If not connected, instructs the AI agent to open https://tuval.site/editor in the user's browser.","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_export_file","description":"Exports the current graphic to a local image file on the host machine (PNG, JPG, WebP, SVG) with customizable resolution scaling (1x, 2x Retina, 3x Print 300DPI, 4x Ultra HD).","write_action":false,"price_micros":0,"input_schema":null},{"name":"studio_get_view","description":"Captures the current live canvas graphic and layer hierarchy. Returns an image for visual inspection and critique by vision AI models.","write_action":false,"price_micros":0,"input_schema":null},{"name":"svg_add","description":"Adds an SVG vector graphic, sticker, or badge to the canvas. Key can be from built-in library (\"verified-badge\", \"sale-badge\", \"star-burst\", \"cyber-cross\", \"arrow-swirl\", \"sparkle-star\", \"crown-vip\", \"fire-flame\", \"quote-marks\", \"heart-glow\", \"abstract-blob\") or raw SVG string.","write_action":false,"price_micros":0,"input_schema":null},{"name":"templates_list","description":"Lists all pre-designed templates across all professional design styles (Bento Grid, Corporate, Branding, Luxury, Minimalist, AI & Tech, Retro 80s, Y2K Rave, Bauhaus, Neobrutalism, Art Deco, Memphis Pop).","write_action":false,"price_micros":0,"input_schema":null},{"name":"text_add","description":"Adds a typography text layer to the canvas with styling (fonts: Sora, Inter, Playfair Display, Montserrat, Poppins, Space Grotesk, Roboto, etc.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"text_update_style","description":"Updates typography properties of an existing text layer by its layerId.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-10-14T05:26:18.304Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-14T05:26:18.234Z","components":{"code":{"score":20,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"bundle.mjs: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@ariferol01/tuval-studio-mcp","version":"1.0.7","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-10-05T23:38:42.765Z","repositoryUrl":"git+https://github.com/ariferol01/tuval-studio-mcp.git","weeklyDownloads":107}],"repo":{"found":true,"owner":"ariferol01","repo":"tuval-studio-mcp","archived":false,"pushedAt":"2026-10-05T23:58:38Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/23642284?v=4","ownerCreatedAt":"2016-11-21T20:02:34Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/23642284?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":107,"license":"MIT","lastPushAt":"2026-10-05T23:58:38.000Z","score":25}}}},"grade_history":[],"reviews":[]}