MCP Info Gatherer
The MCP Info Gatherer server provides a unified interface to search and retrieve information from multiple online sources and identify trends. It offers the following tools:
Web Search (
search_web): Search the internet using Tavily API.Twitter/X Search (
search_twitter): Search posts and discussions (requires Bearer Token).Telegram Search (
search_telegram): Search messages across all channels, with user mode (API credentials) or bot mode (Bot Token).Telegram Channel Search (
search_telegram_channel): Search within a specific channel by username, chat ID, or invite link.Telegram Channel Info (
get_telegram_channel_info): Get channel title, description, subscriber count.GitHub Repository Search (
search_github): Search repos with qualifiers like language, stars, topics (optional token).GitHub Code Search (
search_github_code): Search code snippets.GitHub Issues/PR Search (
search_github_issues): Search issues and pull requests.Hugging Face Model Search (
search_huggingface): Search models (free, no key).Hugging Face Dataset Search (
search_huggingface_datasets): Search datasets (free).arXiv Paper Search (
search_arxiv): Search papers by query or category (free).Trend Analysis (
get_trends): Get trends on a topic from web, Twitter, GitHub, HuggingFace, or arXiv.
All results are returned as structured JSON. The server supports stdio and SSE transport, and can be deployed via systemd with reverse proxy.
Search scientific articles on arXiv by query or category (e.g., cat:cs.AI).
Search repositories, code, and issues on GitHub. Supports qualifiers like language, stars, org, etc.
Search AI models and datasets on Hugging Face Hub.
Search messages across Telegram channels and groups, and get channel info. Supports both user mode (full history) and bot mode (limited).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Info Gatherer Search web and Twitter for latest AI news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-gathererNginx + 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.comsystemd-сервис (без 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.targetsudo systemctl daemon-reload
sudo systemctl enable --now mcp-info-gathererReverse 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 | Полнотекстовый поиск по истории всех диалогов |
|
Bot mode | Только последние сообщения из каналов, где бот админ |
|
User mode использует Telethon (MTProto) — даёт полноценный поиск, как в официальном клиенте. При первом запуске потребуется ввести код подтверждения из Telegram.
Параметры:
query(str): Поисковый запросmax_results(int, optional): 1-100, по умолчанию 10
search_telegram_channel
Поиск сообщений в конкретном Telegram канале.
Параметры:
channel(str):@username,chat_idили invite linkquery(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
Trends
get_trends
Получить тренды по теме из указанного источника.
Параметры:
topic(str): Тема для поиска трендовmax_results(int, optional): 1-10, по умолчанию 5source(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 toolsget_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).
get_trendsB
Получить тренды по теме.
Анализирует текущие тренды в указанной теме. Подходит для: контент-план, исследование аудитории, поиск актуальных тем для публикаций.
Args: topic: Тема для поиска трендов (например, "project management") max_results: Максимум трендов (1-10) source: Источник (web | twitter | github | huggingface | arxiv)
Returns: list[TrendItem]: [{title, description, url, source, mentions}]
Inputs: topic (required), source, max_results.
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
Scored across 12 tools
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.
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.
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.
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
Scrape, crawl and search the web for AI agents via MCP.
Web MCP: scrape/crawl sites, web search, brand assets, app stores, YouTube, Reddit, Hacker News.
Search and inspect source-pinned agent skills, plugins and tools through a free public MCP.
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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 npm4Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA 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.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables 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-
- AlicenseAqualityBmaintenanceAn 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.7356 npm1MIT