{"name":"io.github.michaelyousrie/mailpal","slug":"michaelyousrie-mailpal","title":null,"description":"List, inspect, and run saved HTTP requests from MailPal collections; write tools on Pro","url":"https://mcp.market/server/michaelyousrie-mailpal","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":22,"stars":0,"forks":0,"downloads_week":53,"last_push_at":"2026-08-15T12:46:51.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/michaelyousrie/mailpal","website":"https://marketplace.visualstudio.com/items?itemName=MichaelYousrie.mailpal","version":"0.1.1","remotes":[],"packages":[{"registryType":"npm","identifier":"mailpal-mcp","version":"0.1.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Folder containing the .mailpal collections directory","format":"string","name":"MAILPAL_WORKSPACE"},{"description":"Where run history is written (default ~/.mailpal/history)","format":"string","name":"MAILPAL_HISTORY_DIR"}]}],"tools":[{"name":"bash","description":"Run a bash command in a persistent shell. State (cwd, env vars) persists across calls.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_collection","description":"Create a new empty collection in the workspace. Pro.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_or_update_request","description":"Create a request in a collection, or update it when requestId is given. Pro.","write_action":true,"price_micros":0,"input_schema":null},{"name":"edit","description":"Replace old_string with new_string in a file. old_string must be unique unless replace_all.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_tests","description":"Add baseline assertions to a request (expected status from its latest run, else 200). Pro.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_history_recent","description":"List recent request executions (newest first).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_request","description":"Get the full definition of one saved request by id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"glob","description":"Match files under the workdir against a glob pattern. Results are mtime-sorted, newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"grep","description":"Search file contents for a regex. Uses ripgrep if available, otherwise a built-in walker.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_collections","description":"List all API collections in the workspace with their folders and request names/ids.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_variables","description":"List each collection's variables. Secret variables appear as {\"secret\": \"NAME\"} references; secret values are never returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read","description":"Read a UTF-8 text file relative to the workdir.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_request","description":"Execute a saved request. {{VAR}} placeholders resolve from the owning collection's variables. Returns status, headers, timing and body (truncated to 50KB). Secret values are resolved internally and never returned.","write_action":true,"price_micros":0,"input_schema":null},{"name":"scaffold_test_suite","description":"Add a baseline status assertion to every request in a collection that has no tests yet. Pro.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_collection_variable","description":"Set a NON-SECRET variable on a collection. Secret-referenced variables cannot be written through MCP. Pro.","write_action":false,"price_micros":0,"input_schema":null},{"name":"write","description":"Write a UTF-8 text file relative to the workdir, creating parent directories as needed.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-11-03T19:42:08.844Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T19:42:08.803Z","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":12,"max":15,"notes":["last push 80 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":"dist/index.js: …ourceCode, sch); const validate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"mailpal-mcp","version":"0.1.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-08-15T12:46:24.970Z","repositoryUrl":"git+https://github.com/michaelyousrie/mailpal.git","weeklyDownloads":53}],"repo":{"found":true,"owner":"michaelyousrie","repo":"mailpal","archived":false,"pushedAt":"2026-08-15T12:46:51Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/22775923?v=4","ownerCreatedAt":"2016-10-11T17:43:19Z"},"icon":{"url":"https://marketplace.visualstudio.com/favicon.ico","source":"registry","width":128,"height":128},"presence":{"stars":0,"forks":0,"downloadsWeek":53,"license":"MIT","lastPushAt":"2026-08-15T12:46:51.000Z","score":22}}}},"grade_history":[],"reviews":[]}