oh-my-mcp
# oh-my-mcp
English | [δΈζ](README.zh.md)
A powerful Model Context Protocol (MCP) server with **154 practical tools**
across 11 categories, built using [FastMCP](https://github.com/jlowin/fastmcp).
[](https://github.com/quyansiyuanwang/oh-my-mcp/actions/workflows/build-release.yml)
[](https://github.com/quyansiyuanwang/oh-my-mcp/actions/workflows/tests.yml)
[](https://github.com/quyansiyuanwang/oh-my-mcp/actions/workflows/lint.yml)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/quyansiyuanwang/oh-my-mcp)
## π Features
oh-my-mcp provides tools for:
<!-- DOCGEN:readme-features:start -->
- **π Browser Automation** (33 tools): Selenium-based browser automation: navigation, interaction, screenshots, JS execution, console logs, cookies, network monitoring, form filling, multi-tab management
- **π¦ Compression** (5 tools): ZIP/TAR compression and extraction with security features
- **π₯οΈ Computer Use** (26 tools): AI desktop control: screen capture (multi-monitor, base64/file), mouse control (move/click/drag/scroll), keyboard input (typing/keys/hotkeys), clipboard access, window management, safety failsafe configuration
- **π Data Processing** (15 tools): JSON, CSV, XML, YAML, TOML parsing and manipulation
- **β‘ Command Execution** (5 tools): Secure allowlist-based command execution: run whitelisted commands with argument sanitization, timeout protection, output size limits and audit logging; manage the persistent command allowlist
- **π File System** (16 tools): Read, write, search files and directories, file comparison
- **π€ Subagent AI Orchestration** (6 tools): Delegate subtasks to external AI models with parallel execution and cost tracking
- **π» System** (11 tools): System info, CPU/memory monitoring, environment variables
- **π Text Processing** (9 tools): Regex, encoding, email/URL extraction, text similarity
- **π οΈ Utilities** (10 tools): UUID, hashing, date/time operations, math, password generation
- **π Web & Network** (18 tools): Web search, page fetching, HTML parsing, downloads, HTTP API client, DNS lookup
<!-- DOCGEN:readme-features:end -->
## π Documentation
The full index lives in **[docs/README.md](docs/README.md)** β every topic is
available in English (`X.md`, default) and Chinese (`X.zh.md`). Highlights:
| Document | |
|---|---|
| Installation | [INSTALLATION.md](docs/INSTALLATION.md) / [δΈζ](docs/INSTALLATION.zh.md) |
| Tool Reference (all 146 tools) | [TOOL_REFERENCE.md](docs/TOOL_REFERENCE.md) / [δΈζ](docs/TOOL_REFERENCE.zh.md) |
| Computer Use Guide | [COMPUTER_USE_GUIDE.md](docs/COMPUTER_USE_GUIDE.md) / [δΈζ](docs/COMPUTER_USE_GUIDE.zh.md) |
| Setup Guide (Claude Desktop) | [SETUP_GUIDE.md](docs/SETUP_GUIDE.md) / [δΈζ](docs/SETUP_GUIDE.zh.md) |
| Command Execution | [CONFIGURATION.md](docs/CONFIGURATION.md) Β· see Tool Reference |
| Build Guide | [BUILD.md](docs/BUILD.md) / [δΈζ](docs/BUILD.zh.md) |
| Architecture | [ARCHITECTURE.md](docs/ARCHITECTURE.md) / [δΈζ](docs/ARCHITECTURE.zh.md) |
| Subagent Guide | [SUBAGENT_GUIDE.md](docs/SUBAGENT_GUIDE.md) / [δΈζ](docs/SUBAGENT_GUIDE.zh.md) |
| Contributing | [CONTRIBUTING.md](docs/CONTRIBUTING.md) / [δΈζ](docs/CONTRIBUTING.zh.md) |
| Changelog | [CHANGELOG.md](docs/CHANGELOG.md) / [δΈζ](docs/CHANGELOG.zh.md) |
Tool counts and descriptions in the docs are generated from code β see
[Documentation Generation](#documentation-generation).
## π¦ Installation
```bash
git clone https://github.com/quyansiyuanwang/oh-my-mcp.git
cd oh-my-mcp
pip install -e . # or: uv sync --all-extras
```
Configure Claude Desktop:
```bash
python -m mcp_server.cli.config --claude
```
Start the server:
```bash
python -m mcp_server.main
```
Details: [Installation Guide](docs/INSTALLATION.md) and
[Setup Guide](docs/SETUP_GUIDE.md).
## π§ Configuration
### Logging
Logs are configured in `mcp_server/utils.py` β level, destinations and format.
### Security Features
- **Path validation**: prevents path traversal attacks
- **Safe evaluation**: math expressions only allow whitelisted operations
- **Masked values**: sensitive environment variables are masked
- **Confirmation required**: file deletion requires `confirm=True`
- **Allowlisted execution**: commands only run after explicit trust
- **Retry logic**: network operations retry up to 3 times
## π‘οΈ Error Handling
All tools return JSON with descriptive messages instead of raising:
- **ValidationError** β invalid input parameters
- **NetworkError** β network request failures
- **FileOperationError** β file system errors
- **DataProcessingError** β data parsing/conversion errors
## π Development
### Project Structure
```
oh-my-mcp/
βββ pyproject.toml # Dependencies & tool config
βββ configure.py # Interactive setup wizard
βββ src/
βββ mcp_server/
βββ main.py # Server entry point
βββ utils.py # Infrastructure & utilities
βββ command_executor.py # Secure command execution
βββ cli/config.py # Configuration generator
βββ tools/ # Tool plugins (11 categories, auto-discovered)
```
Full layout: [PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md).
### Adding New Tools
```python
from mcp_server.tools.registry import tool_handler
@tool_handler
def your_tool(param: str) -> str:
"""Tool description.
Args:
param: Parameter description
Returns:
Return value description
"""
...
```
### Documentation Generation
Tool counts and descriptions in the docs are **generated from code** (AST
analysis of `@tool_handler` docstrings + each plugin's `config.yaml`). After
adding, removing, or renaming tools run:
```bash
python scripts/docs/generate_docs.py --write
```
CI verifies docs are fresh with `--check` and fails if they are out of date.
Generated fragments live between `<!-- DOCGEN:...:start/end -->` markers; do
not edit inside them.
## π€ Contributing
See [CONTRIBUTING.md](docs/CONTRIBUTING.md). Client configuration details:
[SETUP_GUIDE.md](docs/SETUP_GUIDE.md).
## π License
This project is provided as-is for educational and practical use.
## π Links
- [FastMCP Documentation](https://github.com/jlowin/fastmcp)
- [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
---
Enjoy oh-my-mcp! π
TDQS
Scored across 116 tools
Most tools have distinct purposes, especially in the browser and subagent groups. However, there is some overlap between similar tools like fetch_webpage/fetch_webpage_text, parse_csv/csv_to_json, and multiple search tools (web_search, web_search_advanced, web_search_news). Descriptions help but some boundaries are blurry.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., browser_navigate, parse_csv, get_system_info). No mixed conventions or irregular naming, making the set predictable for an agent.
With 116 tools, the server is extremely large for an MCP server. While it aims to be a comprehensive toolkit, the sheer number likely overwhelms agents and increases selection errors. A more focused scope or modularization would improve coherence.
The tool set covers a wide range of domains (browser, file, text, system, web search, subagent) with good depth. Minor gaps exist, such as lack of in-place file editing or image processing, but overall the surface is quite complete for its stated purpose.