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.
- Host: GitHub
- URL: https://github.com/kimdonghwi94/web-analyzer-mcp
- Owner: kimdonghwi94
- License: mit
- Created: 2025-07-16T00:11:08.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2025-09-03T14:31:40.000Z (2 months ago)
- Last Synced: 2025-09-03T16:26:04.390Z (2 months ago)
- Language: Python
- Homepage: https://smithery.ai/server/@kimdonghwi94/web-analyzer-mcp
- Size: 142 KB
- Stars: 1
- Watchers: 0
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.ko.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-servers - **kimdonghwi94/Web-Analyzer-MCP ๐ ๐ ๐ ๐ช ๐ง** - Extracts clean web content for RAG and provides Q&A about web pages. `web` `http` `git` `github` (๐ฆ Other)
- awesome-mcp-servers - **kimdonghwi94/Web-Analyzer-MCP ๐ ๐ ๐ ๐ช ๐ง** - Extracts clean web content for RAG and provides Q&A about web pages. `web` `http` `git` `github` (Other)
README
# ๐ ์น ๋ถ์๊ธฐ MCP
์ง๋ฅ์ ์ธ ์น ์ฝํ
์ธ ๋ถ์ ๋ฐ ์์ฝ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ 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 ์ปค๋ฎค๋ํฐ๋ฅผ ์ํด โค๏ธ๋ก ๋ง๋ค์ด์ก์ต๋๋ค**