The project's README from github.com/Pomerado/pomerado. As one markdown file: README.md.
Turn websites into MCP integrations your agent can rely on.
How it works · Get started · Create an integration · Use your integration · Open source and Cloud · Docs · Discord · Contributing
Pomerado builds MCP integrations for websites, including sites without an API.
┌──────────────────────────────────────────────────────────────────────────┐
│ explore the site → complete your example → generalize → agent calls it │
└──────────────────────────────────────────────────────────────────────────┘
For more details, see How it works.
Prerequisites
node --versionInstall Pomerado and the Chromium build it drives.
npx -y -p pomerado pomerado-mcp --help
npx -y -p pomerado playwright install chromium
On Linux, add --with-deps after install if Chromium's system libraries are missing.
Pomerado runs as a standard MCP stdio server. Clients that read an mcpServers file use this entry.
{
"mcpServers": {
"pomerado": {
"command": "npx",
"args": ["-y", "-p", "pomerado", "pomerado-mcp", "mint", "--root", "/absolute/path/to/pomerado-integrations"]
}
}
}
--root sets the folder where Pomerado saves your integrations. Use an absolute path, because each client starts servers from its own working folderOPENAI_API_KEY from its environment, so the key never needs to appear in chatAdd Pomerado to your client with the command or file below.
| Client | Add Pomerado |
|---|---|
| Claude Code | claude mcp add --scope user pomerado -- npx -y -p pomerado pomerado-mcp mint --root ~/pomerado-integrations |
| Codex | codex mcp add pomerado -- npx -y -p pomerado pomerado-mcp mint --root ~/pomerado-integrations, then add env_vars |
| Gemini CLI | gemini mcp add -s user -e 'OPENAI_API_KEY=$OPENAI_API_KEY' pomerado npx -y -p pomerado pomerado-mcp mint --root ~/pomerado-integrations |
| Cursor | Add the entry to ~/.cursor/mcp.json |
| VS Code | code --add-mcp '{"name":"pomerado","command":"npx","args":["-y","-p","pomerado","pomerado-mcp","mint","--root","/absolute/path/to/pomerado-integrations"]}', or add the entry to .mcp.json in your workspace |
| Claude Desktop | Add the entry to claude_desktop_config.json |
Each client passes environment variables its own way. Client settings covers the key and the timeouts for every client above.
To confirm the setup, ask your agent which Pomerado tools it has. It should list mint, get_job, provide_input and cancel_job.
If you'd rather not run these steps yourself, paste this into your agent.
Set up Pomerado for me by following https://raw.githubusercontent.com/Pomerado/pomerado/main/docs/agent-setup.md
Your agent checks your Node version, installs Chromium and adds Pomerado to the client it runs in. It asks before changing anything you didn't mention, and it never asks for your API key in chat.
Ask your agent to create an integration with Pomerado. We call this minting. A good request names the site, describes the task in plain language and says whether the integration should only read or also make changes.
Use Pomerado to create an integration named example_reader that reads the main heading from https://example.com. Keep it read-only.
Your agent runs the mint with four tools.
mint starts a job from a name, a URL, a task, an optional example input and read or write authority. It returns a job ID right awayget_job waits up to 30 seconds for progress, a question or the result. Checking a job never restarts the workprovide_input sends your answer when Pomerado asks a question. Pomerado checks the answer against the question's formatcancel_job stops the job and closes its browser. An action already sent to a website may still have taken effectAuthority decides what an integration is allowed to do, so choose it deliberately. Your agent picks one when it calls mint, and the tool tells it to ask you before choosing write.
read when the task only looks at a websitewrite only when the task changes something, such as submitting a form or making a bookingsrc/ or deployment.json aren't reviewed. A run that signs in replays its sign-in only on the site and its sign-in origins. A served call takes them from deployment.json, and pomerado run --artifact from pomerado.jsonPomerado types your login only on the site, or on a sign-in address you pass in authenticationOrigins when you call mint. A sign-in form whose fields or submit go to any other website is refused before anything is typed. A sign-in whose pages are on another website doesn't publish, even one you pass there. Pomerado doesn't ask about other addresses, and it doesn't check where the page's own scripts send what you typed.
Names start with a lowercase letter and use only lowercase letters, digits and underscores. The integration's folder must not exist yet. Each mint gets 20 minutes of active work, and time spent waiting for your answers doesn't count against it.
When minting finishes, Pomerado saves the integration as a folder of source code and returns its paths.
pomerado-integrations/example_reader/
├── src/ Generated operation modules
├── pomerado.json Entrypoint, input and output schemas, and the questions a run may ask
├── auth-fill.json Sign-in screens a build that signed in recorded, with no value
├── deployment.json Tool name, description, URL, task, authority and sign-in origins
├── mcp.mjs Launcher for the shared Pomerado runtime
├── mcp.json Standard MCP server entry, with no key
└── README.md Add commands for each MCP client
README.md. It has the add command for each major client with your paths already filled inOPENAI_API_KEYUse example_reader to read the page heading.
Each integration appears to your agent as its own MCP server.
inputget_job, provide_input and cancel_job for calls that need an answer or more timepomerado.json, or a job ID to follow up oncode, write_status, possible_commit and retry. Read the site back before calling again when possible_commit is truenpm install -g pomerado and use pomerado-mcp in place of npx -y -p pomerado pomerado-mcpThis repository is the complete Pomerado core, released under the MIT license. Everything you need to mint integrations and run them yourself is here, with no Pomerado account required.
Pomerado Cloud runs this same core as a managed service. It adds the operations that production use needs.
| Path | Contents |
|---|---|
typescript/src/ |
Minter, Guardian, runtime, browser helpers and the local MCP host |
typescript/authoring/ |
Shared prompts and examples, with sections a host can replace |
typescript/tests/ |
Unit tests and browser tests with local fixture sites |
tools/ |
Build helpers and the CI scans |
docs/ |
Guides for users, agents and maintainers |
third-party/ |
Licenses for adapted third-party code |
How it works lists each module under typescript/src/.
Join the Pomerado Discord to get help, share integrations you build, and discuss contributions.
Copyright (c) 2026 Pomerado AI, Inc. Licensed under the MIT License (MIT). See LICENSE.
Versions 0.1.2 and earlier were published under the GNU Affero General Public License version 3 only (AGPL-3.0-only).
Third-party code keeps its own license. The Guardian policy in typescript/src/guardian/upstream-policy.md is adapted from OpenAI Codex under the Apache License 2.0. Its license and notice are in third-party/codex/ and ship with the npm package. The accessible name computation in typescript/src/destinations/accessible-name.ts is adapted from Playwright under the Apache License 2.0. Its license and notice are in third-party/playwright/ and ship with the npm package.