Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Ctags

БесплатноНе проверен

MCP server for ctags-based code navigation in Claude Code

GitHubEmbed

Описание

MCP server for ctags-based code navigation in Claude Code

README

Python 3.10+ MIT License

A Model Context Protocol (MCP) server that transforms ctags from a command-line utility into a native code navigation system for Claude Code. Built with a functional programming approach and comprehensive type safety.

Quick Start

# Install the package
pip install ctags-mcp

# Generate tags for your project
ctags -R .

# Add to Claude Desktop config
{
  "mcpServers": {
    "ctags": {
      "command": "ctags-mcp"
    }
  }
}

# Optional: Auto-regenerate tags when code changes
# Copy .claude/settings.json to your project root

📖 Full Installation Guide | 🔄 Auto-Regeneration Setup

✨ Features

  • 🚀 20x Performance: Index-based symbol lookup vs reading entire files
  • 🔍 Smart Search: Regex patterns, type filtering, scope-aware queries
  • 📁 Universal Support: Works with any ctags-supported language
  • 🎯 Precise Context: Get source code around symbols with configurable line counts
  • 🔧 Auto-Detection: Finds tags files in current and parent directories
  • ⚡ Zero Configuration: Works out of the box with standard ctags files

🎯 What It Does

Transform code exploration from this:

# Traditional approach - slow, imprecise
find . -name "*.py" | xargs grep "async def"
grep -r "class.*Service" src/

To this:

# Natural language with Claude
"Find all async functions in this project"
"Show me service classes with their locations"
"Get the AsyncBatchProcessor definition with context"

📊 Performance Comparison

Task Traditional MCP Ctags Improvement
Find symbols ~530ms ~7ms 79x faster
Files read 53+ files 0 files ∞x better
Query accuracy Manual parsing Structured data More reliable
Scalability Linear O(n) Constant O(1) Scales infinitely

🛠️ MCP Tools Available

ctags_detect

Auto-detects and validates ctags file in working directory.

ctags_find_symbol

Finds symbols by name or regex pattern with comprehensive filtering.

ctags_list_symbols

Lists all symbols of a specific type (functions, classes, methods, variables).

ctags_get_location

Gets source code context around a specific symbol.

ctags_search_in_files

Searches across multiple file patterns simultaneously.

🎯 Usage Examples

Once configured with Claude Desktop:

  • "Find all async functions" → Instantly locates async functions across the codebase
  • "Show me the AsyncBatchProcessor class" → Gets class definition with source context
  • "List service classes in this project" → Finds all classes with "Service" in the name
  • "Find authentication-related symbols" → Pattern-matches auth symbols across all types

📁 Project Structure

ctags-mcp/
├── src/ctags_mcp/           # Main package
│   ├── ctags_parser.py      # Functional ctags file parsing
│   ├── symbol_search.py     # Search and filtering functions
│   ├── ctags_server.py      # FastMCP server with tool definitions
│   └── main.py              # CLI entry point
├── src/tests/               # Comprehensive test suite
├── pyproject.toml           # Package configuration
├── LICENSE                  # MIT License
├── README.md                # This file
└── INSTALL.md               # Installation guide

🧪 Testing

The implementation includes comprehensive testing:

# Run all tests
pytest

# With coverage
pytest --cov=src/ctags_mcp

# Results: 31 tests passing, covering all functionality

🏗️ Architecture

Built with functional programming principles:

  • Pure functions for parsing and searching
  • Pydantic models for type safety
  • Zero classes except for data models
  • Comprehensive error handling for malformed files
  • Performance optimized for large codebases

🔧 Development

# Clone and setup
git clone <repository-url>
cd ctags-mcp
pip install -e ".[dev]"

# Code quality
black src/              # Format code
ruff check src/         # Lint code
mypy src/               # Type check
pytest                  # Run tests

📈 Performance Insights

Real-world testing with 1,050 symbols:

📁 Tags File Information:
   Format: exuberant
   Total entries: 1050
   Functions: 304, Classes: 89, Methods: 512, Variables: 145

🔍 Search Examples:
   • Async functions: 4 found in ~7ms
   • Service classes: 15 found in ~7ms
   • Auth symbols: 23 found in ~7ms
   • CLI symbols: 129 found in ~7ms

🚀 Efficiency: 79x faster than traditional file scanning

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make changes with tests: pytest
  4. Submit a pull request

📜 License

MIT License - see LICENSE for details.

🙏 Acknowledgments

  • Built with FastMCP from Anthropic
  • Uses Universal Ctags for symbol indexing
  • Inspired by the need for efficient code navigation in Claude Code

Transform your code navigation today! Install ctags-mcp and experience the power of index-based code exploration with Claude.

from github.com/gladiatr72/mcp-ctags

Установка Ctags

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/gladiatr72/mcp-ctags

FAQ

Ctags MCP бесплатный?

Да, Ctags MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Ctags?

Нет, Ctags работает без API-ключей и переменных окружения.

Ctags — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Ctags в Claude Desktop, Claude Code или Cursor?

Открой Ctags на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Ctags with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development