Skip to main content
Glama
hydavinci

Chromium Commits Query Tool

by hydavinci

Chromium Commits Query Tool

Python License MCP

A comprehensive tool to query the latest commit information for files in the Chromium repository. Supports CLI usage, Python API integration, and Model Context Protocol (MCP) server functionality.

Features

  • πŸ” Query Latest Commits: Get detailed information about the most recent commit that modified any file in the Chromium repository

  • πŸ“Š Comprehensive Details: Retrieve commit hash, author, timestamp, message, and complete list of modified files

  • πŸ”§ Multiple Interfaces: Use via command line, Python API, or as an MCP server

  • πŸ“ Batch Processing: Process multiple files at once with batch operations

  • 🐳 Docker Support: Easy deployment with containerization

  • 🌐 MCP Integration: Seamless integration with AI agents and tools

Related MCP server: Android Code Search MCP Server

Installation

git clone https://github.com/hydavinci/chromium-commits.git
cd chromium-commits
uv sync

Using pip

git clone https://github.com/hydavinci/chromium-commits.git
cd chromium-commits
pip install -r requirements.txt

Using Docker

docker build -t chromium-commits .
docker run --rm chromium-commits

Usage

πŸ–₯️ Command Line Interface (CLI)

Navigate to the src directory and use the following commands:

cd src

# Basic usage - get latest commit for a single file
python get_chromium_commits.py "chrome/browser/ui/browser.cc"

# Save output to file
python get_chromium_commits.py -o result.txt "components/sync/service/data_type_manager.cc"

# Show detailed diff information
python get_chromium_commits.py --show-diff "chrome/browser/ui/browser.cc"

# Batch processing multiple files
python batch_get_commits.py files.txt

🐍 Python API

from src.get_chromium_commits import ChromiumCommitFetcher

# Initialize the fetcher
fetcher = ChromiumCommitFetcher()

# Get basic commit info
basic_info = fetcher.get_file_latest_commit("chrome/browser/ui/browser.cc")

# Get detailed commit info with all modified files
detailed_info = fetcher.get_file_commit_info(
    "chrome/browser/ui/browser.cc", 
    detailed=True, 
    show_diff=True
)

print(detailed_info)

πŸ”— MCP Server

Start the MCP server for integration with AI agents:

cd src
python server.py

The server provides the get_chromium_latest_commit tool that can be used by MCP-compatible clients.

πŸ“– Example Usage

See src/example_usage.py for a comprehensive demonstration of the Python API:

cd src
python example_usage.py

πŸ“‹ Example Output

=============================================================
Latest Commit Information for: chrome/browser/ui/browser.cc
=============================================================

Commit Hash: a1b2c3d4e5f6789abcdef123456789abcdef1234
Author: developer@chromium.org
Author Email: developer@chromium.org
Commit Time: 2024-12-20 15:30:45 UTC
Commit Message: [Chrome] Improve browser window management and memory optimization

Files modified in this commit (Total: 15):
[MODIFIED] chrome/browser/ui/browser.cc
[MODIFIED] chrome/browser/ui/browser.h
[MODIFIED] chrome/browser/ui/views/frame/browser_view.cc
[MODIFIED] chrome/browser/memory/tab_manager.cc
[ADDED] chrome/browser/ui/browser_memory_coordinator.cc
[ADDED] chrome/browser/ui/browser_memory_coordinator.h
[MODIFIED] chrome/test/base/browser_test_base.cc
...

Diff Details:
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -123,6 +123,10 @@ void Browser::CreateTabContents() {
   web_contents->SetDelegate(this);
+  
+  // Initialize memory coordinator for better resource management
+  memory_coordinator_ = std::make_unique<BrowserMemoryCoordinator>(this);
+  memory_coordinator_->Initialize();
 }

πŸ—‚οΈ Common File Paths

Here are some frequently queried file paths in the Chromium repository:

Core Chrome Browser

cd src
python get_chromium_commits.py "chrome/browser/ui/browser.cc"
python get_chromium_commits.py "chrome/browser/chrome_browser_main.cc"
python get_chromium_commits.py "chrome/browser/profiles/profile_manager.cc"
python get_chromium_commits.py "third_party/blink/renderer/core/dom/document.cc"
python get_chromium_commits.py "third_party/blink/renderer/core/html/parser/html_parser.cc"
python get_chromium_commits.py "third_party/blink/renderer/core/css/css_parser.cc"

Component Libraries

python get_chromium_commits.py "components/sync/service/data_type_manager.cc"
python get_chromium_commits.py "components/autofill/core/browser/autofill_manager.cc"
python get_chromium_commits.py "components/password_manager/core/browser/password_manager.cc"

Build and Configuration

python get_chromium_commits.py "BUILD.gn"
python get_chromium_commits.py "DEPS"
python get_chromium_commits.py ".gn"

Content/Web Platform

python get_chromium_commits.py "content/browser/renderer_host/render_process_host_impl.cc"
python get_chromium_commits.py "content/renderer/render_frame_impl.cc"

πŸ“ Project Structure

chromium-commits/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ get_chromium_commits.py    # Main CLI tool and ChromiumCommitFetcher class
β”‚   β”œβ”€β”€ batch_get_commits.py       # Batch processing utility
β”‚   β”œβ”€β”€ example_usage.py           # Usage examples and demonstrations
β”‚   └── server.py                  # MCP server implementation
β”œβ”€β”€ pyproject.toml                 # Project configuration and dependencies
β”œβ”€β”€ uv.lock                        # Dependency lock file
β”œβ”€β”€ Dockerfile                     # Docker container configuration
β”œβ”€β”€ smithery.yaml                  # Smithery MCP server configuration
β”œβ”€β”€ LICENSE                        # MIT license
└── README.md                      # This documentation

βš™οΈ Requirements

  • Python: 3.10 or higher

  • Dependencies:

    • requests>=2.31.0 (HTTP requests to Chromium Gitiles API)

    • mcp>=1.0.0 (Model Context Protocol server functionality)

  • Network: Internet connection to access Chromium Gitiles API

πŸš€ API Reference

ChromiumCommitFetcher Class

Methods

  • get_file_latest_commit(file_path: str) -> Optional[Dict]

    • Returns basic commit information for the latest change to the specified file

  • get_commit_details(commit_hash: str) -> Optional[Dict]

    • Returns detailed information about a specific commit including all modified files

  • get_file_commit_info(file_path: str, detailed: bool = False, show_diff: bool = False) -> Optional[str]

    • Returns formatted commit information with optional details and diff

πŸ”§ Configuration

The tool uses the Chromium Gitiles API and requires no authentication. All requests are made to:

https://chromium.googlesource.com/chromium/src

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Make your changes and add tests

  4. Commit your changes: git commit -am 'Add some feature'

  5. Push to the branch: git push origin feature-name

  6. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

1 tool
get_chromium_latest_commitA
MCP handler to get the latest commit information for a specified file in Chromium repository

Args:
    file_path (str): Relative path of the file in Chromium repository (e.g., "components/sync/service/data_type_manager.cc")

Returns:
    str: Formatted commit information including hash, author, message, modified files list, and diff details
ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format but doesn't address important behavioral aspects like rate limits, authentication requirements, error conditions, or whether this queries a live repository versus cached data. The description provides basic output format but misses key operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. It begins with a clear purpose statement, then provides well-organized sections for Args and Returns with specific details. Every sentence adds value, and there's no redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers the basic purpose and parameter meaning adequately. However, it lacks important context about the tool's behavior, error handling, and operational constraints. The return format is described but not comprehensively enough given the absence of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides excellent parameter semantics despite 0% schema description coverage. It clearly explains what 'file_path' represents ('Relative path of the file in Chromium repository'), provides a concrete example, and specifies the format expectation. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('get the latest commit information') and target resource ('for a specified file in Chromium repository'). It distinguishes the tool's purpose with precision, mentioning both what it retrieves (commit information) and the specific context (Chromium repository).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing latest commit details for a Chromium file, but provides no explicit guidance on when to use this tool versus alternatives. With no sibling tools mentioned, there's no differentiation needed, but it lacks any context about prerequisites, limitations, or when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined as retrieving the latest commit information for a specified file in the Chromium repository, making it distinct by default.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name 'get_chromium_latest_commit' follows a clear verb_noun pattern, which would be consistent if more tools were added, but as a standalone, it sets a good precedent.

Tool Count2/5

A single tool is too few for a server named 'Chromium Commits Query Tool', which suggests a broader scope for querying commits. This minimal set limits functionality, as it only handles the latest commit for a file, lacking operations like searching commits, getting commit history, or querying by other criteria.

Completeness2/5

The tool surface is severely incomplete for the implied domain of Chromium commit queries. It only provides the latest commit for a file, missing essential operations such as retrieving commit details by hash, listing commits over time, or filtering by author or date, which are typical for commit query tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables AI assistants to search and explore Chromium and PDFium source code, check Gerrit code reviews with test results and bot errors, search issues, and analyze commit history through Google's official APIs.
    10
    23
    26
    19
  • A
    license
    B
    quality
    C
    maintenance
    Enables searching and browsing Android source code across projects like Android, AndroidX, and Android Studio via cs.android.com. It provides tools for regex-based code searches, full file content retrieval, and symbol autocomplete suggestions.
    4
    17
    25
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying git commit history to analyze when and why code changes happened, providing authorship context and diffs for specific modules.
    Creative Commons Zero v1.0 Universal
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables searching and reading Android Open Source Project (AOSP) source code via cs.android.com, with support for regex search, file content retrieval, and symbol suggestions.
    11
    2
    Apache 2.0

Latest Blog Posts

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/hydavinci/chromium-commits'

If you have feedback or need assistance with the MCP directory API, please join our Discord server