Chromium Commits Query Tool
Queries commit information from the Chromium repository via the Chromium Gitiles API, retrieving commit hashes, authors, timestamps, messages, and modified files for any file in the Chromium source code.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Chromium Commits Query Toolget latest commit for chrome/browser/ui/browser.cc"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Chromium Commits Query Tool
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
Using UV (Recommended)
git clone https://github.com/hydavinci/chromium-commits.git
cd chromium-commits
uv syncUsing pip
git clone https://github.com/hydavinci/chromium-commits.git
cd chromium-commits
pip install -r requirements.txtUsing Docker
docker build -t chromium-commits .
docker run --rm chromium-commitsUsage
π₯οΈ 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.pyThe 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"Blink Rendering Engine
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
Fork the repository
Create a feature branch:
git checkout -b feature-nameMake your changes and add tests
Commit your changes:
git commit -am 'Add some feature'Push to the branch:
git push origin feature-nameSubmit a pull request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Links
Available Tools
1 toolget_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
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Access the GitHub API, enabling file operations, repository management, search functionality, andβ¦
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Ask a codebase what calls what: search, blast radius, paths between symbols, and diffs.
deps.dev β Google's package metadata + dependency graph API
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceEnables 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.10232619
- AlicenseBqualityCmaintenanceEnables 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.41725MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseNot gradedqualityBmaintenanceEnables 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.112Apache 2.0
Appeared in Searches
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/hydavinci/chromium-commits'
If you have feedback or need assistance with the MCP directory API, please join our Discord server