io.github.wende/cicada
CICADA
mcp-name: io.github.wende/cicada
Code Intelligence: Contextual Analysis, Discovery, and Attribution
Контекстное сжатие для AI-ассистентов кода – Дайте вашему AI структурированный, эффективный по токенам доступ к 17+ языкам, включая Elixir, Python, TypeScript, JavaScript, Rust и другие.
До 50% меньше ожидания · До 70% меньше токенов · До 99% меньше объяснений Более плотный контекст = Лучшее качество
Быстрая установка · Безопасность · Разработчикам · AI-ассистентам · Документация
Почему CICADA?
Основная проблема: AI-ассистенты кода тратят контекст на слепой поиск. Grep выгружает целые файлы, когда вам нужна только сигнатура функции, оставляя меньше места для реальных рассуждений.
Подход контекстного сжатия
Вместо сырых текстовых выгрузок CICADA предоставляет вашему AI структурированные, предварительно проиндексированные знания:
Традиционный поиск | CICADA |
Grep выгружает целые файлы | Возвращает только сигнатуры + места вызова |
Пропускает импорты с псевдонимами | Отслеживает все типы ссылок |
Нет семантического понимания | Поиск по ключевым словам находит |
Что вы получаете
Индексация на уровне AST – Определения модулей/функций/классов с сигнатурами, спецификациями, документацией
Поддержка 17+ языков – Elixir, Python, TypeScript, JavaScript, Rust, Go, Java, Kotlin, Scala, C/C++, Ruby, C#, Visual Basic, Dart, PHP, Erlang (бета)
Полное отслеживание мест вызова – Псевдонимы, импорты, динамические ссылки на всех поддерживаемых языках
Семантический поиск – Поиск кода по концепции с помощью извлечения ключевых слов или эмбеддингов (интеграция с Ollama)
Атрибуция Git + PR – Показывает почему существует код, а не только что
Анализ зависимостей – Двунаправленное отслеживание (что вызывает это, что это вызывает)
Автоматическое определение языка – Бесшовная работа в мультиязычных кодовых базах
Related MCP server: CodeGraph
Установка
# 1. Install uv (if needed)
# curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install cicada-mcp
# In your repo
cicada claude # or: cicada cursor, cicada vs, cicada gemini, cicada codex, cicada opencode, cicada zeduvx cicada-mcp claude # or cursor, vsили
claude mcp add cicada uvx cicada-mcpgemini mcp add cicada uvx cicada-mcpcodex mcp add cicada uvx cicada-mcpkimi mcp add --transport stdio cicada -- cicada-mcpИспользует встроенное управление MCP вашего редактора для установки CICADA.
Доступные команды после установки:
cicada [claude|cursor|vs|gemini|codex|opencode|zed]- Интерактивная настройка одной командой на проектcicada-mcp- MCP-сервер (автоматически запускается редактором)cicada serve- Запуск REST API сервера для HTTP-доступа ко всем инструментам MCPcicada status- Показать статус индекса, индекс PR, статус ссылок, файлы агентов, конфигурации MCPcicada stats [repo]- Отобразить статистику использования (вызовы инструментов, токены, время выполнения)cicada watch- Отслеживать изменения файлов и автоматически переиндексироватьcicada index- Переиндексировать код с пользовательскими опциями (-f/--force,--keywords,--embeddings,--watch)cicada index-pr- Индексировать пул-реквесты для атрибуции PRcicada run [tool]- Выполнить любой из 7 инструментов MCP напрямую из CLIcicada agents install- Установить агентов Claude Code в директорию./.claude/cicada link [parent_dir]- Привязать текущий репозиторий к существующему индексуcicada clean- Полностью удалить интеграцию cicada из вашей папки, а также все настройки
Спросите своего ассистента:
# Elixir
"Show me the functions in MyApp.User"
"Where is authenticate/2 called?"
# Python
"Show me the AuthService class methods"
"Where is login() used in the codebase?"
# Both languages
"Find code related to API authentication"Конфиденциальность и безопасность
100% локально: парсинг и индексация выполняются на вашей машине; никакого внешнего доступа.
Без телеметрии: CICADA не собирает данные об использовании или телеметрию.
Инструменты только для чтения: конечные точки MCP только читают индекс; они не могут изменить ваш репозиторий.
Необязательный доступ к GitHub: функции PR полагаются на
ghи ваш существующий OAuth-токен.Структура данных:
~/.cicada/projects/<repo_hash>/ ├─ index.json # modules, functions, call sites, metadata ├─ config.yaml # indexing options + mode ├─ hashes.json # incremental indexing cache └─ pr_index.json # optional PR metadata + reviewsВаш репозиторий получает только конфигурацию редактора (
.mcp.json,.cursor/mcp.json,.vscode/settings.json,.gemini/settings.json,.codex/mcp.jsonили.opencode.json).
Для разработчиков
Подключите CICADA к своему редактору один раз, и каждая сессия ассистента унаследует контекст.
Установка и настройка
cd /path/to/project
cicada claude # or cicada cursor / cicada vs / cicada gemini / cicada codex / cicada opencode / cicada zedВключение атрибуции PR (необязательно)
brew install gh # or apt install gh
gh auth login
cicada index-pr . # incremental
cicada index-pr . --clean # full rebuildОткрывает вопросы типа "Какой PR ввёл строку 42?" или "Что сказали рецензенты о billing.ex?"
Автоматическая переиндексация в режиме наблюдения
Включите автоматическую переиндексацию при изменении файлов, запустив MCP-сервер с флагом --watch:
** .mcp.json**
{
"mcpServers": {
"cicada": {
"command": "cicada-mcp",
"args": ["--watch"],
"env": {
"CICADA_CONFIG_DIR": "/home/user/.cicada/projects/<hash>"
}
}
}
}Когда режим наблюдения включён:
Отдельный процесс отслеживает изменения в файлах
.ex,.exs(Elixir) и.py(Python)Изменения автоматически переиндексируются (инкрементально, быстро)
Задержка в 2 секунды предотвращает чрезмерную переиндексацию при быстрых правках
Процесс наблюдения автоматически останавливается при остановке MCP-сервера
Исключённые директории:
deps,_build,node_modules,.git,assets,priv,.venv,venv
Шпаргалка по CLI
Примечание: определение языка происходит автоматически – CICADA автоматически определяет проекты Elixir (mix.exs) и Python (pyproject.toml).
Команда | Назначение | Когда выполнять |
| Настроить MCP + инкрементальная переиндексация | Первая настройка, после локальных изменений |
| Проверить здоровье индекса, статус ссылок, файлы агентов | После настройки, устранение неполадок |
| Просмотр статистики использования и метрик токенов | Ежемесячные обзоры, оптимизация |
| Отслеживать файлы и автоматически переиндексировать при изменениях | Во время активной разработки |
| Перестроить с индексацией ключевых слов | После крупных рефакторингов или включения режима ключевых слов |
| Перестроить с эмбеддингами (семантический поиск) | Когда нужен семантический анализ на базе Ollama |
| Синхронизировать метаданные/рецензии PR | После слияния новых PR |
Устранение неполадок
Сначала запустите индексатор:
cicada index /path/to/projectУбедитесь, что индексация завершилась успешно. Проверьте наличие ~/.cicada/projects/<hash>/index.json.
Используйте точное имя модуля, как оно указано в коде (например, MyApp.User, а не User).
Если модуль был недавно добавлен, переиндексируйте:
cicada index .Контрольный список для устранения неполадок:
Проверьте наличие файла конфигурации:
# For Claude Code ls -la .mcp.json # For Cursor ls -la .cursor/mcp.json # For VS Code ls -la .vscode/settings.jsonУбедитесь, что пути абсолютные:
cat .mcp.json # Should contain: /absolute/path/to/project # Not: ./project or ../projectУбедитесь, что индекс существует:
ls -la ~/.cicada/projects/ # Should show directory for your projectПолностью перезапустите редактор (не просто перезагрузите окно)
Проверьте журналы MCP редактора:
Claude Code: --debug
Cursor: Настройки → MCP → Просмотр журналов
VS Code: Панель вывода → MCP
Настройка GitHub CLI:
# Install GitHub CLI
brew install gh # macOS
sudo apt install gh # Ubuntu
# or visit https://cli.github.com/
# Authenticate
gh auth login
# Index PRs
cicada index-prЧастые проблемы:
"Индекс PR не найден" → Выполните
cicada index-pr ."Не репозиторий GitHub" → Убедитесь, что репозиторий имеет удалённый GitHub
Медленная индексация → Первая индексация загружает все PR; последующие запуски инкрементальны
Ограничение скорости → GitHub API имеет лимиты; подождите и повторите, если достигли лимита
Принудительная перестройка:
cicada index-pr --cleanОшибка: "Поиск по ключевым словам недоступен"
Причина: Индекс был построен без извлечения ключевых слов.
Решение:
# Re-index with keyword extraction
cicada index . # or --keywordsПроверка:
cat ~/.cicada/projects/<hash>/config.yaml
# Should show:
# indexing:
# mode: keywordsПодробнее: Индексация PR, Инкрементальная индексация.
Требования:
Node.js (для индексатора scip-python)
Python-проект с pyproject.toml
Первая настройка: CICADA автоматически устанавливает scip-python через npm при первой индексации. Это может занять минуту.
Известные ограничения (бета):
Первая индексация может быть медленнее, чем для Elixir (этап генерации SCIP)
Большие виртуальные окружения (.venv) автоматически исключаются
Некоторые динамические паттерны Python могут не быть захвачены
Советы по производительности:
# Ensure .venv is excluded
echo "/.venv/" >> .gitignore
# Use keywords mode for quickest indexing
cicada index --keywords .Сообщить о проблемах: GitHub Issues с меткой "Python"
Для AI-ассистентов
CICADA поставляет 7 специализированных инструментов MCP, разработанных для эффективного исследования кода в кодовых базах на Elixir, Python и Erlang.
🧭 Какой инструмент вам следует использовать?
Нужда | Инструмент | Примечания | |
Начать исследование |
| 🚀 НАЧНИТЕ ЗДЕСЬ - Умное обнаружение с ключевыми словами/паттернами + фильтры (область, недавние, путь) | |
Просмотреть полный API модуля |
| Функции, сигнатуры, спецификации, документация. Используйте | |
Найти, где используется функция |
| Определение + все места вызова. Поддерживает шаблоны с подстановочными знаками ( | `) |
Отследить историю git |
| Унифицированный инструмент: blame, коммиты, PR, эволюция функций (заменяет 4 устаревших инструмента) | |
Углубиться в результаты |
| Автоматически разворачивает модули или функции из результатов запроса | |
Продвинутые запросы к индексу |
| Пользовательские запросы jq для продвинутых пользователей |
Хотите увидеть эти инструменты в действии? Ознакомьтесь с Примерами полных рабочих процессов с профессиональными советами и реальными сценариями.
Основные инструменты
query - Умное обнаружение кода (ваша отправная точка)
Автоматически определяет ключевые слова или паттерны
Фильтры:
scope(public/private),recent(последние 14 дней),filter_type(modules/functions),match_source(docs/strings)Возвращает сниппеты с умными предложениями следующих шагов
Используйте
path_patternдля фильтрации по местоположению
search_module - Глубокий анализ модуля
Просмотр полного API: функции, сигнатуры, спецификации, документация
Для Python: отображает классы с количеством методов и сигнатурами
Для Elixir: отображает функции с обозначением арности
Двунаправленный анализ:
what_calls_it=true→ Показывает, кто использует этот модуль (анализ влияния)what_it_calls=true→ Показывает, от чего зависит этот модуль
Поддерживает подстановочные знаки (Elixir:
MyApp.*, Python:api.handlers.*) и шаблоны OR (MyApp.User|MyApp.Post)Фильтрация по видимости (public/private/all)
search_function — отслеживание использования функций
Поиск определений и всех мест вызова
what_calls_it=true(по умолчанию) → Показывает всех вызывающихwhat_it_calls=true→ Показывает все зависимостиВключение примеров кода с
include_usage_examples=trueФильтрация по
usage_type: source, tests или all
Git History (унифицированный инструмент)
git_history — все операции git в одном инструменте
Одна строка:
git_history("file.ex", start_line=42)→ blame + PRДиапазон строк:
git_history("file.ex", start_line=40, end_line=60)→ группированный blameОтслеживание функции:
git_history("file.ex", function_name="create_user")→ эволюцияИстория файла:
git_history("file.ex")→ все PR/коммитыФильтрация по времени:
recent=true(14д),recent=false(>14д),recent=null(все)Фильтрация по автору:
author="john"Автоматическая интеграция с индексом PR при наличии
Дополнительные инструменты
expand_result — детализация результатов запроса
Автоматически определяет модуль или функцию
Показывает полные сведения с примерами использования
Настройка включаемого: код, зависимости, вызывающие
Удобная обёртка для search_module и search_function
query_jq — расширенные запросы к индексу
Прямые jq-запросы к индексу
Обнаружение схемы с помощью
| schemaКомпактный (по умолчанию) или красивый вывод
Режим выборки для больших результатов
Подробные параметры + форматы вывода: MCP_TOOLS_REFERENCE.md.
Ответы, экономящие токены
Все инструменты возвращают структурированные фрагменты Markdown/JSON (сигнатуры, места вызовов, метаданные PR) вместо полных файлов, что позволяет сократить объём подсказок.
Новое в v0.5.1: Все инструменты по умолчанию используют компактный вывод для минимизации расхода токенов. Используйте verbose=true для подробного вывода с полной документацией и спецификациями.
Документация
Codebook — полный справочник функций и руководства пользователя
Workflows — реальные примеры совместного использования инструментов
Installation — пошаговая настройка для всех редакторов
Contributing — рекомендации по разработке и архитектура
CHANGELOG.md — примечания к выпускам
Углублённые материалы:
Keyword Extraction Analysis — внутреннее устройство семантического поиска
PR Indexing — детали интеграции с GitHub
MCP Tool Call Benchmarking — бенчмарки токенов/времени
Tool Discoverability — исследование улучшений UX
План развития
Текущий статус
Готово к производству:
✅ Elixir (tree-sitter)
✅ Python (SCIP)
✅ TypeScript (SCIP)
✅ JavaScript (SCIP)
✅ Rust (SCIP)
Бета:
🚧 Erlang (tree-sitter)
🚧 Go (SCIP)
🚧 Java/Kotlin/Scala (SCIP)
🚧 C/C++ (SCIP)
🚧 Ruby (SCIP)
🚧 C#/Visual Basic (SCIP)
🚧 Dart (SCIP)
🚧 PHP (SCIP)
Сравнение с альтернативами
Функция | CICADA | Codicil (только Elixir) | |
Метод анализа | SCIP (статический индекс) | LSP (сервер реального времени) | LLM-резюме + эмбеддинги |
Редактирование кода | ❌ | ✅ | ❌ |
Git-контекст | ✅ История PR, blame, эволюция | ❌ | ❌ |
Использование ресурсов | Низкое (чтение с диска) | Высокое (постоянные серверные процессы) | Среднее (вызовы API) |
Конфиденциальность | 100% локально | 100% локально | Требует внешних LLM API |
Семантический поиск | Локальный Ollama или ключевые слова | ❌ | Эмбеддинги OpenAI/Anthropic |
Граф вызовов | Двунаправленный с разрешением псевдонимов | На основе LSP | ❌ |
Когда выбирать CICADA: Если вам нужна локальная работа с богатым git-контекстом (привязка к PR, blame, отслеживание эволюции функций) и эффективным расходом токенов.
Когда выбирать Serena: Если вам нужны возможности редактирования кода через LSP и вы готовы к более высокому потреблению ресурсов.
Когда выбирать Codicil: Если у вас проект на Elixir и вы предпочитаете семантические резюме на основе LLM (только Elixir).
Участие в разработке
git clone https://github.com/wende/cicada.git
cd cicada
uv sync
pytestПеред отправкой PR:
Запустите
black cicada testsУбедитесь, что тесты и покрытие проходят (
pytest --cov=cicada --cov-report=term-missing)Обновите документацию, если изменилось поведение
Мы приветствуем issues/PR по:
Новым грамматикам языков
Улучшениям вывода инструментов
Улучшению документации и руководств по началу работы
Лицензия
MIT — см. LICENSE.
Хватит тратить контекст на слепые поиски. Дайте вашему ИИ CICADA.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides intelligent code context and analysis through semantic compression, AST parsing, and multi-language support. Offers 60-80% token reduction while enabling AI assistants to understand codebases through local analysis, OpenAI-enhanced insights, and GitHub repository integration.6123MIT
- Alicense-qualityAmaintenanceSupercharges AI coding agents with a pre-indexed semantic code graph, enabling instant symbol relationships, impact analysis, and context retrieval across 20+ languages.83,49166,716MIT
- Alicense-qualityBmaintenanceProvides AI coding assistants with deep, semantic understanding of local codebases via AST-aware chunking, cross-repo symbol graphs, and architectural memory, enabling context-aware code search and dependency tracing.10MIT
- Alicense-qualityDmaintenanceMake any LLM a codebase expert instantly. Provides deep code intelligence through semantic search, architecture mapping, security analysis, and smart context that fits perfectly in token windows.MIT
Related MCP Connectors
Enterprise code intelligence for M&A, security audits, and tech debt. Hosted server with 200k free.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wende/cicada'
If you have feedback or need assistance with the MCP directory API, please join our Discord server