Launch HN: Pomerado (YC F26) – Turn any website into an MCP for agents
Agents are no longer limited by their intelligence, but rather by their ability to interact with systems. Airlines, banks, e-commerce, insurance portals, government sites, and legacy portals all lack APIs or MCPs and are common parts of personal assistant or business workflows. Agents instead rely on browser automation or computer use, which can be slow, expensive, and unreliable. And even if computer use were perfect, most companies have banned it out of security and compliance concerns.
We discovered this problem while tinkering with our own personal assistants. When OpenClaw came out, we wanted to “live our lives through our agents” and have them do everything for us. We soon found their usefulness was restricted by what tools they could connect to. For example, when trying to book flights, they fell back on computer use, which failed to checkout. These issues got magnified on repeated workflows, like searching many airlines at once.
Pomerado started off as a project to improve these personal assistant workflows. As we started building, we realized that just-in-time tool creation could have significant applications for AI builders in legacy verticals.
We’re ex-McKinsey and Scale AI, where we drove agent deployments in healthcare, professional services, and telecom. Each time, the biggest bottleneck was getting agents to interface well with legacy websites and apps.
Pomerado is what we built. It’s a self-serve platform where devs can create APIs for any website (even those they don’t own), in minutes. Users (or their coding agents) provide a short natural language description, answer a few questions about their workflow, and receive a MCP in less than an hour. Future tool calls use the deterministic MCP, which usually returns results in 5-30 seconds.
Here’s a walkthrough of our product: https://youtu.be/Bi4jci7rgHo
In practice:
Our agent opens a browser, explores the website, and performs the requested task once by writing HTTP requests or a Playwright script. This example run establishes how to navigate the website, interact with the relevant controls, and obtain the desired result. If any additional user input is needed (e.g., login, clarification) the agent will ask the user over MCP.
Afterwards, the agent uses the example run, along with all of the data it recorded, to create a generalizable and repeatable API. Throughout this process, a separate Guardian model reviews the coding agent’s calls against a set of guardrails. We also run a battery of tests with synthetic inputs to ensure that the API is generalized and not overfit to one input. A final publication agent ensures that the integration publishes a reasonable and generalized input/output schema
We also handle sites that require authentication and 2FA. For authentication, we pass off to a deterministic sign-in process to ensure the model and our recorders never read customer credentials. Users can store 2FA TOTP seeds or link their account to a Pomerado phone number for us to autofill 2FA for them as well
If future runs fail, a maintenance job is kicked off to repair and improve the tool. The maintenance job can fix broken steps (e.g., a renamed button), add additional functionality (e.g., searching for business class flights in addition to economy), or add new guardrails (e.g., reservation dates must be in the future). We’ve even seen people improve tools by just saying “please make this faster”
Unlike computer use, our MCPs are deterministic at runtime, which makes them much faster and cheaper. By taking slightly longer to do a task the first time, you reap the benefits much more in the future. It’s a great fit for repeated, high-volume tasks you want your agent to do.
We’d love to have you try it! We have both an open-source (MIT) (https://github.com/Pomerado/pomerado) and a free hosted version (https://app.pomerado.ai).
So far, users of Pomerado include:
A personal trainer using agents to prepare workouts and message clients. Before Pomerado, agents couldn’t login and use the site reliably, so this was all manual
Car dealerships connecting their Grok Bots to legacy dealer systems, including marketplaces, CRMs, and ERPs. Dealers switched from computer use, which could take 1hr+
Personal assistants using Pomerado to integrate with a broad range of consumer websites
Please ask any questions or share any feedback in the comments, thanks!
If an agent hits a heavy SPA with infinite scroll or aggressive bot protection, does Pomerado handle edge-caching or proxy-level deduplication, or is it parsing raw DOM on every tool call?
We don't edge-cache or deduplicate calls, to give users live data.
For session isolation, we give each worker its own browser, cookies, and IP to isolate user sessions and prevent rate limiting.
Related: page content is untrusted input that now flows straight into an agent's context. Do the deterministic tools return only structured fields you've extracted, or can arbitrary page text (reviews, messages, product descriptions) pass through? That seems like the main prompt-injection surface for anything that can also perform actions like checkout.
In the hosted version, users can choose to pass logins at runtime or store them in our vault. Once a user logs in, we keep their session as a Chrome profile and attach it to a sticky IP, so that they stay logged in for longer.
Deterministic tools return only the structured fields, and don't parse the whole browser DOM. Since tools are deterministic, we also reduce the risk of prompt injections.
The obvious differences I can see are:
- generates an MCP server instead of a CLI
- at 'minting' time, uses OpenAI API keys, instead of coding agent subscription
- tries to solve for a particular use case, instead of all the site provides
We find this integrates into automated software development workflows a lot better, and my Openclaw can basically create new MCPs for me with little supervision required.
In terms of mechanisms, Pomerado uses a mix of HTTP requests and generated Playwright code. Printing Press has a far greater emphasis on making HTTP requests to the site's backend. We've found for some sites this latter approach can create issues around triggering anti-bot and can fail for more complicated forms and writes, so we use Playwright for those instances.
Pomerado's approach to researching the website is also a bit different - we solely focus on exploring the website itself, while Printing Press has your agent explore the web for documentation, SDKs, etc. There's a tradeoff of prompt injection security vs convenience there. Because we try to emphasize autonomous builds we limit the agent to the website for security.
A big pain point for us with existing approaches was using them for cloud agents (e.g., my Openclaw on my VPS). Cloud starts running into a lot of issues around hosting, authentication, and anti-bot, which is why we started offering a free hosted version of the open source, where we handle cloud browsers, proxy rotation, credential storage, CAPTCHAs, etc.
We're planning to roll out support for CLIs down the line! And the PR for non-OpenAI models + codex exec is in the works :)
We don't have a maintenance-specific dashboard. We do maintenance at execution time, so the dashboard paradigm doesn't apply as well. Instead of proactively checking for site changes, we check at execution time and repair integrations on-the-fly, when necessary.
My self healing project is very experimental, so tracking and displaying these kinds of metrics are important to judging the success of the experiment.
Thanks for sharing, I'll definitely keep an eye on the project, and maybe even explore relying on Pomerado to connect to certain data. :)
Yep, I think the primary difference between us and WebMCP is that Pomerado doesn't require participation from the website owner. So for WebMCP the site has to opt in, while Pomerado works on any site.
Curious about the failure mode: what happens when a browser action fails or times out? The agent will often just blindly retry the exact same MCP tool call with the exact same arguments. Since the tool call itself returns a 200 OK, standard retry counters miss it, and you just burn tokens while the browser keeps timing out in the background.
Are you doing any payload/state validation at the runtime layer to hard-stop those cyclic failures before the next call, or does the Guardian model handle that?
If the MCP call returns a 200 OK while the underlying browser times out silently, you're just burning tokens. Are you using a deterministic state hash to hard-kill the run, or relying entirely on the repair agent?
I see this often, qualifying ex-big consulting firm. What does it imply? Could it be more specific?
But does it magically somehow?
Would recommend you try it out, seeing is believing
Curious if there are any particular sites you've had trouble with!
The format looks like this:
Been having a lot of fun with this, as I can pile up these integrations and make detailed MCPs quickly.A tool can return HTTP 200 while making no useful progress. The agent may then repeat the same call with identical arguments.
We're exploring this from an observability angle with KORA Doctor. It can flag repeated tool calls using privacy-preserving fingerprints, but it doesn't block live retries or determine whether caching is safe.
Do your generated MCP tools expose operation-level status or state-change evidence so external tools can distinguish a successful repair from another no-op retry?
Does that state get returned to the calling agent as structured output, or does it stay inside your repair workflow?
If it's exposed, trace-based diagnostics could distinguish verified writes, failed writes, and uncertain writes without assuming HTTP 200 means success.
Does the generated API pass that text through to the agent, or only what a person would see on the page?