BrowserLemon
# BrowserLemon π
λ‘컬 Chromeμ **νμ¬ λ‘κ·ΈμΈ μΈμ
**μ AIκ° MCPλ‘ μ μ΄ν μ μκ² ν΄ μ£Όλ μ€νμμ€ λΈλΌμ°μ λΈλ¦¬μ§μ
λλ€. SNS μ΄μ μμ±κ³Ό μ¬μ©μ μΉμΈ ν κ²μ νλ¦μ μ΄μ μ λ§μΆ₯λλ€.
> Early MVP: μ§μ κ²ν μμ΄ μ΄μ κ³μ μ κ²μνμ§ λ§μΈμ. μ¬μ΄νΈ UI λ³κ²½μ λ°λΌ element refκ° λ¬΄ν¨νλ μ μμ΅λλ€.
## νΉμ§
- MCP νμ€ μ
μΆλ ₯(stdio) μλ²
- μ΄λ―Έ λ‘κ·ΈμΈλ Chrome ν μ¬μ©: μΏ ν€μ λΉλ°λ²νΈλ₯Ό MCP μλ²λ‘ 볡μ¬νμ§ μμ
- νμ΄μ§ μμ½, ν λͺ©λ‘, μ΄λ, ν΄λ¦, μ
λ ₯
- `draft_social_post`μ λͺ
μμ `confirmed=true`κ° νμν `publish_social_post`
- λ‘컬νΈμ€νΈ μ μ© WebSocket λ° κ²μ λλ©μΈ allowlist
- MIT λΌμ΄μ μ€
## μ€μΉ
```bash
npm install
npm run build
```
Chromeμμ `chrome://extensions` β **κ°λ°μ λͺ¨λ** β **μμΆν΄μ λ νμ₯ νλ‘κ·Έλ¨μ λ‘λ** β μ΄ μ μ₯μμ `extension` ν΄λλ₯Ό μ νν©λλ€.
MCP ν΄λΌμ΄μΈνΈ μ€μ μμ:
```json
{
"mcpServers": {
"browserlemon": {
"command": "node",
"args": ["/absolute/path/to/browserlemon/dist/index.js"]
}
}
}
```
MCP ν΄λΌμ΄μΈνΈλ₯Ό μ¬μμν λ€ Chrome ν΄λ°μ BrowserLemon μμ΄μ½μ λλ¦
λλ€. λ°°μ§μ `ON`μ΄ νμλλ©΄ μ°κ²°λμμ΅λλ€.
## κΆμ₯ μν¬νλ‘
1. `browser_status`λ‘ μ°κ²° νμΈ
2. `list_tabs`μ `read_page`λ‘ λμ λ° composer ref νμΈ
3. `draft_social_post`λ‘ κΈ μ
λ ₯
4. μ¬μ©μκ° λΈλΌμ°μ μμ λ΄μ©μ κ²ν
5. μ¬μ©μκ° λͺ
μμ μΌλ‘ μΉμΈν κ²½μ°μλ§ `publish_social_post(confirmed=true)` νΈμΆ
## 보μ λͺ¨λΈ
νμ₯ νλ‘κ·Έλ¨μ μ¬μ©μμ λΈλΌμ°μ κΆνμΌλ‘ μ€νλλ―λ‘ κ°λ ₯ν©λλ€. μ λ’°νλ λ‘컬 MCP ν΄λΌμ΄μΈνΈμμλ§ μλ²λ₯Ό μ€ννμΈμ. λΈλ¦¬μ§λ `127.0.0.1`μλ§ λ°μΈλ©λλ©° λΉλ°λ²νΈ μ
λ ₯κ°μ νμ΄μ§ μ€λ
μ·μμ μ μΈλ©λλ€. λ€λ§ νμ΄μ§ λ³Έλ¬Έμλ κ°μΈμ λ³΄κ° ν¬ν¨λ μ μμΌλ―λ‘ μ°κ²°ν AI μλΉμ€μ λ°μ΄ν° μ μ±
λ νμΈν΄μΌ ν©λλ€.
μ§μ κ²μ λλ©μΈ: X/Twitter, LinkedIn, Facebook, Instagram, Threads, Bluesky, Mastodon.social. μ½κΈ°Β·μ΄μ μ
λ ₯μ μΌλ° http(s) νμ΄μ§μμλ κ°λ₯ν©λλ€.
## κΈ°μ¬
λ²κ·Έ 리ν¬νΈμ PRμ νμν©λλ€. λ€μ μ°μ μμλ per-site adapter, μ΄λ―Έμ§ μ
λ‘λ, μμ½ κ²μ, κ°μ¬ λ‘κ·Έ, νμ₯ νλ‘κ·Έλ¨ κΆν μΈλΆνμ
λλ€.
TDQS
Scored across 8 tools
Each tool has a generally distinct purpose: status, tab listing, page reading, navigation, typing, clicking, and social composing/publishing. There is mild overlap between type_text and draft_social_post, and click could theoretically be used in place of publish_social_post, but the descriptions clarify the intended specialized use.
Most tools follow a verb_noun snake_case pattern (list_tabs, read_page, open_url, type_text, draft_social_post, publish_social_post), but browser_status is a noun phrase and click is a bare verb. The naming is readable and consistently lowercase, but the pattern is not uniform.
Eight tools is well-scoped for a browser automation assistant. Each tool has a clear role with no obvious filler or redundant duplicates, making the count appropriate for the server's purpose.
The set covers core browsing actions like open, read, type, click, plus a guarded social-posting workflow. However, it lacks standard browser controls such as switching or closing tabs, scrolling, refreshing, and waiting for page conditions, which are notable gaps for browser automation.