Code Summarizer

by nicobailon

Not rated
GitHub

About

A command-line tool that summarizes code files in a directory using Gemini Flash 2.0.

Details

Author
nicobailon
Categories
Developer Tools, Other, AI

Setup

Install Code Summarizer in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/nicobailon/code-summarizer

Follow the installation instructions in the repository README, then restart your MCP client.

A command-line tool that summarizes code files in a given directory using Gemini Flash 2.0. Now with MCP server support for integration with LLM tools!

- Recursively processes code files in a directory
- Respects.gitignorerules
- Skips irrelevant directories likenode_modules,dist, etc.
- Summarizes code files using Gemini Flash 2.0
- Outputs summaries to a text file
- Configurable detail level and summary length
- MCP server for integration with Claude Desktop and other LLM tools
- Modular design for easy integration into other applications
- Secure API key management
- Authentication for MCP server endpoints
- Retry mechanism with exponential backoff for LLM calls
- Rate limiting to prevent abuse

git clone https://github.com/nicobailon/code-summarizer.git cd code-summarizer

Create a.envfile with your Google API key:

The code summarizer includes a Model Context Protocol (MCP) server that allows LLM tools like Claude Desktop, Cursor AI, and Cline to access code summaries and file content.

# Start the MCP server npm start -- server

By default, the server runs on port 24312. You can change this in your configuration:

# Set custom MCP server port npm start -- config set --port 8080

- Start the code-summarizer MCP server
- Open Claude Desktop and click on the Claude menu, then "Settings..."
- Navigate to the "Developer" section
- Create a file at~/.claude/claude_desktop_config.json(macOS/Linux) or%USERPROFILE%\.claude\claude_desktop_config.json(Windows) with this content:

{ "code-summarizer": { "command": "npx", "args": ["-y", "your-path-to-code-summarizer/bin/code-summarizer.js", "server"], "env": { "GOOGLE_API_KEY": "your_api_key_here" } } }

- Restart Claude Desktop
- After restarting, you can ask Claude to access your codebase, e.g., "Summarize the files in my project"

- "Can you summarize all the JavaScript files in my project?"
- "Please give me a high-level overview of my codebase."
- "Explain what the file 'src/config/config.ts' does."
- "Find all functions related to authentication in my code."
- Start the code-summarizer MCP server
- Create a.cursor/mcp.jsonfile in your project directory:

{ "mcpServers": { "code-summarizer": { "transport": "sse", "url": "http://localhost:24312/sse", "headers": { "x-api-key": "your_api_key_here" } } } }

- Restart Cursor or reload your project
- Ask Cursor about your code, e.g., "Can you summarize my codebase?"

- "Summarize the structure of this codebase for me."
- "What are the key components in this project?"
- "Give me a detailed explanation of the MCP server implementation."
- "Help me understand how the retry mechanism works."
- Start the code-summarizer MCP server
- In Cline, you can add the MCP server with a command:

/mcp add code-summarizer http://localhost:24312/sse
/mcp config code-summarizer headers.x-api-key your_api_key_here

- You can then ask Cline to use the code-summarizer, e.g., "Please summarize my code files"

- "What does each file in my project do?"
- "Create a summary of all TypeScript files."
- "Explain the authentication flow in this codebase."
- "What are the main functions in the 'summarizer' directory?"

What You Can Do with the MCP Integration

- Get file summaries: Request concise explanations of what specific files do - Explore directories: Browse through your codebase structure - Batch processing: Summarize multiple files at once - Targeted queries: Find specific patterns or functionality in your code - Customize summaries: Control detail level and summary length - Update settings: Change configuration options through the MCP interface

The MCP server exposes your codebase to the LLM tools in a structured way, allowing them to read, navigate, and summarize your code without having to paste code snippets manually.

- code://file/- Access individual code files
- code://directory/
- List code files in a directory
- summary://file/- Get summary for a specific file
- summary://batch/
- Get summaries for multiple files

- summarize_file- Summarize a single file with options
- summarize_directory- Summarize a directory with options
- set_config- Update configuration options

- code_summary- Prompt template for summarizing code
- directory_summary- Prompt template for summarizing entire directories

- Make sure the MCP server is running (npm start -- server)
- Verify the port is correct in your configuration
- Check for firewall issues blocking the connection

- Verify you've added the correct API key in the headers (x-api-key)
- Check that your API key is valid and properly formatted
- Make sure environment variables are set correctly

- Ensure the correct transport type is specified (SSE)
- Check that the URL includes the correct endpoint (/sse)
- Verify network connectivity between the client and server

- Ensure the MCP server has read access to your codebase
- Check file permissions if summarizing fails for specific files

Claude Desktop Not Finding the MCP Server

- Verify the path inclaude_desktop_config.jsonis correct
- Make sure the command and args point to the right location
- Check Claude Desktop logs for any configuration errors

- If you see "Too many requests" errors, wait and try again later
- Consider adjusting the rate limiting settings in the server code

For other issues, check the server logs or open an issue on the GitHub repository.

# Default command (summarize) npm start -- summarize [directory] [output-file] [options] # Summarize code in the current directory (output to summaries.txt) npm start -- summarize # Summarize code with specific detail level and max length npm start -- summarize --detail high --max-length 1000 # Show help npm start -- --help
# Set your API key npm start -- config set --api-key "your-api-key" # Set default detail level and max length npm start -- config set --detail-level high --max-length 1000 # Set MCP server port (default: 24312) npm start -- config set --port 8080 # Show current configuration npm start -- config show # Reset configuration to defaults npm start -- config reset

When connecting to the MCP server, you need to include your API key in the request headers:

All endpoints (except/health) require authentication.

- --detail,-d: Set the level of detail for summaries. Options are 'low', 'medium', or 'high'. Default is 'medium'.
- --max-length,-l: Maximum length of each summary in characters. Default is 500.

- API keys are stored securely and prioritize environment variables over configuration files
- Keys are validated for proper format before use
- API keys are never exposed in logs or error messages
- Configuration file doesn't store API keys when they're provided via environment variables

- All MCP server endpoints (except health check) require authentication via API key
- Authentication uses thex-api-keyheader for secure transmission
- Failed authentication attempts are logged for security monitoring

- Built-in rate limiting prevents abuse of the service
- Default: 60 requests per minute per IP address
- Configurable through server settings

- Structured error system with categorization
- Sensitive information is never exposed in error messages
- Proper error codes are returned for different failure scenarios

- Automatic retry with exponential backoff for transient failures
- Configurable retry settings including max retries, delays, and backoff factor
- Jitter added to retry timing to prevent thundering herd problems
- Request ID tracking for tracing issues across the system

- TypeScript (.ts, .tsx)
- JavaScript (.js, .jsx)
- Python (.py)
- Java (.java)
- C++ (.cpp)
- C (.c)
- Go (.go)
- Ruby (.rb)
- PHP (.php)
- C# (.cs)
- Swift (.swift)
- Rust (.rs)
- Kotlin (.kt)
- Scala (.scala)
- Vue (.vue)
- HTML (.html)
- CSS (.css, .scss, .less)
- The tool scans the specified directory recursively, respecting.gitignorerules.
- It filters files based on supported extensions.
- For each supported file, it reads the content and determines the programming language.
- It sends the code to Gemini Flash 2.0 with a prompt to summarize, including detail level and length constraints.
- The summaries are collected and written to the specified output file.

The output file will have the following format:

relative/path/to/file Summary text here relative/path/to/next/file Next summary text here

- index.ts: Main CLI implementation
- src/: Source code directory

- summarizer/: Core summarization functionality
- mcp/: MCP server implementation
- config/: Configuration management

The following environment variables can be used to configure the application:

# Run all tests npm test # Run tests with coverage npm test -- --coverage # Test MCP server setup npm run test:setup

- Support for more file types
- Support for alternative LLM providers
- Integration with an Electron app for a GUI interface
- Enhanced MCP server capabilities
- Advanced token usage tracking
- OpenTelemetry-based observability
- Enhanced audit logging capabilities
- Secret scanning integration

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Integrates with Google AI Studio/Gemini API for PDF to Markdown conversion and content generation.

Generate high-quality images from text prompts using Google's Gemini model.

Generate high-quality images using Google's Imagen 3.0 model via the Gemini API.

A server for integrating with the Google Gemini CLI to perform AI-powered tasks.

Generate images using Google's Imagen 3.0 model via the Gemini API.

AI image generation and editing MCP server. Text-to-image, text-based editing with iterative refinement. Multi-provider (Gemini + OpenAI).

A starter project with setup instructions and example MCP servers, including a weather server.

An AI-powered coding assistant that combines insights from Gemini, Stack Overflow, and Perplexity AI to help solve programming problems.

next-devtools-mcp is a MCP server that provides Next.js development tools and utilities for AI coding assistants like Claude and Cursor.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.