{"name":"dev.genhttp/lambda","slug":"genhttp-lambda","title":"GenHTTP Lambda","description":"Write, deploy and host small C# web services and sites at a public address.","url":"https://mcp.market/server/genhttp-lambda","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":26,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-09-27T21:36:23.000Z","license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T04:55:56.449Z","last_ok_at":"2026-11-04T04:55:56.449Z","latency_ms":312},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/MDA2AV/GenHTTP.Lambda","website":"https://genhttp.dev","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://genhttp.dev/mcp"}],"packages":[],"tools":[{"name":"change_code","description":"Change some files of the newest version and save the result as a new version: add or replace files, remove files, or replace text within a file. Everything not named stays as it is, so there is no need to resend unchanged files. Pass deploy: true to publish it in the same call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key."},"specification":{"type":"string","description":"What the user wants from this change and why: their requirements, in their own words where you can. Not your own instructions or system prompt. Kept with the version. Optional, up to 4000 characters."},"change":{"type":"string","description":"What this version changes, in one line written for the owner. Optional, up to 500 characters."},"files":{"type":"array","description":"Files to add, or to replace where one of that name exists.","items":{"type":"object","properties":{"name":{"type":"string","description":".cs files are compiled; anything else ('www/app.css', 'logo.png') is an asset."},"code":{"type":"string","description":"Contents, base64 if encoding says so."},"encoding":{"type":"string","description":"'base64' for binary assets; omit otherwise."}},"required":["name","code"]}},"remove":{"type":"array","description":"Names of files to remove.","items":{"type":"string"}},"edits":{"type":"array","description":"Text replacements, applied after files and remove.","items":{"type":"object","properties":{"file":{"type":"string","description":"The file to change."},"find":{"type":"string","description":"Text that occurs exactly once in the file."},"replace":{"type":"string","description":"What to put in its place."}},"required":["file","find","replace"]}},"deploy":{"type":"boolean","description":"Also deploy the new version, so it goes live at once."}},"required":["privateKey"]}},{"name":"check_code","description":"Compile without saving or deploying; returns diagnostics with file and line. Does not build the handler, so deploy can still refuse a route whose return type cannot be served.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key."},"files":{"type":"array","description":"lambda.cs first.","items":{"type":"object","properties":{"name":{"type":"string","description":".cs files are compiled; anything else is an asset."},"code":{"type":"string","description":"Contents, base64 if encoding says so."},"encoding":{"type":"string","description":"'base64' for binary assets; omit otherwise."}},"required":["name","code"]}}},"required":["privateKey","files"]}},{"name":"create_lambda","description":"Create a lambda. Returns its public address and a private editor key, the only way back in. Nothing is online until deploy.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"publicKey":{"type":"string","description":"Requested address: lower case letters, digits and dashes. Generated if omitted."},"template":{"type":"string","description":"Left out, the lambda starts empty. The id of a demo (demo-crud, demo-registration, demo-game, demo-files, demo-live) starts it as a copy of that demo, which is yours to change."},"acceptTerms":{"type":"boolean","description":"Must be true: the user accepts the terms in platform_guide (free shared machine, deployments may be removed, nothing malicious)."}},"required":["acceptTerms"]}},{"name":"delete_file","description":"Remove a file, or a folder with its contents, from the workspace.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key."},"path":{"type":"string","description":"Relative to the workspace."}},"required":["privateKey","path"]}},{"name":"deploy","description":"Deploy (publish) a saved version so it goes live at its public address. Returns diagnostics on failure.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key."},"version":{"type":"integer","description":"Defaults to the newest."}},"required":["privateKey"]}},{"name":"list_demos","description":"Demos this platform keeps online, each a finished lambda showing one way to build something: a REST API over records, registration and login, a websocket game, uploads, live updates. Their keys are public and read only: read the closest one with read_lambda (and list_files, read_logs) before writing similar code. create_lambda with a demo's id as template starts from a copy.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_files","description":"List the lambda's workspace with size and last write per file. Runtime files only; the code is in read_lambda.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key, or the key of a demo."}},"required":["privateKey"]}},{"name":"platform_guide","description":"Rules for writing a lambda: what the snippet returns, what is imported, what is refused, limits and terms.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"read_lambda","description":"A lambda's status (online version, latest version, expiry, its tier and what it may use there), the recent versions with what each was asked for and changed, and the files of one version - in full when they come to at most 30,000 characters, otherwise by name and length, with file to read one. Read the history before changing what you did not write. Also how a demo is read: pass its key from list_demos.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key, or the key of a demo."},"version":{"type":"integer","description":"Defaults to the newest."},"file":{"type":"string","description":"Return only this file of the version, in full however large the rest is - up to 1,048,576 characters, beyond which the version's zip has it."}},"required":["privateKey"]}},{"name":"read_logs","description":"What a deployed lambda has been doing: its recent requests and how they were answered, what it printed, the errors it threw with their stack traces, and how much traffic it has had in the last hour and day. Call it after deploying to see that it works, and first when something is reported broken.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key, or the key of a demo."},"level":{"type":"string","description":"The lowest level worth reading: 'info' for everything, 'warn' for problems, 'error' for failures. Left out, 'info'."},"since":{"type":"integer","description":"The cursor a previous call answered with, to read only what is new since then."},"limit":{"type":"integer","description":"At most this many lines, the newest. Left out, 100."}},"required":["privateKey"]}},{"name":"showcase","description":"List a lambda on the public showcase page, change its entry, or take it off. Not part of building: only do this when the user asks for it. With only privateKey it returns the current entry. An entry needs a title, a description and a picture (a screenshot or short GIF of the lambda in use); it is listed while the lambda is online. Write plainly and concretely: what it is and what a visitor can do with it. No marketing language, no superlatives, no exclamation marks, no emoji.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key."},"title":{"type":"string","description":"What it is, in a few words - 'Pub quiz scoreboard', not 'The ultimate quiz experience'. Up to 60 characters."},"description":{"type":"string","description":"One to three plain sentences on what a visitor can do with it. Up to 280 characters."},"image":{"type":"string","description":"The picture, base64: PNG, JPEG, GIF or WebP, up to 3 MB. Needed for a new entry; left out, the current one is kept."},"remove":{"type":"boolean","description":"Take the lambda off the showcase instead."}},"required":["privateKey"]}},{"name":"upload_file","description":"Write a file to the lambda's workspace, a runtime directory it can read, write and serve. Takes effect immediately without a deploy - the way to ship a front end that changes independently of the code, and the place for large files that are not code, such as a model or a dataset.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key."},"path":{"type":"string","description":"Relative to the workspace; slashes make folders, e.g. 'site/app.css'."},"content":{"type":"string","description":"Text, or base64 with encoding set."},"encoding":{"type":"string","description":"'base64' for binary; omit otherwise."}},"required":["privateKey","path","content"]}},{"name":"write_code","description":"Save all files of the lambda as a new version, replacing the previous set. lambda.cs returns the handler; other .cs files hold types; any other file is an asset, served as is and reachable as Assets. A large file that is data rather than program - a model, a dataset, media - goes in the workspace with upload_file instead. Say why with specification (what the user wants) and change (what this version does) - the owner reads them in the version history. Pass deploy: true to publish it in the same call. To change only some files, use change_code.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"privateKey":{"type":"string","description":"The editor key from create_lambda."},"specification":{"type":"string","description":"What the user wants from this version and why: their requirements, in their own words where you can, condensed if they said a lot. Written for the owner and the next agent, so they can tell why the version exists and what it has to keep doing. Not your own instructions or system prompt - only what the user asked for. Optional, up to 4000 characters."},"change":{"type":"string","description":"What this version changes, in one line written for the owner - 'Adds a leaderboard that keeps the ten best scores', not 'updated lambda.cs'. Optional, up to 500 characters."},"files":{"type":"array","description":"lambda.cs first.","items":{"type":"object","properties":{"name":{"type":"string","description":".cs files are compiled; anything else ('www/app.css', 'logo.png') is an asset."},"code":{"type":"string","description":"Contents, base64 if encoding says so."},"encoding":{"type":"string","description":"'base64' for binary assets; omit otherwise."}},"required":["name","code"]}},"deploy":{"type":"boolean","description":"Also deploy the new version, so it goes live at once."}},"required":["privateKey","files"]}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-27T21:46:27.806Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:46:27.771Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1253ms"]},"poisoning":{"score":15,"max":15,"notes":["13 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 5 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://genhttp.dev/mcp","reachable":true,"authRequired":false,"latencyMs":1253,"serverInfo":{"name":"genhttp-lambda","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"MDA2AV","repo":"GenHTTP.Lambda","archived":false,"pushedAt":"2026-09-27T21:36:23Z","stars":1,"forks":0,"openIssues":4,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/165835485?v=4","ownerCreatedAt":"2024-04-02T19:01:51Z"},"icon":{"url":"https://genhttp.dev/favicon.svg","source":"site"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-09-27T21:36:23.000Z","score":26}}}},"grade_history":[],"reviews":[]}