土耳其语内容分析自动化工具

一个结合MCP服务器和n8n工作流的自动化工具,用于抓取、分析土耳其语内容并生成包含摘要、统计和可视化图表的HTML电子邮件报告。

  • by HamdiOzkurt
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 HamdiOzkurt/Turkish-Content-Automation

使用说明

Türkçe İçerik Analiz MCP Sunucusu

Bu proje, MCP (Model Context Protocol) sunucusu ile n8n üzerinde çalışan bir otomasyon iş akışını birleştirir.
Kullanıcı bir URL gönderdiğinde:

  • firecrawl_scrape ile sayfanın içeriği markdown olarak çekilir,
  • MCP Python aracı analyze_turkish_content ile Türkçe metin analiz edilir,
  • Özet, istatistikler ve görseller işlenir,
  • Sonuçlar HTML e‑posta raporu olarak gönderilir.

Proje Dizini

  • mcp_server.py
    Türkçe içerik analizi yapan MCP sunucusu.

    • analyze_turkish_content adlı tool'u tanımlar.
    • Google Gemini ile Türkçe özet üretir (opsiyonel, API varsa).
    • Kelime frekansı, kelime bulutu (wordcloud_base64) ve frekans grafiği (chart_base64) üretir.
  • n8n/mcp_python_result_parser.js
    n8n Code node'unda kullanılan yardımcı fonksiyon.

    • Fonksiyon: parseMcpPythonResult($input)
    • Amaç: intermediateSteps içinden MCP PYTHON çıktısını bulur,
      • summary,
      • top_words,
      • stats,
      • wordcloud_base64, chart_base64
        alanlarını çıkarır ve n8n için json + binary döndürür.
  • n8n/email_report_template.html
    n8n Send Email node'unda kullanılan HTML şablonu.

    • Özet, istatistikler ve CID ile eklenen görselleri (cid:wordcloud, cid:chart) gösterir.
  • n8n/ai_agent_system_prompt.md
    n8n AI Agent node'u için system prompt.

    • Agent'ın firecrawl + MCP PYTHON toollarını sırasıyla kullanmasını tarif eder.

Kurulum

1. Python ortamı

cd mcp_project_server
python -m venv myenv
myenv\Scripts\activate  # Windows
pip install -r requirements.txt  # Yoksa, mcp_server.py içindeki import'lara göre paketleri kur

Gerekli başlıca paketler:

  • fastmcp / mcp (MCP server için)
  • uvicorn, starlette
  • httpx, requests
  • beautifulsoup4
  • Pillow
  • wordcloud
  • matplotlib

2. Ortam değişkenleri

Kök dizine bir .env dosyası oluşturun:

GOOGLE_API_KEY=YOUR_GEMINI_API_KEY
GEMINI_MODEL=gemini-2.5-flash

GOOGLE_API_KEY yoksa, sunucu yine çalışır; sadece LLM tabanlı özet üretimi devre dışı kalır ve klasik kelime-frekans özetine geri düşer.

3. MCP sunucusunu çalıştırma

myenv\Scripts\activate
python mcp_server.py

Sunucu varsayılan olarak http://localhost:8000/sse üzerinden SSE ile dinler.


n8n Entegrasyonu

1. MCP sunucusunu n8n'e bağlama

  1. n8n içinde MCP Client (executeTool) node'unu ekleyin.
  2. MCP sunucusu ayarlarında SSE endpoint'ini http://host.docker.internal:8000/sse (Docker içinde) veya http://localhost:8000/sse (lokal) olarak yapılandırın.
  3. Bu node üzerinden analyze_turkish_content tool'unu çağırabilirsiniz.

2. AI Agent system prompt

n8n/ai_agent_system_prompt.md dosyasındaki metni:

  • n8n AI Agent node'unda System prompt alanına kopyalayın.
  • Agent, kullanıcı bir URL verdiğinde:
    • Önce firecrawl_scrape (firecrawl MCP sunucusu) ile markdown çeker,
    • Sonra analyze_turkish_content (MCP PYTHON) aracını çağırır,
    • Sonuç JSON'unu bir sonraki node'a iletir.

3. MCP sonucu parse eden Code node

  1. AI Agent node'unun çıktısını bir Code node'una bağlayın.
  2. Code node dilini JavaScript olarak seçin.
  3. n8n/mcp_python_result_parser.js içeriğini alın ve Code node'a yapıştırın.
  4. En alta sadece şu satırı ekleyin:
return parseMcpPythonResult($input);

Bu node'un çıktısı:

  • json.summary
  • json.stats
  • json.top_words
  • binary.wordcloud (image/jpeg)
  • binary.chart (image/jpeg)

olarak oluşur ve e‑posta node'una direkt bağlanabilir.

4. HTML e‑posta raporu

  1. Bir Send Email node'u ekleyin.
  2. Content type olarak HTML seçin.
  3. n8n/email_report_template.html içeriğini HTML alanına yapıştırın.
  4. Attachments / Binary bölümünde:
    • wordcloud ve chart binary alanlarını seçin,
    • CID değerlerini sırasıyla wordcloud ve chart yapın.
      (Şablonda src="cid:wordcloud" ve src="cid:chart" kullanıldığı için.)

Özet Akış

  1. Kullanıcı chat üzerinden bir URL gönderir.
  2. AI Agent:
    • firecrawl_scrape ile sayfayı markdown olarak çeker,
    • analyze_turkish_content ile metni analiz ettirir.
  3. Code node (parseMcpPythonResult) MCP çıktısını parçalar ve görselleri binary'ye çevirir.
  4. Send Email node'u email_report_template.html ile şık bir rapor gönderir.

Bu yapı, özellikle Türkçe haber / blog içeriklerinin otomatik analizi ve raporlanması için optimize edilmiştir.