TODO Scanner
STREAMABLE HTTPEfficiently scan Git repositories for TODO comments to track pending tasks.
Efficiently scan Git repositories for TODO comments to track pending tasks.
A straightforward and efficient tool designed to meticulously scan your Git repositories for TODO comments, bringing them to your attention so nothing gets overlooked.
The code is open. The project evolves. Get involved.

In the fast-paced world of software development, it's easy for small tasks and reminders, often marked as TODOs within the codebase, to get lost or forgotten. TODO Scanner addresses this by:
TODO:, # TODO, // TODO) in comments.Developers often leave notes for future improvements, bug fixes, or pending tasks directly in the code. While convenient, these TODOs can accumulate and become difficult to track across a growing codebase. This tool brings visibility to these hidden tasks, helping teams:
.gitignore rules to avoid scanning irrelevant files.repositories directory.Ensure you have Python 3.x and Git installed.
git clone https://github.com/Startr/WEB-MCPO-Repo_scanner.git # Or your fork cd repo_scanner pip install -r requirements.txt # Assuming requirements.txt is present or use Pipfile # If using Pipfile: # pip install pipenv # pipenv install # pipenv shell
(Note: The original README mentioned requirements.txt. If you are primarily using Pipfile, you might want to adjust these instructions or ensure requirements.txt is kept up-to-date via pipenv lock -r > requirements.txt)
Start the Flask development server:
python app.py
Or, if you used pipenv:
pipenv run python app.py
Navigate to http://localhost:5000 (or the port specified) in your web browser.
To temporarily share your local scanner instance:
./run_with_cloudflared.sh
This script will start the application and create a Cloudflare tunnel, providing a public URL. The tunnel closes when the script is stopped.
The scanner provides a RESTful API. Key endpoints include:
curl -X POST http://localhost:5000/api/mpco/scan_repository \ -H "Content-Type: application/json" \ -d '{"repo_url": "https://github.com/username/repository.git"}'
curl -X GET http://localhost:5000/api/mpco/list_repositories
curl -X POST http://localhost:5000/api/mpco/pull_repository \ -H "Content-Type: application/json" \ -d '{"repo_name": "repository_name_from_list"}'
{ "repo_url": "https://github.com/username/repository.git", "repo_name": "repository", "todo_count": 42, "todos": [ { "file_path": "src/main.py", "line_num": 24, "todo_text": "# TODO: Fix this hack when we have time", "next_line": "def temporary_solution():" } // ... more TODOs ], "web_url": "http://localhost:5000/scan/https://github.com/username/repository.git" }
This tool adheres to the Model Context Protocol, making it discoverable and usable by AI agents and other MCP-compatible services.
GET /api/mpco/manifest
GET /api/mpco/openapi.json
This project, while dedicated to finding TODOs, has its own list of desired enhancements and features. Contributions are welcome!
Copyright © 2025 Startr LLC.
Released under the GNU Affero General Public License v3.0 (AGPL-3.0).
Use it. Share it. Make it better. But keep it open. The full license text is available in the LICENSE file.
Contributions are highly encouraged! If you have an idea for improvement or a bug fix, please:
Let's work together to make this tool even better and help keep our codebases clean and manageable!