Skip to main content
Glama
MCP Info Gatherer

MCP Info Gatherer

by ESkuratov

MCP Info Gatherer

MCP-сервер для сбора информации из разных источников: веб, Twitter/X, Telegram, GitHub, Hugging Face и arXiv. Реализует протокол MCP (Model Context Protocol).

Источники

Источник

Поиск

Тренды

API

Статус

Web (Tavily)

✅

✅

Требуется ключ

Работает

Twitter/X (API v2)

✅

✅

Требуется Bearer Token

Работает

Telegram (Telethon MTProto)

✅ User mode / ⚠️ Bot mode

—

API ID + Hash + Phone / Bot Token

Работает

GitHub (REST API)

✅ репозитории, код, issues

✅

Без ключа (60 req/h)

Работает

Hugging Face (Hub API)

✅ модели, датасеты

✅

Без ключа

Работает

arXiv (API)

✅ статьи

✅

Без ключа

Работает

Related MCP server: reach-mcp

Установка

# Установка через uv
uv sync

# С тестовыми зависимостями
uv sync --group test

Настройка

Скопируйте .env.example в .env и укажите ключи:

cp .env.example .env
# WEB SEARCH — обязательный для search_web
TAVILY_API_KEY="tvly-..."

# TWITTER / X — опционально (требуется подписка X API)
X_BEARER_TOKEN="..."

# TELEGRAM — два режима:
# User mode (полноценный поиск по истории):
TELEGRAM_API_ID="12345"       # из my.telegram.org/apps
TELEGRAM_API_HASH="ваш_хэш"  # оттуда же
TELEGRAM_PHONE="+79001234567" # ваш номер телефона
# Bot mode (ограниченный — только последние сообщения):
TELEGRAM_BOT_TOKEN="токен_от_BotFather"

# GITHUB — опционально (для 5000 req/h вместо 60)
GITHUB_TOKEN="..."

# HUGGING FACE — опционально
HF_TOKEN="..."
  • Tavily API ключ — получить на tavily.com

  • X Bearer Token — получить в developer.x.com (требуется Basic/Pro подписка)

  • Telegram API ID и Hash — получить на my.telegram.org/apps (бесплатно)

  • Telegram Bot Token — получить у @BotFather

  • GitHub Token — создать в Settings → Developer settings → Personal access tokens

  • GitHub, Hugging Face, arXiv — работают без ключа

Запуск

# stdio (для интеграции с MCP-хостами — Claude Desktop, Cline, crewAI)
uv run mcp-info-gatherer

# SSE (для отладки и удалённого доступа)
uv run mcp-info-gatherer --transport sse --host 127.0.0.1 --port 8002

Развёртывание на VPS

Для удалённого доступа сервер запускается с SSE-транспортом.

Docker (рекомендуется)

В репозитории готовы Dockerfile, docker-compose.yml и конфиги в deploy/.

# 1. Склонировать репозиторий на VPS
git clone https://github.com/ESkuratov/mcp-info-gatherer.git /opt/mcp-info-gatherer
cd /opt/mcp-info-gatherer

# 2. Создать .env с ключами (см. .env.example)
cp .env.example .env
nano .env

# 3. Запустить
docker compose up -d --build

# Проверка
docker compose ps
curl -s http://127.0.0.1:8002/sse

Контейнер слушает 127.0.0.1:8002 — наружу отдаёт nginx (см. ниже). Telegram session (telegram_user_session.session) хранится в volume mcp_data и переживает перезапуски контейнера.

User mode Telegram на VPS: при первом запуске Telethon запросит код из Telegram. Проще авторизоваться локально (uv run mcp-info-gatherer), затем скопировать telegram_user_session.session в volume:

docker cp telegram_user_session.session mcp-info-gatherer:/data/

systemd (автозапуск при перезагрузке)

sudo cp deploy/mcp-info-gatherer.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now mcp-info-gatherer

Nginx + HTTPS

sudo cp deploy/nginx.conf /etc/nginx/sites-available/mcp-info-gatherer
# заменить mcp.example.com на свой домен
sudo ln -s /etc/nginx/sites-available/mcp-info-gatherer /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Сертификат Let's Encrypt:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d mcp.example.com

systemd-сервис (без Docker)

/etc/systemd/system/mcp-info-gatherer.service:

[Unit]
Description=MCP Info Gatherer
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/mcp-info-gatherer
EnvironmentFile=/opt/mcp-info-gatherer/.env
ExecStart=/opt/mcp-info-gatherer/.venv/bin/uv run mcp-info-gatherer --transport sse --host 0.0.0.0 --port 8002
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mcp-info-gatherer

Reverse proxy (рекомендуется)

Через Nginx с HTTPS и базовой аутентификацией:

server {
    listen 443 ssl;
    server_name mcp.example.com;

    ssl_certificate /etc/letsencrypt/live/mcp.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mcp.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8002;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 86400;
    }
}

Подключение из Claude Desktop

На локальной машине в claude_desktop_config.json:

"mcp-info-gatherer": {
  "url": "https://mcp.example.com"
}

Инструменты MCP

Web

search_web

Поиск информации в интернете через Tavily API.

Параметры:

  • query (str): Поисковый запрос

  • max_results (int, optional): Максимум результатов (1-20, по умолчанию 10)

Ответ:

{
  "results": [
    {
      "title": "AI Trends 2026",
      "url": "https://example.com/ai-trends",
      "content": "Краткое описание...",
      "source": "web",
      "score": 0.95
    }
  ],
  "total": 5,
  "source": "web",
  "error": null
}

Twitter / X

search_twitter

Поиск постов в Twitter/X. Требуется X_BEARER_TOKEN.

Параметры:

  • query (str): Поисковый запрос (например, "AI news lang:en")

  • max_results (int, optional): 1-100, по умолчанию 10

Telegram

search_telegram

Поиск сообщений по всем доступным Telegram каналам.

Два режима:

Режим

Возможности

Требуется

User mode

Полнотекстовый поиск по истории всех диалогов

API_ID + API_HASH + PHONE

Bot mode

Только последние сообщения из каналов, где бот админ

BOT_TOKEN

User mode использует Telethon (MTProto) — даёт полноценный поиск, как в официальном клиенте. При первом запуске потребуется ввести код подтверждения из Telegram.

Параметры:

  • query (str): Поисковый запрос

  • max_results (int, optional): 1-100, по умолчанию 10

search_telegram_channel

Поиск сообщений в конкретном Telegram канале.

Параметры:

  • channel (str): @username, chat_id или invite link

  • query (str): Поисковый запрос

  • max_results (int, optional): 1-100, по умолчанию 10

get_telegram_channel_info

Получить информацию о Telegram канале (название, описание, подписчики).

Параметры:

  • channel (str): @username, chat_id или invite link

GitHub

search_github

Поиск репозиториев на GitHub. Поддерживает qualifiers: language:python, stars:>100, topic:ai, org:openai, etc.

Параметры:

  • query (str): Поисковый запрос

  • max_results (int, optional): 1-100, по умолчанию 10

search_github_code

Поиск кода на GitHub.

Пример: "openai client lang:python"

search_github_issues

Поиск issues и PR на GitHub.

Пример: "bug label:bug state:open"

Hugging Face

search_huggingface

Поиск AI-моделей на Hugging Face Hub.

Параметры:

  • query (str): Поисковый запрос (например, "text-to-image")

  • max_results (int, optional): 1-100, по умолчанию 10

search_huggingface_datasets

Поиск датасетов на Hugging Face Hub.

Пример: "russian text"

arXiv

search_arxiv

Поиск научных статей на arXiv.

Параметры:

  • query (str): Поисковый запрос или категория ("cat:cs.AI", "cat:cs.LG")

  • max_results (int, optional): 1-100, по умолчанию 10

Получить тренды по теме из указанного источника.

Параметры:

  • topic (str): Тема для поиска трендов

  • max_results (int, optional): 1-10, по умолчанию 5

  • source (str, optional): web | twitter | github | huggingface | arxiv

Ответ:

[
  {
    "title": "AI в проектном менеджменте",
    "description": "Описание тренда...",
    "url": "https://example.com",
    "source": "web",
    "mentions": null
  }
]

Тестирование

# Запуск всех тестов
uv run pytest tests/ -v

# Только unit-тесты
uv run pytest tests/test_server.py -v

Что тестируется

  • Модели — Pydantic-схемы (SearchResult, SearchResponse, TrendItem)

  • Провайдеры — Web, Twitter, Telegram, GitHub, Hugging Face, arXiv

  • Реестр провайдеров — синглтон, неизвестные источники

  • MCP сервер — регистрация всех 10 инструментов

Структура проекта

mcp-info-gatherer/
├── src/mcp_info_gatherer/
│   ├── server.py          # MCP сервер (10 инструментов)
│   ├── models.py          # Pydantic-схемы
│   └── providers/
│       ├── base.py        # Базовый класс InfoProvider
│       ├── web_search.py  # Tavily API
│       ├── twitter.py     # X API v2
│       ├── telegram.py    # Telegram Bot API / Telethon
│       ├── github.py      # GitHub REST API v3
│       ├── huggingface.py # Hugging Face Hub API
│       └── arxiv.py       # arXiv API
├── tests/
│   └── test_server.py     # 27 тестов
├── deploy/
│   ├── nginx.conf          # reverse proxy с HTTPS
│   └── mcp-info-gatherer.service  # systemd unit для Docker
├── Dockerfile              # multi-stage сборка через uv
├── docker-compose.yml      # деплой на VPS
├── .dockerignore
├── .env.example
└── pyproject.toml

Интеграция с crewAI

В ai-gc-pipeline нужно будет создать bridge tool (tools/mcp_info_gatherer_tool.py), который будет запускать MCP сервер как subprocess и общаться с ним через JSON-RPC по stdio.

Агенты, которые будут использовать:

  • ux-researcher — search_web, search_twitter, search_github (исследование аудитории и аналогов)

  • content-strategist — search_web, search_huggingface, get_trends (контент-план)

  • copywriter — search_arxiv, search_github (фактчекинг для технических статей)

  • analyst — search_telegram, search_github_issues (мониторинг каналов и обсуждений)

Разработка

# Установка с dev-зависимостями
uv sync --group test

# Запуск тестов
uv run pytest

# Проверка типов
uv run mypy src/

Available Tools

12 tools
get_telegram_channel_infoA

Получить информацию о Telegram канале.

Использует Telethon (MTProto). Требуется TELEGRAM_API_ID и TELEGRAM_API_HASH.

Args: channel: @username, chat_id или invite link

Returns: dict: {title, username, about, participants_count, link, error}

Inputs: channel (required).

search_arxivA

Поиск научных статей на arXiv.

Использует arXiv API. Бесплатно, без ключа. Подходит для: исследование темы, поиск релевантных работ, мониторинг новых публикаций.

Args: query: Поисковый запрос (например, "large language models" или категория "cat:cs.AI") max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date}], total, source, error}

Inputs: query (required), max_results.

search_githubA

Поиск репозиториев на GitHub.

Использует GitHub REST API v3. Без токена — 60 req/h, с GITHUB_TOKEN — 5000 req/h. Подходит для: поиск open-source решений, анализ аналогов, мониторинг трендовых проектов.

Args: query: Поисковый запрос (поддерживает qualifiers: language:python, stars:>100, topic:ai, etc.) max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date, score}], total, source, error}

Inputs: query (required), max_results.

search_github_codeA

Поиск кода на GitHub.

Использует GitHub Code Search API. Подходит для: поиск примеров кода, библиотек, утилит.

Args: query: Поисковый запрос (например, "openai client lang:python") max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author}], total, source, error}

Inputs: query (required), max_results.

search_github_issuesA

Поиск issues и PR на GitHub.

Использует GitHub Issues API. Подходит для: мониторинг багов, обсуждений, фич-реквестов.

Args: query: Поисковый запрос (например, "bug label:bug state:open") max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date, score}], total, source, error}

Inputs: query (required), max_results.

search_huggingfaceA

Поиск моделей на Hugging Face.

Использует HF Hub API. Бесплатно, без ключа. Подходит для: поиск AI-моделей, мониторинг новых релизов, анализ трендов в AI.

Args: query: Поисковый запрос (например, "text-to-image") max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date}], total, source, error}

Inputs: query (required), max_results.

search_huggingface_datasetsA

Поиск датасетов на Hugging Face.

Использует HF Hub API. Бесплатно, без ключа. Подходит для: поиск датасетов для обучения, анализа данных.

Args: query: Поисковый запрос (например, "russian text") max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date}], total, source, error}

Inputs: query (required), max_results.

search_telegramA

Поиск сообщений по всем доступным Telegram каналам.

Использует Telethon (MTProto) для поиска по истории каналов. Требуется TELEGRAM_BOT_TOKEN, TELEGRAM_API_ID и TELEGRAM_API_HASH. Подходит для: мониторинг каналов, поиск обсуждений, сбор информации по теме.

Args: query: Поисковый запрос max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date}], total, source, error}

Inputs: query (required), max_results.

search_telegram_channelA

Поиск сообщений в конкретном Telegram канале.

Использует Telethon (MTProto) для поиска по истории указанного канала. Требуется TELEGRAM_BOT_TOKEN, TELEGRAM_API_ID и TELEGRAM_API_HASH. Бот должен быть добавлен в канал.

Args: channel: @username канала (например, @durov), chat_id (например, -1001234567890), или invite link query: Поисковый запрос max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date}], total, source, error}

Inputs: query (required), channel (required), max_results.

search_twitterA

Поиск постов в Twitter/X.

Использует X API v2 (требуется Bearer Token). Подходит для: мониторинг обсуждений, поиск мнений, отслеживание трендов в реальном времени.

Args: query: Поисковый запрос (например, "AI news lang:en") max_results: Максимум результатов (1-100)

Returns: SearchResponse: {results: [{title, url, content, source, author, date, score}], total, source, error}

Inputs: query (required), max_results.

search_webA

Поиск информации в интернете.

Использует Tavily API для поиска по вебу. Подходит для: фактчекинг, исследование рынка, поиск статей, сбор информации о продуктах и конкурентах.

Args: query: Поисковый запрос (например, "тренды AI 2026") max_results: Максимум результатов (1-20)

Returns: SearchResponse: {results: [{title, url, content, source, author, date, score}], total, source, error}

Inputs: query (required), max_results.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 12 tools

    Disambiguation4/5

    Most tools target distinct sources (web, Twitter, GitHub, etc.), but search_telegram and search_telegram_channel have overlapping purposes that could confuse an agent. Otherwise, the tool set is well-separated.

    Naming Consistency4/5

    The majority follow a consistent 'search_<source>' pattern, but 'get_telegram_channel_info' and 'get_trends' use a different verb prefix. The inconsistency is minor but noticeable.

    Tool Count5/5

    With 12 tools covering multiple search sources (web, social media, code repositories, academic papers), the count is well-scoped for an information gathering server. Each tool has a clear role.

    Completeness4/5

    The server covers a wide range of search sources including web, Twitter, Hugging Face, Telegram, GitHub, and arXiv. Missing sources like YouTube or news are not critical but represent a minor gap.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to perform web searches with full content retrieval and multi-engine provenance, including trust scoring and local corpus persistence, via MCP integration.
      2 npm
      4
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      A controllable multi-source search MCP server for AI agents. Enables searching multiple sources like Reddit, X, YouTube, and more, with control over sources, time window, and optional synthesis.
      10
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to perform unified web research through a single MCP server, including search, page fetching, recursive crawling, document parsing, YouTube transcript extraction, and deep multi-query research.
      3
      -
    • A
      license
      A
      quality
      B
      maintenance
      An MCP-native research assistant — search backend, intent-routing, and writing pipeline that carries a question through search, verification, and writing, delivering whatever research you need: quick answers, verified sources, or a finished document.
      7
      356 npm
      1
      MIT