The Standard Library for the Agentic Web — verified MCP tools for any AI Agent.
Project description
ProtocolBox 📦
The Standard Library for the Agentic Web.
https://protocolbox.in
ProtocolBox is a collection of high-reliability MCP (Model Context Protocol) tools designed for AI Agents. It provides verified, token-efficient utilities that work out-of-the-box with Claude, Gemini, and other MCP-compliant agents.
🚀 Installation
pip install protocolbox
Initialize the configuration for your agent:
protocolbox init
🛠️ Tools
ProtocolBox currently exports 8 tools optimized for agent workflows:
| Tool | Signature | Description |
|---|---|---|
| Scrape | scrape(url: str) -> str |
Fetches a webpage and converts it to clean, token-saving Markdown. Removes ads, scripts, and clutter automatically. |
| Heal JSON | heal_json(json_str: str) -> dict |
Repairs malformed JSON strings often produced by LLMs (trailing commas, missing quotes, etc.) into valid Python dictionaries. |
| Web Search | web_search(query: str, max_results: int) -> str |
Privacy-focused web search using DuckDuckGo. Returns formatted Markdown results. |
| Safe Math | safe_math(expression: str) -> str |
Securely evaluates mathematical expressions without eval(). Supports arithmetic and common math functions. |
| Get Time | get_time(timezone: str) -> str |
Returns the current real-world time in any timezone (ISO 8601 format). |
| Get Transcript | get_transcript(video_url: str) -> str |
Fetches the English transcript of a YouTube video as clean text. |
| Remember | remember(key: str, value: str) -> str |
Stores a key-value pair in persistent local memory. |
| Recall | recall(key: str) -> str |
Retrieves a value from persistent local memory by key. |
⚡ Usage
Start the MCP server to expose these tools to your agent:
protocolbox start
Or using uv:
uv run protocolbox start
📦 Project Structure
protocolbox/
├── src/protocolbox/ # Core package
│ ├── server.py # FastMCP server
│ ├── cli.py # CLI entry point
│ └── tools/ # Tool implementations
│ ├── scraper.py # scrape()
│ ├── json_healer.py# heal_json()
│ ├── search.py # web_search()
│ ├── math_utils.py # safe_math()
│ ├── time_utils.py # get_time()
│ ├── youtube.py # get_transcript()
│ └── memory.py # remember() + recall()
├── tests/ # 280+ edge-case tests
├── docs/ # Documentation site
└── pyproject.toml # Project config
👨💻 Development
We recommend uv for a fast, reliable dev environment.
# Clone and setup
git clone https://github.com/ianuragbhatt/protocolbox.git
cd protocolbox
uv pip install -e ".[dev]"
# Run tests (100% pass rate required)
pytest tests/ -v
# Linting
ruff check .
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for details on how to add new tools.
Maintainer: Anurag Bhatt (@ianuragbhatt)
License
MIT © 2026 ProtocolBox.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file protocolbox-0.1.4.tar.gz.
File metadata
- Download URL: protocolbox-0.1.4.tar.gz
- Upload date:
- Size: 103.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72dc72e578e16a1854325df78f7f779900a8aaa00a036cdb6b8240f433280162
|
|
| MD5 |
f8003c94d28accdf2516fcec9441b51d
|
|
| BLAKE2b-256 |
4af8ddc31d16b52ac531175bfe330f8bbed26eeb65d9d989a721bdf8f5114d97
|
Provenance
The following attestation bundles were made for protocolbox-0.1.4.tar.gz:
Publisher:
publish.yml on ianuragbhatt/protocolbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
protocolbox-0.1.4.tar.gz -
Subject digest:
72dc72e578e16a1854325df78f7f779900a8aaa00a036cdb6b8240f433280162 - Sigstore transparency entry: 953582768
- Sigstore integration time:
-
Permalink:
ianuragbhatt/protocolbox@21cfec26ffc14c4a22cf4b67ff8161ce6bb79356 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/ianuragbhatt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@21cfec26ffc14c4a22cf4b67ff8161ce6bb79356 -
Trigger Event:
release
-
Statement type:
File details
Details for the file protocolbox-0.1.4-py3-none-any.whl.
File metadata
- Download URL: protocolbox-0.1.4-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09be38bd785479045082cf94b17dab62dfcd5e794d703df347053bdaa93b1600
|
|
| MD5 |
1342627d008a154379f85c5a110820ff
|
|
| BLAKE2b-256 |
836d22e6a53745a0af08397ee312a9543c767b833b6ce1a7d1af4e02f62ce858
|
Provenance
The following attestation bundles were made for protocolbox-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on ianuragbhatt/protocolbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
protocolbox-0.1.4-py3-none-any.whl -
Subject digest:
09be38bd785479045082cf94b17dab62dfcd5e794d703df347053bdaa93b1600 - Sigstore transparency entry: 953582771
- Sigstore integration time:
-
Permalink:
ianuragbhatt/protocolbox@21cfec26ffc14c4a22cf4b67ff8161ce6bb79356 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/ianuragbhatt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@21cfec26ffc14c4a22cf4b67ff8161ce6bb79356 -
Trigger Event:
release
-
Statement type: