An open API service indexing awesome lists of open source software.

https://github.com/kimdonghwi94/web-analyzer-mcp

This project is a web analysis summary MCP server project.
https://github.com/kimdonghwi94/web-analyzer-mcp

Last synced: 2 months ago
JSON representation

This project is a web analysis summary MCP server project.

Awesome Lists containing this project

README

          

# ๐Ÿ” ์›น ๋ถ„์„๊ธฐ MCP


WebAnalyzer MCP server

์ง€๋Šฅ์ ์ธ ์›น ์ฝ˜ํ…์ธ  ๋ถ„์„ ๋ฐ ์š”์•ฝ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ MCP(Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. FastMCP๋กœ ๊ตฌ์ถ•๋˜์–ด ์Šค๋งˆํŠธ ์›น ์Šคํฌ๋ž˜ํ•‘, ์ฝ˜ํ…์ธ  ์ถ”์ถœ, AI ๊ธฐ๋ฐ˜ ์งˆ์˜์‘๋‹ต ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

## โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

### ๐ŸŽฏ ํ•ต์‹ฌ ๋„๊ตฌ

1. **`url_to_markdown`** - ์›นํŽ˜์ด์ง€ ํ•ต์‹ฌ ๋‚ด์šฉ ์ถ”์ถœ ๋ฐ ์š”์•ฝ
- ๋งž์ถค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฝ˜ํ…์ธ  ์ค‘์š”๋„ ๋ถ„์„
- ๊ด‘๊ณ , ๋„ค๋น„๊ฒŒ์ด์…˜, ๋ถˆํ•„์š”ํ•œ ์ฝ˜ํ…์ธ  ์ œ๊ฑฐ
- ํ•ต์‹ฌ ์ •๋ณด๋งŒ ์œ ์ง€ (ํ…Œ์ด๋ธ”, ์ด๋ฏธ์ง€, ์ฃผ์š” ํ…์ŠคํŠธ)
- ๋ถ„์„์— ์ตœ์ ํ™”๋œ ๊ตฌ์กฐํ™”๋œ ๋งˆํฌ๋‹ค์šด ์ถœ๋ ฅ

2. **`web_content_qna`** - ์›น ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ AI ์งˆ์˜์‘๋‹ต
- ์›นํŽ˜์ด์ง€์—์„œ ๊ด€๋ จ ์ฝ˜ํ…์ธ  ์„น์…˜ ์ถ”์ถœ
- ์ง€๋Šฅํ˜• ์ฒญํ‚น ๋ฐ ๊ด€๋ จ์„ฑ ๋งค์นญ ์‚ฌ์šฉ
- OpenAI GPT ๋ชจ๋ธ๋กœ ์งˆ๋ฌธ ๋‹ต๋ณ€

### ๐Ÿš€ ์ฃผ์š” ํŠน์ง•

- **์Šค๋งˆํŠธ ์ฝ˜ํ…์ธ  ์ˆœ์œ„**: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ  ์ค‘์š”๋„ ์Šค์ฝ”์–ด๋ง
- **ํ•ต์‹ฌ ์ฝ˜ํ…์ธ ๋งŒ**: ๋ถˆํ•„์š”ํ•œ ์š”์†Œ ์ œ๊ฑฐ, ์ค‘์š”ํ•œ ๋‚ด์šฉ๋งŒ ์œ ์ง€
- **๋‹ค์ค‘ IDE ์ง€์›**: Claude Desktop, Cursor, VS Code, PyCharm ์ง€์›
- **์œ ์—ฐํ•œ ๋ชจ๋ธ**: GPT-3.5, GPT-4, GPT-4 Turbo, GPT-5 ์„ ํƒ ๊ฐ€๋Šฅ

## ๐Ÿ“ฆ ์„ค์น˜

### ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
- [uv](https://docs.astral.sh/uv/getting-started/installation/) (Python ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €)
- Chrome/Chromium ๋ธŒ๋ผ์šฐ์ € (Selenium์šฉ)
- OpenAI API ํ‚ค (Q&A ๊ธฐ๋Šฅ์šฉ)

### ๐Ÿš€ uv๋กœ ๋น ๋ฅธ ์‹œ์ž‘ (๊ถŒ์žฅ)

```bash
# ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/kimdonghwi94/web-analyzer-mcp.git
cd web-analyzer-mcp

# uv๋กœ ์ง์ ‘ ์‹คํ–‰ (์˜์กด์„ฑ ์ž๋™ ์„ค์น˜)
uv run mcp-webanalyzer
```

# IDE/์—๋””ํ„ฐ ์—ฐ๋™

Install Claude Desktop

Claude Desktop_config.json ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [Claude Desktop MCP ๋ฌธ์„œ](https://modelcontextprotocol.io/quickstart/user)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

```json
{
"mcpServers": {
"web-analyzer": {
"command": "uv",
"args": [
"--directory",
"/path/to/web-analyzer-mcp",
"run",
"mcp-webanalyzer"
],
"env": {
"OPENAI_API_KEY": "your_openai_api_key_here",
"OPENAI_MODEL": "gpt-4"
}
}
}
}
```

Install Claude Code (VS Code ํ™•์žฅ)

Claude Code CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

```bash
claude mcp add web-analyzer -e OPENAI_API_KEY=your_api_key_here -e OPENAI_MODEL=gpt-4 -- uv --directory /path/to/web-analyzer-mcp run mcp-webanalyzer
```

Install Cursor IDE

Cursor ์„ค์ •์— ์ถ”๊ฐ€ํ•˜์„ธ์š” (`File > Preferences > Settings > Extensions > MCP`):

```json
{
"mcpServers": {
"web-analyzer": {
"command": "uv",
"args": [
"--directory",
"/path/to/web-analyzer-mcp",
"run",
"mcp-webanalyzer"
],
"env": {
"OPENAI_API_KEY": "your_openai_api_key_here",
"OPENAI_MODEL": "gpt-4"
}
}
}
}
```

Install JetBrains AI Assistant

์ž์„ธํ•œ ๋‚ด์šฉ์€ [JetBrains AI Assistant ๋ฌธ์„œ](https://www.jetbrains.com/help/idea/ai-assistant.html)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

1. JetBrains IDE์—์„œ **Settings** โ†’ **Tools** โ†’ **AI Assistant** โ†’ **Model Context Protocol (MCP)**๋กœ ์ด๋™
2. **+ Add** ํด๋ฆญ
3. ๋Œ€ํ™”์ƒ์ž ์™ผ์ชฝ ์ƒ๋‹จ์˜ **Command**๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋ชฉ๋ก์—์„œ **As JSON** ์˜ต์…˜ ์„ ํƒ
4. ๋‹ค์Œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๊ณ  **OK** ํด๋ฆญ:

```json
{
"mcpServers": {
"web-analyzer": {
"command": "uv",
"args": [
"--directory",
"/path/to/web-analyzer-mcp",
"run",
"mcp-webanalyzer"
],
"env": {
"OPENAI_API_KEY": "your_openai_api_key_here",
"OPENAI_MODEL": "gpt-4"
}
}
}
}
```

## ๐ŸŽ›๏ธ ๋„๊ตฌ ์„ค๋ช…

### `url_to_markdown`
ํ•ต์‹ฌ ์ฝ˜ํ…์ธ  ์ถ”์ถœ๊ณผ ํ•จ๊ป˜ ์›นํŽ˜์ด์ง€๋ฅผ ๊น”๋”ํ•œ ๋งˆํฌ๋‹ค์šด ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

**๋งค๊ฐœ๋ณ€์ˆ˜:**
- `url` (๋ฌธ์ž์—ด): ๋ถ„์„ํ•  ์›นํŽ˜์ด์ง€ URL

**๋ฐ˜ํ™˜๊ฐ’:** ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ๋ณด์กด๊ณผ ํ•จ๊ป˜ ๊น”๋”ํ•œ ๋งˆํฌ๋‹ค์šด ์ฝ˜ํ…์ธ 

### `web_content_qna`
์ง€๋Šฅํ˜• ์ฝ˜ํ…์ธ  ๋ถ„์„์„ ์‚ฌ์šฉํ•˜์—ฌ ์›นํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•ฉ๋‹ˆ๋‹ค.

**๋งค๊ฐœ๋ณ€์ˆ˜:**
- `url` (๋ฌธ์ž์—ด): ๋ถ„์„ํ•  ์›นํŽ˜์ด์ง€ URL
- `question` (๋ฌธ์ž์—ด): ํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์งˆ๋ฌธ

**๋ฐ˜ํ™˜๊ฐ’:** ํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ AI ์ƒ์„ฑ ๋‹ต๋ณ€

## ๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

### ์ฝ˜ํ…์ธ  ์ถ”์ถœ ํŒŒ์ดํ”„๋ผ์ธ

1. **URL ๊ฒ€์ฆ** - ์ ์ ˆํ•œ URL ํ˜•์‹ ํ™•์ธ
2. **HTML ๊ฐ€์ ธ์˜ค๊ธฐ** - ๋™์  ์ฝ˜ํ…์ธ ์šฉ Selenium ์‚ฌ์šฉ
3. **์ฝ˜ํ…์ธ  ํŒŒ์‹ฑ** - HTML ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ BeautifulSoup
4. **์š”์†Œ ์Šค์ฝ”์–ด๋ง** - ๋งž์ถค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฝ˜ํ…์ธ  ์ค‘์š”๋„ ์ˆœ์œ„ ๋งค๊น€
5. **์ฝ˜ํ…์ธ  ํ•„ํ„ฐ๋ง** - ์ค‘๋ณต ๋ฐ ์ €ํ’ˆ์งˆ ์ฝ˜ํ…์ธ  ์ œ๊ฑฐ
6. **๋งˆํฌ๋‹ค์šด ๋ณ€ํ™˜** - ๊ตฌ์กฐํ™”๋œ ์ถœ๋ ฅ ์ƒ์„ฑ

### ์งˆ์˜์‘๋‹ต ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ

1. **์ฝ˜ํ…์ธ  ์ฒญํ‚น** - ์ง€๋Šฅํ˜• ํ…์ŠคํŠธ ๋ถ„ํ• 
2. **๊ด€๋ จ์„ฑ ์Šค์ฝ”์–ด๋ง** - ์ฝ˜ํ…์ธ ์™€ ์งˆ๋ฌธ ๋งค์นญ
3. **์ปจํ…์ŠคํŠธ ์„ ํƒ** - ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ ๋†’์€ ์ฒญํฌ ์„ ํƒ
4. **๋‹ต๋ณ€ ์ƒ์„ฑ** - OpenAI GPT ํ†ตํ•ฉ

## ๐Ÿ—๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

```
web-analyzer-mcp/
โ”œโ”€โ”€ web_analyzer_mcp/ # ๋ฉ”์ธ Python ํŒจํ‚ค์ง€
โ”‚ โ”œโ”€โ”€ __init__.py # ํŒจํ‚ค์ง€ ์ดˆ๊ธฐํ™”
โ”‚ โ”œโ”€โ”€ server.py # ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ FastMCP ์„œ๋ฒ„
โ”‚ โ”œโ”€โ”€ web_extractor.py # ์›น ์ฝ˜ํ…์ธ  ์ถ”์ถœ ์—”์ง„
โ”‚ โ””โ”€โ”€ rag_processor.py # RAG ๊ธฐ๋ฐ˜ Q&A ํ”„๋กœ์„ธ์„œ
โ”œโ”€โ”€ scripts/ # ๋นŒ๋“œ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์Šคํฌ๋ฆฝํŠธ
โ”‚ โ””โ”€โ”€ build.js # Node.js ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ
โ”œโ”€โ”€ README.md # ์˜์–ด ๋ฌธ์„œ
โ”œโ”€โ”€ README.ko.md # ํ•œ๊ตญ์–ด ๋ฌธ์„œ
โ”œโ”€โ”€ package.json # npm ์„ค์ • ๋ฐ ์Šคํฌ๋ฆฝํŠธ
โ”œโ”€โ”€ pyproject.toml # Python ํŒจํ‚ค์ง€ ์„ค์ •
โ”œโ”€โ”€ .env.example # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ…œํ”Œ๋ฆฟ
โ””โ”€โ”€ dist-info.json # ๋นŒ๋“œ ์ •๋ณด (์ƒ์„ฑ๋จ)
```

## ๐Ÿ› ๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

### uv๋ฅผ ์‚ฌ์šฉํ•œ ํ˜„๋Œ€์ ์ธ ๊ฐœ๋ฐœ

```bash
# ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/kimdonghwi94/web-analyzer-mcp.git
cd web-analyzer-mcp

# ๊ฐœ๋ฐœ ๋ช…๋ น์–ด
uv run mcp-webanalyzer # ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹œ์ž‘
uv run python -m pytest # ํ…Œ์ŠคํŠธ ์‹คํ–‰
uv run ruff check . # ์ฝ”๋“œ ๋ฆฐํŒ…
uv run ruff format . # ์ฝ”๋“œ ํฌ๋งทํŒ…
uv sync # ์˜์กด์„ฑ ๋™๊ธฐํ™”

# ๊ฐœ๋ฐœ ์˜์กด์„ฑ ์„ค์น˜
uv add --dev pytest ruff mypy

# ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ
npm run build
```

### ๋Œ€์•ˆ: ์ „ํ†ต์ ์ธ Python ๊ฐœ๋ฐœ

```bash
# Python ํ™˜๊ฒฝ ์„ค์ • (uv๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)
pip install -e .[dev]

# ๊ฐœ๋ฐœ ๋ช…๋ น์–ด
python -m web_analyzer_mcp.server # ์„œ๋ฒ„ ์‹œ์ž‘
python -m pytest tests/ # ํ…Œ์ŠคํŠธ ์‹คํ–‰
python -m ruff check . # ์ฝ”๋“œ ๋ฆฐํŒ…
python -m ruff format . # ์ฝ”๋“œ ํฌ๋งทํŒ…
python -m mypy web_analyzer_mcp/ # ํƒ€์ž… ์ฒดํฌ
```

## ๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

1. ์ €์žฅ์†Œ ํฌํฌ
2. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ (`git checkout -b feature/amazing-feature`)
3. ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹ (`git commit -m 'Add amazing feature'`)
4. ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œ (`git push origin feature/amazing-feature`)
5. Pull Request ์ƒ์„ฑ

## ๐Ÿ“‹ ๋กœ๋“œ๋งต

- [ ] ๋” ๋งŽ์€ ์ฝ˜ํ…์ธ  ํƒ€์ž… ์ง€์› (PDF, ๋™์˜์ƒ)
- [ ] ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ  ์ถ”์ถœ
- [ ] ๋งž์ถค ์ถ”์ถœ ๊ทœ์น™
- [ ] ์ž์ฃผ ์•ก์„ธ์Šคํ•˜๋Š” ์ฝ˜ํ…์ธ ์šฉ ์บ์‹ฑ
- [ ] ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ์›นํ›… ์ง€์›

## โš ๏ธ ์ œํ•œ์‚ฌํ•ญ

- JavaScript ์ง‘์•ฝ์ ์ธ ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•ด Chrome/Chromium ํ•„์š”
- Q&A ๊ธฐ๋Šฅ์„ ์œ„ํ•ด OpenAI API ํ‚ค ํ•„์š”
- ๋‚จ์šฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ์†๋„ ์ œํ•œ
- ์ผ๋ถ€ ์‚ฌ์ดํŠธ์—์„œ ์ž๋™ํ™”๋œ ์•ก์„ธ์Šค ์ฐจ๋‹จ ๊ฐ€๋Šฅ

## ๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [LICENSE](LICENSE) ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

## ๐Ÿ™‹โ€โ™‚๏ธ ์ง€์›

- ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋‚˜ ๊ธฐ๋Šฅ ์š”์ฒญ์€ ์ด์Šˆ ์ƒ์„ฑ
- GitHub ์ €์žฅ์†Œ์˜ ํ† ๋ก ์— ๊ธฐ์—ฌ
- ์ž์„ธํ•œ ๊ฐ€์ด๋“œ๋Š” [๋ฌธ์„œ](https://github.com/kimdonghwi94/web-analyzer-mcp)๋ฅผ ํ™•์ธํ•˜์„ธ์š”

## ๐ŸŒŸ ๊ฐ์‚ฌ์˜ ๋ง

- [FastMCP](https://github.com/jlowin/fastmcp) ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ตฌ์ถ•
- ์›น ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ [HTMLRAG](https://github.com/plageon/HtmlRAG) ๊ธฐ์ˆ ์—์„œ ์˜๊ฐ์„ ๋ฐ›์Œ
- ํ”ผ๋“œ๋ฐฑ๊ณผ ๊ธฐ์—ฌ๋ฅผ ํ•ด์ฃผ์‹  MCP ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค

---

**MCP ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•ด โค๏ธ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค**