Lippy-Agent MCP Server
Lippy Agent
웹사이트는 변합니다. 당신의 API는 변하지 않아야 합니다. 전체 아키텍처, 심사 기준 매핑, 데모 스크립트는 SPEC.md를 참조하세요.
설정
npm install
cp .env.example .env # works out of the box in mock mode, no keys needed
npm run db:generate
npm run db:migrate
npm run devAPI 키 없이 모의(mock) 모드로 완전히 실행됩니다. BrightDataClient와 ParallelClient는 모두 결정적 모의 응답으로 대체되므로, 생성 → 실행 → 위반 → 복구 → 검증 → 시맨틱 diff 루프를 별도 설정 없이 처음부터 끝까지 실행할 수 있습니다. 실제 API를 사용하려면 .env에 BRIGHTDATA_API_KEY / PARALLEL_API_KEY를 설정하세요.
Related MCP server: diffgrab
프로젝트 구조
src/
app/ Next.js App Router — routes are thin adapters only
api/contracts/ REST surface (create, get, run, live event stream)
api/mcp/ MCP server over Streamable HTTP
lib/
contracts/ schema (Zod), validator, service layer
brightdata/ typed client (create/run/heal/approve), mock-capable
parallel/ semantic-diff client, mock-capable
selfheal/ the orchestrator state machine
events/ typed event union + pub/sub bus
env.ts errors.ts logger.ts db.ts
mcp/server.ts tool definitions (create_contract, watch_contract, get_data)
tests/ vitest unit tests
prisma/schema.prisma Contract / Run / ContractEvent models명령어
명령어 | 설명 |
| 개발 서버 시작 |
| vitest 테스트 스위트 실행 |
|
|
| SQLite DB를 시각적으로 탐색 |
사용해 보기
# create a contract
curl -X POST localhost:3000/api/contracts -H 'content-type: application/json' -d '{
"url": "https://example.com/product",
"fields": [
{ "key": "product", "type": "string", "required": true },
{ "key": "price", "type": "number", "required": true },
{ "key": "stock", "type": "boolean", "required": false }
]
}'
# trigger a run (mock mode breaks the extraction every 3rd call, so re-run
# a few times to see contract.violated -> contract.healing -> contract.healed)
curl -X POST localhost:3000/api/contracts/<id>/runHmm, let me reconsider a few things:
"semantic-diff" - I wrote "시맨틱 diff". That works. Or "의미론적 diff". I'll keep "시맨틱 diff".
"heal" - I translated as "복구" (recovery). In context of healing an API contract, "복구" is good.
"violate" - "위반" is fine.
The tagline "Websites change. Your API shouldn't." - "웹사이트는 변합니다. 당신의 API는 변하지 않아야 합니다." Or maybe more punchy: "웹사이트는 바뀌어도, API는 바뀌면 안 됩니다." That's more natural. Let me use: "웹사이트는 변합니다. 그러나 당신의 API는 변하지 않아야 합니다." Hmm. Both fine. I'll go with "웹사이트는 변합니다. 당신의 API는 변하지 않아야 합니다."
"See" - "참조하세요" or "확인하세요". I'll use "참조하세요".
"Usage" heading translation: "Try it" → "사용해 보기" or "직접 해보기". I'll go with "사용해 보기".
"Run the vitest suite" - "vitest 스위트 실행" or "vitest 테스트 스위트 실행". Fine.
Table header alignment - keep pipe separators. The row separator line "-" can stay same width.
Let me double check that I've preserved all structure. Yes.
One thing: "out of the box" - I translated as "별도 설정 없이" which captures it well.
The heading "## 프로젝트 구조" - good.
Let me finalize. The header alignment of the table rows - I don't need to keep exact spacing, just the structure (same number of pipes, same rows). That's fine.
Actually, I used "설정" for "Setup" heading and in body "별도 설정 없이" for "out of the box". That's fine.
Let me also reconsider: "사용해 보기" vs "시도해 보기" for "Try it". I think "직접 실행해 보기" might be better, but "사용해 보기" is concise. I'll go with "사용해 보기".
Final check: all code identifiers preserved: SPEC.md, GXP1, GXP2, GXP3, BrightDataClient, ParallelClient, .env, BRIGHTDATA_API_KEY, PARALLEL_API_KEY, npm run dev, npm test, npm run typecheck, tsc --noEmit, npm run db:studio, SQLite. Yes, all kept.
The link [SPEC.md](./SPEC.md) - the URL is preserved, the text "SPEC.md" preserved (it's file name). Good.
Final output ready.# Lippy Agent
웹사이트는 변합니다. 당신의 API는 변하지 않아야 합니다. 전체 아키텍처, 심사 기준 매핑, 데모 스크립트는 SPEC.md를 참조하세요.
설정
npm install
cp .env.example .env # works out of the box in mock mode, no keys needed
npm run db:generate
npm run db:migrate
npm run devAPI 키 없이 모의(mock) 모드로 완전히 실행됩니다. BrightDataClient와 ParallelClient는 모두 결정적 모의 응답으로 대체되므로, 생성 → 실행 → 위반 → 복구 → 검증 → 시맨틱 diff 루프를 별도 설정 없이 처음부터 끝까지 실행할 수 있습니다. 실제 API를 사용하려면 .env에 BRIGHTDATA_API_KEY / PARALLEL_API_KEY를 설정하세요.
프로젝트 구조
src/
app/ Next.js App Router — routes are thin adapters only
api/contracts/ REST surface (create, get, run, live event stream)
api/mcp/ MCP server over Streamable HTTP
lib/
contracts/ schema (Zod), validator, service layer
brightdata/ typed client (create/run/heal/approve), mock-capable
parallel/ semantic-diff client, mock-capable
selfheal/ the orchestrator state machine
events/ typed event union + pub/sub bus
env.ts errors.ts logger.ts db.ts
mcp/server.ts tool definitions (create_contract, watch_contract, get_data)
tests/ vitest unit tests
prisma/schema.prisma Contract / Run / ContractEvent models명령어
명령어 | 설명 |
| 개발 서버 시작 |
| vitest 테스트 스위트 실행 |
|
|
| SQLite DB를 시각적으로 탐색 |
사용해 보기
# create a contract
curl -X POST localhost:3000/api/contracts -H 'content-type: application/json' -d '{
"url": "https://example.com/product",
"fields": [
{ "key": "product", "type": "string", "required": true },
{ "key": "price", "type": "number", "required": true },
{ "key": "stock", "type": "boolean", "required": false }
]
}'
# trigger a run (mock mode breaks the extraction every 3rd call, so re-run
# a few times to see contract.violated -> contract.healing -> contract.healed)
curl -X POST localhost:3000/api/contracts/<id>/runThis server cannot be deployed
Maintenance
Related MCP Connectors
Recurring webpage change, price, inventory and metadata monitoring for autonomous agents.
Extract prices, lists, tables, events from static pages and watch them for changes.
Extract prices, lists, tables, events from static pages and watch them for changes.
Watch a place on a web page (a price, stock, a version) or a whole page; get told when it changes.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to monitor web documentation for changes, perform semantic search with RAG, and analyze breaking changes in APIs.9-
- AlicenseNot gradedqualityDmaintenanceEnables tracking web page changes, detecting content modifications with structured diffs and snapshot history through MCP tools.39 PyPIMIT
- AlicenseAqualityDmaintenanceEnables monitoring web pages for changes using Playwright, storing snapshots in SQLite, and optionally analyzing changes with an LLM for business impact assessment.5MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to monitor web pages for content changes and receive alerts when changes occur.-