{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_rv97q6kjurv8","handle":"lite-locator-mcp","url":"https://wellknown.network/agents/lite-locator-mcp","links":{"self":"https://wellknown.network/agents/lite-locator-mcp/record.json","html":"https://wellknown.network/agents/lite-locator-mcp","markdown":"https://wellknown.network/agents/lite-locator-mcp/record.md","api":"https://wellknown.network/api/v1/agents/lite-locator-mcp","status":"https://wellknown.network/api/v1/agents/lite-locator-mcp/status","claim":"https://wellknown.network/agents/lite-locator-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/lite-locator-mcp/claim.json","badge":"https://wellknown.network/agents/lite-locator-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/lite-locator-mcp/history","tools":"https://wellknown.network/api/v1/agents/lite-locator-mcp/tools"},"ard":{"identifier":"urn:air::server:lite-locator-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"lite-locator-mcp","summary":"Playwright MCP with a semantic element finder in front: the LLM gets a shortlist of candidates instead of the whole accessibility tree.","description":"# lite-locator-mcp\n\nFewer LLM tokens and sturdier generated tests for Playwright test automation. Small local models (CPU, inside the\npackage) find the page elements for each test step, so the LLM no longer reads whole pages or re-reads a growing\nconversation.\n\n## What it does\n\n- **Runs manual test cases and writes the Playwright tests.** Give it test cases as your team writes them (\"Steps |\n  Expected Result\" rows with preconditions, Gherkin, one-line prose, jargon such as PLP / PDP / ATC). One LLM call\n  plans each case; the library finds and acts on the elements itself and asks the LLM a short question only when it\n  is unsure. Preconditions become setup steps, a sentence with several actions becomes single steps, dialogs and menus\n  the case doesn't mention are opened first, browser popups are checked, and \"any item\" means the first one listed.\n- **About 1,000 LLM tokens per test case** (≈ $0.004 at GPT-5.4 prices, ≈ $0.15 for a 34-case user story), where an\n  LLM agent loop used about 75,000 on the same cases, because the agent re-sends the whole conversation and page on\n  every step.\n- **Generated tests that keep passing.** No database IDs or positional CSS in the scripts: elements are located by\n  label, card heading, table row or text, only when that matches exactly one element. Scripts wait for what the app\n  changed (new page title, a badge going from 1 to 2, a popup) and pass with parallel workers. A test case that fails\n  never produces a passing script: it is written as `test.fixme` with the failing step.\n- **Works with small local models.** Measured with a 4B model on a laptop CPU/GPU:\n\n| Test suite | Passed | Generated scripts passing `npx playwright test` |\n|---|---|---|\n| 34 written test cases for one user story (practicesoftwaretesting.com: search, filters, sorting, product page, quantity, cart) | 33–34 / 34 across runs | all passing cases |\n| 16 messy test cases on another site (demoblaze.com: step/expected rows, prose, Gherkin, jargon; one has n…","publisher":{"name":"Praneeth Kumar Palepu","url":null},"homepage":"https://github.com/Praneeth-Palepu/lite-locator-mcp","repository":"https://github.com/Praneeth-Palepu/lite-locator-mcp/blob/main/CHANGELOG.md","version":"0.2.0","license":null,"protocols":["mcp"],"tags":["mcp","playwright","test","automation","llm","accessibility","tree","element","locator"],"pricing":null,"endpoints":[{"url":"pypi:lite-locator-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"declared"}],"categories":["infra"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"lite-locator-mcp","registry":"pypi","observedAt":"2026-11-05T21:26:48.852Z","publishedAt":"2026-11-03T17:39:42.050374Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"lite-locator-mcp","url":"https://pypi.org/project/lite-locator-mcp/","firstSeenAt":"2026-10-30T19:26:13.455Z","fetchedAt":"2026-11-05T21:26:12.497Z","normalizedAt":"2026-11-05T21:26:12.497Z"}]},"firstSeenAt":"2026-10-30T19:26:13.455Z","updatedAt":"2026-11-05T21:26:48.852Z"}