{"name":"com.scopeblind/protect-mcp","slug":"scopeblind-protect-mcp","title":null,"description":"Fail-closed Cedar policy gate + Ed25519 signed receipts for agent tool calls. Denies on any error.","url":"https://mcp.market/server/scopeblind-protect-mcp","rating":null,"grade":"C","score":65,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":41,"stars":9,"forks":4,"downloads_week":1598,"last_push_at":"2026-09-17T10:50:35.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/scopeblind/scopeblind-gateway","website":null,"version":"0.13.1","remotes":[],"packages":[{"registryType":"npm","identifier":"protect-mcp","version":"0.13.1","transport":{"type":"stdio"},"packageArguments":[{"description":"Run protect-mcp as an MCP server (evaluate_action, sign_decision, verify_receipt, self_test).","value":"mcp","type":"positional","valueHint":"subcommand"}]}],"tools":[{"name":"delete_file","description":"Delete a file from the filesystem","write_action":true,"price_micros":0,"input_schema":null},{"name":"deploy","description":"Deploy the application to production","write_action":true,"price_micros":0,"input_schema":null},{"name":"evaluate_action","description":"Decide whether a proposed agent tool call is allowed by a Cedar policy, fail-closed. Evaluates the call against the policy the same way the protect-mcp gate does at runtime, and on any policy error the decision is DENY (never a silent allow). Inputs: tool (the tool name, e.g. \"Bash\" or \"send_email\"), input (the tool's arguments object; the policy sees it at context.input.*), and policy (inline Ced","write_action":false,"price_micros":0,"input_schema":null},{"name":"github_create_pr","description":"Create a GitHub pull request","write_action":true,"price_micros":0,"input_schema":null},{"name":"pms_book_fill","description":"Book a fill into a mock PMS","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_file","description":"Read the contents of a file","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_test","description":"Prove the gate works, end to end, with no inputs. Runs a known-forbidden action (rm -rf) against a sample deny policy and asserts it is DENIED, then signs a decision and verifies the receipt round-trips. Returns JSON { ok: boolean, gate_denies_forbidden: boolean, sign_verify_roundtrip: boolean, details: object }. This is the 'a gate that cannot prove it denies does not start' check, exposed as a c","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_email","description":"Send an email","write_action":true,"price_micros":0,"input_schema":null},{"name":"sign_decision","description":"Turn a gate decision into an Ed25519 signed receipt (Veritas Acta format, JCS-canonical). A denial signs a gateway_restraint artifact; an allow signs a decision_receipt. This is what makes 'what the agent was blocked from doing' provable after the fact. Inputs: tool (required), decision (\"allow\" | \"deny\", required), reason_code (optional), policy_digest (optional), and private_key_hex (optional 64","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_receipt","description":"Verify a signed receipt offline against a public key. No network, no accounts: the Ed25519 signature is checked over the canonical bytes. Inputs: receipt (the signed artifact object, required) and public_key_hex (optional; falls back to a public_key embedded in the receipt payload). Returns JSON { valid: boolean, error: string | null (e.g. \"invalid_signature\", \"no_public_key\"), type: string, kid: ","write_action":false,"price_micros":0,"input_schema":null},{"name":"web_search","description":"Search the web for information","write_action":false,"price_micros":0,"input_schema":null},{"name":"write_file","description":"Write content to a file","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":65,"grade":"C","scanned_at":"2026-09-19T21:32:13.386Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-19T21:32:13.369Z","components":{"code":{"score":8,"max":25,"notes":["53 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 2 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/chunk-QRLQZXTO.mjs: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"},{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"dist/index.js: … = await import(\"child_process\"); execSync(`docker rm -f ${sandbox.id} 2>/dev/null`, { stdio: \"pipe…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"protect-mcp","version":"0.13.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-10T07:22:24.286Z","repositoryUrl":"git+https://github.com/scopeblind/scopeblind-gateway.git","weeklyDownloads":1598}],"repo":{"found":true,"owner":"scopeblind","repo":"scopeblind-gateway","archived":false,"pushedAt":"2026-09-17T10:50:35Z","stars":9,"forks":4,"openIssues":2,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/271959651?v=4","ownerCreatedAt":"2026-03-29T12:29:25Z","license":"MIT"},"icon":{"url":"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M16%202.5%2027.5%206.6v8.4c0%206.7-4.7%2012.4-11.5%2014.5C9.2%2027.4%204.5%2021.7%204.5%2015V6.6L16%202.5z%22%20fill%3D%22%2317a899%22%2F%3E%3Cpath%20d%3D%22M10.6%2016.2l3.7%203.6%207.3-7.8%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E","source":"site"},"presence":{"stars":9,"forks":4,"downloadsWeek":1598,"license":"MIT","lastPushAt":"2026-09-17T10:50:35.000Z","score":41}}}},"grade_history":[],"reviews":[]}