Версия 2.0 уже здесь
Сервер MCP поиска Google
Сервер MCP (Model Context Protocol), который предоставляет возможности поиска Google и инструменты анализа содержимого веб-страниц. Этот сервер позволяет моделям ИИ выполнять поиск Google и анализировать содержимое веб-страниц программным способом.
Функции
Интеграция пользовательского поиска Google
Расширенные функции поиска (фильтры, сортировка, пагинация, категоризация)
Анализ содержимого веб-страницы в различных форматах (markdown, HTML, простой текст)
Пакетный анализ веб-страниц
Категоризация и классификация результатов
Резюмирование содержания
Оптимизированные, понятные человеку ответы
Интерфейс, совместимый с MCP
Related MCP server: Google Research MCP
Предпосылки
Node.js (v16 или выше)
Аккаунт Google Cloud Platform
Пользовательский идентификатор поисковой системы
Ключ API Google
Установка
Клонировать репозиторий
Установите зависимости Node.js:
npm installСоздайте код TypeScript:
npm run buildКонфигурация
Настройте переменные среды для ваших учетных данных Google API:
Вы можете либо установить их как системные переменные среды, либо настроить их в файле настроек MCP.
Необходимые переменные среды:
GOOGLE_API_KEY: Ваш ключ API GoogleGOOGLE_SEARCH_ENGINE_ID: Ваш идентификатор пользовательской поисковой системы
Добавьте конфигурацию сервера в файл настроек MCP (обычно он находится по адресу
%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
{
"mcpServers": {
"google-search": {
"autoApprove": [
"google_search",
"extract_webpage_content",
"extract_multiple_webpages"
],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/google-search-mcp-server/dist/google-search.js"
],
"env": {
"GOOGLE_API_KEY": "your-google-api-key",
"GOOGLE_SEARCH_ENGINE_ID": "your-custom-search-engine-id"
},
"transportType": "stdio"
}
}
}Бег
Запустите MCP-сервер:
npm run startДоступные инструменты
1. google_поиск
Поиск в Google и возврат соответствующих результатов из сети. Этот инструмент находит веб-страницы, статьи и информацию по определенным темам с помощью поисковой системы Google.
{
"name": "google_search",
"arguments": {
"query": "your search query",
"num_results": 5, // optional, default: 5
"site": "example.com", // optional, limit results to specific website
"language": "en", // optional, filter by language (ISO 639-1 code)
"dateRestrict": "m6", // optional, filter by date (e.g., "m6" for last 6 months)
"exactTerms": "exact phrase", // optional, search for exact phrase
"resultType": "news", // optional, specify type (news, images, videos)
"page": 2, // optional, page number for pagination (starts at 1)
"resultsPerPage": 10, // optional, results per page (max: 10)
"sort": "date" // optional, sort by "date" or "relevance" (default)
}
}Ответ включает в себя:
Результаты поиска с заголовком, ссылкой, фрагментом в удобном для чтения формате
Информация о пагинации (текущая страница, общие результаты и т. д.)
Категории результатов (определяются автоматически)
Навигационные подсказки для пагинации
2. извлечение_содержимого_веб-страницы
Извлекайте и анализируйте контент с веб-страницы, преобразуя его в читаемый текст. Этот инструмент извлекает основной контент, удаляя рекламу, элементы навигации и прочий беспорядок.
{
"name": "extract_webpage_content",
"arguments": {
"url": "https://example.com",
"format": "markdown" // optional, format options: "markdown" (default), "html", or "text"
}
}Ответ включает в себя:
Название и описание веб-страницы
Статистика контента (количество слов, количество символов)
Краткое содержание
Предварительный просмотр контента (первые 500 символов)
3. извлечение_нескольких_веб-страниц
Извлечение и анализ контента из нескольких веб-страниц в одном запросе. Идеально подходит для сравнения информации из разных источников или сбора комплексной информации по теме.
{
"name": "extract_multiple_webpages",
"arguments": {
"urls": [
"https://example1.com",
"https://example2.com"
],
"format": "html" // optional, format options: "markdown" (default), "html", or "text"
}
}Ответ включает в себя:
Название и описание каждой веб-страницы
Статистика контента для каждой веб-страницы
Краткое содержание каждой веб-страницы
Предварительный просмотр содержимого каждой веб-страницы (первые 150 символов)
Получение учетных данных Google API
Перейдите в Google Cloud Console.
Создайте новый проект или выберите существующий
Включить API пользовательского поиска
Создать учетные данные API (ключ API)
Перейти на страницу пользовательской поисковой системы
Создайте новую поисковую систему и получите свой идентификатор поисковой системы
Добавьте эти учетные данные в файл настроек MCP или установите их в качестве переменных среды.
Обработка ошибок
Сервер предоставляет подробные сообщения об ошибках для:
Отсутствующие или недействительные учетные данные API
Неудачные поисковые запросы
Недействительные URL-адреса веб-страниц
Проблемы с сетевым подключением
Архитектура
Сервер построен на TypeScript и использует MCP SDK для предоставления стандартизированного интерфейса для моделей ИИ для взаимодействия с Google Search и инструментами анализа содержимого веб-страниц. Он состоит из двух основных служб:
GoogleSearchService : обрабатывает взаимодействия с API Google для обеспечения функциональности поиска.
ContentExtractor : управляет анализом и извлечением содержимого веб-страницы.
Сервер использует механизмы кэширования для повышения производительности и сокращения количества вызовов API.
Распространение собранной версии
Если вы предпочитаете распространять только собранную версию этого инструмента, а не исходный код, вы можете выполнить следующие действия:
Создайте код TypeScript:
npm run buildСоздайте дистрибутив, содержащий только необходимые файлы:
# Create a distribution directory
mkdir -p dist-package
# Copy the compiled JavaScript files
cp -r dist dist-package/
# Copy package files (without dev dependencies)
cp package.json dist-package/
cp README.md dist-package/
# Create a simplified package.json for distribution
node -e "const pkg = require('./package.json'); delete pkg.devDependencies; delete pkg.scripts.build; delete pkg.scripts.dev; pkg.scripts.start = 'node dist/google-search.js'; require('fs').writeFileSync('dist-package/package.json', JSON.stringify(pkg, null, 2));"Затем пользователи могут установить и запустить собранную версию:
# Install production dependencies only
npm install --production
# Start the server
npm startЭтот подход позволяет распространять скомпилированные файлы JavaScript без раскрытия исходного кода TypeScript. Пользователям по-прежнему необходимо:
Настройте свои учетные данные Google API как переменные среды.
Добавьте конфигурацию сервера в файл настроек MCP.
Установка производственных зависимостей
Обратите внимание, что package.json в дистрибутиве будет включать только производственные зависимости и упрощенный набор скриптов.
Лицензия
Массачусетский технологический институт