{"name":"io.github.nickbasharin/aifra","slug":"nickbasharin-aifra","title":"AIfra — temporary static previews","description":"48-hour HTTPS previews of prebuilt static sites and HTML slides. No server builds or backends.","url":"https://mcp.market/server/nickbasharin-aifra","rating":null,"grade":"C","score":55,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":17,"stars":null,"forks":null,"downloads_week":53,"last_push_at":null,"license":"MIT"},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-21T01:00:32.776Z","last_ok_at":"2026-09-21T01:00:32.776Z","latency_ms":557},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://aifra.ru/docs/mcp/","version":"0.2.0-beta.3","remotes":[{"type":"streamable-http","url":"https://api.aifra.ru/mcp"}],"packages":[{"registryType":"npm","identifier":"aifra","version":"0.2.0-beta.2","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional"}],"environmentVariables":[{"description":"Explicit HTTPS API origin","isRequired":true,"format":"string","name":"AI_DEPLOY_API_ORIGIN"},{"description":"Absolute trusted local project directory; only prebuilt relative subdirectories may be uploaded","isRequired":true,"format":"string","name":"AIFRA_PROJECT_ROOT"}]}],"tools":[{"name":"create_preview","description":"Prepare a new temporary static preview. Supply exactly one of small files, ZIP archive_base64, or an allowed provider ZIP file reference. No backend/build. Requires explicit consent; returns an approval link, not a published URL. User must confirm in their browser. ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"files":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"content":{"type":"string","maxLength":1400000},"encoding":{"type":"string","enum":["utf8","base64"]}},"required":["path","content"],"additionalProperties":false}},"archive_base64":{"type":"string","maxLength":69905068},"archive":{"type":"object","properties":{"download_url":{"type":"string","maxLength":8192},"file_id":{"type":"string","minLength":1,"maxLength":256},"mime_type":{"type":"string","maxLength":100},"file_name":{"type":"string","maxLength":240}},"required":["download_url","file_id"],"additionalProperties":false},"accept_terms":{"type":"boolean","const":true}},"required":["accept_terms"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"delete_preview","description":"Prepare deletion of an existing preview. Does not delete until its owner confirms in the browser holding the management key.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"preview_id":{"type":"string","pattern":"^pv_[A-Za-z0-9_-]{24}$"},"confirm_delete":{"type":"boolean","const":true}},"required":["preview_id","confirm_delete"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_deploy_instructions","description":"Explain remote browser-confirmed AIfra publication of ready static files, limits and current terms.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_operation_status","description":"Read whether a prepared operation is pending, complete, failed or uncertain. Returns no file content or management key. Never assume pending means published.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operation_id":{"type":"string","pattern":"^rop_[A-Za-z0-9_-]{43}$"}},"required":["operation_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_preview_status","description":"Read public status, URL and original expiry of an existing preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"preview_id":{"type":"string","pattern":"^pv_[A-Za-z0-9_-]{24}$"}},"required":["preview_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_preview","description":"Prepare replacement of an existing temporary static preview. Supply exactly one of small files, ZIP archive_base64, or an allowed provider ZIP file reference. No backend/build. Requires explicit consent; returns an approval link, not a published URL. User must confirm in their browser. Requires the browser holding the existing management key; expiry is unchanged.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"files":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"content":{"type":"string","maxLength":1400000},"encoding":{"type":"string","enum":["utf8","base64"]}},"required":["path","content"],"additionalProperties":false}},"archive_base64":{"type":"string","maxLength":69905068},"archive":{"type":"object","properties":{"download_url":{"type":"string","maxLength":8192},"file_id":{"type":"string","minLength":1,"maxLength":256},"mime_type":{"type":"string","maxLength":100},"file_name":{"type":"string","maxLength":240}},"required":["download_url","file_id"],"additionalProperties":false},"accept_terms":{"type":"boolean","const":true},"preview_id":{"type":"string","pattern":"^pv_[A-Za-z0-9_-]{24}$"}},"required":["accept_terms","preview_id"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":55,"grade":"C","scanned_at":"2026-09-19T19:22:56.802Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:22:56.784Z","components":{"code":{"score":15,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2880ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 4 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"aifra.cjs: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"},{"id":"obf.hex-density","severity":"medium","component":"code","title":"Heavily hex-escaped string (obfuscation)","evidence":"aifra.cjs: …]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u2302\\xC7\\xFC\\xE9\\xE2\\xE4\\xE0\\xE5\\xE7\\xEA\\xEB\\xE8\\xEF\\xEE\\xEC\\xC4\\xC5\\xC9\\xE6\\xC6\\xF4\\xF6\\xF2\\xFB\\xF9\\xFF\\xD6\\xDC\\xA2\\xA3\\xA5\\u20A7\\u0192\\xE1\\xED\\xF3\\xFA\\xF1\\xD1\\xAA…"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.aifra.ru/mcp","reachable":true,"authRequired":false,"latencyMs":2880,"serverInfo":{"name":"aifra-remote","version":"0.1.0-beta.1"}}],"packages":[{"registryType":"npm","identifier":"aifra","version":"0.2.0-beta.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-09-17T23:24:31.734Z","weeklyDownloads":53}],"repo":{"found":false},"icon":{"url":"https://aifra.ru/favicon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":53,"license":"MIT","lastPushAt":null,"score":17}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"C","reason":"score 55: Write-action tools reachable without authentication; eval / new Function used; Heavily hex-escaped string (obfuscation)","createdAt":"2026-09-19T19:22:58.503Z"},{"kind":"downgrade","fromGrade":"C","toGrade":"D","reason":"score 49: eval / new Function used; Heavily hex-escaped string (obfuscation); No source repository listed","createdAt":"2026-09-19T00:29:42.237Z"}],"reviews":[]}