onetool-mcp 1.0.0b1__py3-none-any.whl → 1.0.0rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- onetool/cli.py +63 -4
- onetool_mcp-1.0.0rc2.dist-info/METADATA +266 -0
- onetool_mcp-1.0.0rc2.dist-info/RECORD +129 -0
- {onetool_mcp-1.0.0b1.dist-info → onetool_mcp-1.0.0rc2.dist-info}/licenses/LICENSE.txt +1 -1
- {onetool_mcp-1.0.0b1.dist-info → onetool_mcp-1.0.0rc2.dist-info}/licenses/NOTICE.txt +54 -64
- ot/__main__.py +6 -6
- ot/config/__init__.py +48 -46
- ot/config/global_templates/__init__.py +2 -2
- ot/config/{defaults → global_templates}/diagram-templates/api-flow.mmd +33 -33
- ot/config/{defaults → global_templates}/diagram-templates/c4-context.puml +30 -30
- ot/config/{defaults → global_templates}/diagram-templates/class-diagram.mmd +87 -87
- ot/config/{defaults → global_templates}/diagram-templates/feature-mindmap.mmd +70 -70
- ot/config/{defaults → global_templates}/diagram-templates/microservices.d2 +81 -81
- ot/config/{defaults → global_templates}/diagram-templates/project-gantt.mmd +37 -37
- ot/config/{defaults → global_templates}/diagram-templates/state-machine.mmd +42 -42
- ot/config/global_templates/diagram.yaml +167 -0
- ot/config/global_templates/onetool.yaml +3 -1
- ot/config/{defaults → global_templates}/prompts.yaml +102 -97
- ot/config/global_templates/security.yaml +31 -0
- ot/config/global_templates/servers.yaml +93 -12
- ot/config/global_templates/snippets.yaml +5 -26
- ot/config/{defaults → global_templates}/tool_templates/__init__.py +7 -7
- ot/config/loader.py +221 -105
- ot/config/mcp.py +5 -1
- ot/config/secrets.py +192 -190
- ot/decorators.py +116 -116
- ot/executor/__init__.py +35 -35
- ot/executor/base.py +16 -16
- ot/executor/fence_processor.py +83 -83
- ot/executor/linter.py +142 -142
- ot/executor/pep723.py +288 -288
- ot/executor/runner.py +20 -6
- ot/executor/simple.py +163 -163
- ot/executor/validator.py +603 -164
- ot/http_client.py +145 -145
- ot/logging/__init__.py +37 -37
- ot/logging/entry.py +213 -213
- ot/logging/format.py +191 -188
- ot/logging/span.py +349 -349
- ot/meta.py +236 -14
- ot/paths.py +32 -49
- ot/prompts.py +218 -218
- ot/proxy/manager.py +14 -2
- ot/registry/__init__.py +189 -189
- ot/registry/parser.py +269 -269
- ot/server.py +330 -315
- ot/shortcuts/__init__.py +15 -15
- ot/shortcuts/aliases.py +87 -87
- ot/shortcuts/snippets.py +258 -258
- ot/stats/__init__.py +35 -35
- ot/stats/html.py +2 -2
- ot/stats/reader.py +354 -354
- ot/stats/timing.py +57 -57
- ot/support.py +63 -63
- ot/tools.py +1 -1
- ot/utils/batch.py +161 -161
- ot/utils/cache.py +120 -120
- ot/utils/exceptions.py +23 -23
- ot/utils/factory.py +178 -179
- ot/utils/format.py +65 -65
- ot/utils/http.py +202 -202
- ot/utils/platform.py +45 -45
- ot/utils/truncate.py +69 -69
- ot_tools/__init__.py +4 -4
- ot_tools/_convert/__init__.py +12 -12
- ot_tools/_convert/pdf.py +254 -254
- ot_tools/diagram.yaml +167 -167
- ot_tools/scaffold.py +2 -2
- ot_tools/transform.py +124 -19
- ot_tools/web_fetch.py +94 -43
- onetool_mcp-1.0.0b1.dist-info/METADATA +0 -163
- onetool_mcp-1.0.0b1.dist-info/RECORD +0 -132
- ot/config/defaults/bench.yaml +0 -4
- ot/config/defaults/onetool.yaml +0 -25
- ot/config/defaults/servers.yaml +0 -7
- ot/config/defaults/snippets.yaml +0 -4
- ot_tools/firecrawl.py +0 -732
- {onetool_mcp-1.0.0b1.dist-info → onetool_mcp-1.0.0rc2.dist-info}/WHEEL +0 -0
- {onetool_mcp-1.0.0b1.dist-info → onetool_mcp-1.0.0rc2.dist-info}/entry_points.txt +0 -0
- /ot/config/{defaults → global_templates}/tool_templates/extension.py +0 -0
- /ot/config/{defaults → global_templates}/tool_templates/isolated.py +0 -0
onetool/cli.py
CHANGED
|
@@ -5,10 +5,70 @@ from __future__ import annotations
|
|
|
5
5
|
import atexit
|
|
6
6
|
import os
|
|
7
7
|
import signal
|
|
8
|
+
import sys
|
|
8
9
|
from pathlib import Path
|
|
10
|
+
from typing import TYPE_CHECKING
|
|
9
11
|
|
|
10
12
|
import typer
|
|
11
13
|
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from rich.console import Console
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _is_initialized() -> bool:
|
|
19
|
+
"""Check if OneTool is initialized (global config exists).
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
True if ~/.onetool/config/onetool.yaml exists
|
|
23
|
+
"""
|
|
24
|
+
from ot.paths import CONFIG_SUBDIR, get_global_dir
|
|
25
|
+
|
|
26
|
+
global_config = get_global_dir() / CONFIG_SUBDIR / "onetool.yaml"
|
|
27
|
+
return global_config.exists()
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _check_first_run(console: Console) -> None:
|
|
31
|
+
"""Check for first-run state and prompt for initialization.
|
|
32
|
+
|
|
33
|
+
If OneTool is not initialized:
|
|
34
|
+
- Interactive (TTY): Prompt user to initialize, then exit
|
|
35
|
+
- Non-interactive: Print error and exit
|
|
36
|
+
|
|
37
|
+
After first-run init, exits so user can review config before starting server.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
console: Rich console for output
|
|
41
|
+
|
|
42
|
+
Raises:
|
|
43
|
+
typer.Exit: Always exits if not initialized (after init or on decline)
|
|
44
|
+
"""
|
|
45
|
+
if _is_initialized():
|
|
46
|
+
return
|
|
47
|
+
|
|
48
|
+
# Check if stdin is a TTY (interactive mode)
|
|
49
|
+
is_interactive = sys.stdin.isatty()
|
|
50
|
+
|
|
51
|
+
if not is_interactive:
|
|
52
|
+
console.print("[red]OneTool not initialized.[/red] Run: onetool init")
|
|
53
|
+
raise typer.Exit(1)
|
|
54
|
+
|
|
55
|
+
# Interactive mode - prompt for initialization
|
|
56
|
+
console.print("[yellow]OneTool is not initialized.[/yellow]")
|
|
57
|
+
do_init = typer.confirm("Initialize now?", default=True)
|
|
58
|
+
|
|
59
|
+
if not do_init:
|
|
60
|
+
console.print("Run 'onetool init' when ready.")
|
|
61
|
+
raise typer.Exit(1)
|
|
62
|
+
|
|
63
|
+
# Initialize
|
|
64
|
+
from ot.paths import ensure_global_dir
|
|
65
|
+
|
|
66
|
+
ensure_global_dir(quiet=False, force=False)
|
|
67
|
+
|
|
68
|
+
# Exit after first-run init so user can configure their MCP client
|
|
69
|
+
console.print("\n[green]OneTool initialized. Configure your MCP client to run OneTool.[/green]")
|
|
70
|
+
raise typer.Exit(0)
|
|
71
|
+
|
|
12
72
|
|
|
13
73
|
def _suppress_shutdown_warnings() -> None:
|
|
14
74
|
"""Suppress pymupdf SWIG warnings at exit.
|
|
@@ -355,10 +415,9 @@ def serve(
|
|
|
355
415
|
onetool
|
|
356
416
|
onetool --config config/onetool.yaml
|
|
357
417
|
"""
|
|
358
|
-
#
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
ensure_global_dir(quiet=True)
|
|
418
|
+
# Check for first-run initialization (skip for 'init' subcommand)
|
|
419
|
+
if ctx.invoked_subcommand != "init":
|
|
420
|
+
_check_first_run(console)
|
|
362
421
|
|
|
363
422
|
# Only run if no subcommand was invoked (handles --help automatically)
|
|
364
423
|
if ctx.invoked_subcommand is not None:
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: onetool-mcp
|
|
3
|
+
Version: 1.0.0rc2
|
|
4
|
+
Summary: 🧿 One MCP, unlimited tools.
|
|
5
|
+
Project-URL: Homepage, https://github.com/beycom/onetool
|
|
6
|
+
Project-URL: Repository, https://github.com/beycom/onetool
|
|
7
|
+
Project-URL: Documentation, https://onetool.beycom.online
|
|
8
|
+
Project-URL: Issues, https://github.com/beycom/onetool/issues
|
|
9
|
+
Author-email: Gavin Las <beycom99@gmail.com>
|
|
10
|
+
License: GPL-3.0
|
|
11
|
+
License-File: LICENSE.txt
|
|
12
|
+
License-File: NOTICE.txt
|
|
13
|
+
Keywords: agents,code-execution,context-rot,llm,mcp,mcp-server,model-context-protocol,token-efficiency,tools
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Classifier: Typing :: Typed
|
|
22
|
+
Requires-Python: >=3.12
|
|
23
|
+
Requires-Dist: aiofiles>=25.1.0
|
|
24
|
+
Requires-Dist: docstring-parser>=0.17
|
|
25
|
+
Requires-Dist: duckdb>=1.4.3
|
|
26
|
+
Requires-Dist: fastmcp>=2.14.4
|
|
27
|
+
Requires-Dist: google-genai>=1.60.0
|
|
28
|
+
Requires-Dist: httpx>=0.28.1
|
|
29
|
+
Requires-Dist: jinja2>=3.1.6
|
|
30
|
+
Requires-Dist: loguru>=0.7.3
|
|
31
|
+
Requires-Dist: mcp>=1.26.0
|
|
32
|
+
Requires-Dist: openai>=2.15.0
|
|
33
|
+
Requires-Dist: openpyxl>=3.1.5
|
|
34
|
+
Requires-Dist: pillow>=12.1.0
|
|
35
|
+
Requires-Dist: pydantic-settings>=2.12.0
|
|
36
|
+
Requires-Dist: pydantic>=2.12.5
|
|
37
|
+
Requires-Dist: pymupdf>=1.26.7
|
|
38
|
+
Requires-Dist: python-docx>=1.2.0
|
|
39
|
+
Requires-Dist: python-pptx>=1.0.2
|
|
40
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
41
|
+
Requires-Dist: questionary>=2.1.1
|
|
42
|
+
Requires-Dist: rich>=14.3.1
|
|
43
|
+
Requires-Dist: sqlalchemy>=2.0.46
|
|
44
|
+
Requires-Dist: trafilatura>=2.0.0
|
|
45
|
+
Requires-Dist: typer>=0.21.1
|
|
46
|
+
Provides-Extra: file
|
|
47
|
+
Requires-Dist: send2trash>=2.1.0; extra == 'file'
|
|
48
|
+
Description-Content-Type: text/markdown
|
|
49
|
+
|
|
50
|
+
<!-- mcp-name: io.github.beycom/onetool-mcp -->
|
|
51
|
+
|
|
52
|
+
<p align="center">
|
|
53
|
+
<img src="https://raw.githubusercontent.com/beycom/onetool-mcp/main/docs/assets/logo.svg" alt="OneTool" width="80">
|
|
54
|
+
</p>
|
|
55
|
+
|
|
56
|
+
<p align="center">
|
|
57
|
+
<strong>🧿 One MCP, unlimited tools</strong>
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
<p align="center">
|
|
61
|
+
<a href="https://pypi.org/project/onetool-mcp/"><img alt="PyPI" src="https://img.shields.io/pypi/v/onetool-mcp"></a>
|
|
62
|
+
<a href="https://github.com/beycom/onetool-mcp/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/license-GPLv3-blue"></a>
|
|
63
|
+
<a href="https://www.python.org/"><img alt="Python" src="https://img.shields.io/badge/python-3.11%2B-blue"></a>
|
|
64
|
+
<a href="https://github.com/beycom/onetool-mcp/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/beycom/onetool-mcp"></a>
|
|
65
|
+
</p>
|
|
66
|
+
|
|
67
|
+
<p align="center">
|
|
68
|
+
Works with Claude Code · Cursor · Windsurf · Any MCP client
|
|
69
|
+
</p>
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## The Problem
|
|
74
|
+
|
|
75
|
+
Each MCP server consumes **3K-30K tokens per request**. Connect 5 servers and you've burned 55K tokens before the conversation starts. Connect 10+ and you're at 100K tokens.
|
|
76
|
+
|
|
77
|
+
The math is brutal: Claude Opus 4.5 at $5/M input tokens, 20 days × 10 conversations × 10 messages × 3K tokens = **$30/month per MCP server** - even if you never use the tools.
|
|
78
|
+
|
|
79
|
+
And then there's **context rot** - your AI literally gets dumber as you add more tools ([Chroma Research, 2025](https://research.trychroma.com/context-rot)).
|
|
80
|
+
|
|
81
|
+
## The Solution
|
|
82
|
+
|
|
83
|
+
OneTool is **one MCP server** that exposes tools as a Python API. Instead of reading tool definitions, your agent writes code:
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
__ot brave.search(query="react docs 2026")
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Configure one MCP server. Use unlimited tools.
|
|
90
|
+
|
|
91
|
+
> "Agents scale better by writing code to call tools instead. This reduces the token usage from 150,000 tokens to 2,000 tokens...a cost saving of 98.7%"
|
|
92
|
+
>
|
|
93
|
+
> — [Anthropic Engineering](https://www.anthropic.com/engineering/code-execution-with-mcp)
|
|
94
|
+
|
|
95
|
+
**96% fewer tokens. 24× lower cost. No context rot.**
|
|
96
|
+
|
|
97
|
+
[📖 Read the full story](https://onetool.beycom.online/about/about-onetool/)
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## See It In Action
|
|
102
|
+
|
|
103
|
+
| Demo | Description |
|
|
104
|
+
| ---- | ----------- |
|
|
105
|
+
| [Compare the Search](https://youtu.be/Dv-_dtHVU_A) | Side-by-side token comparison |
|
|
106
|
+
| [Build a Wikipedia Tool](https://youtu.be/AZz03Yw0s1E) | Create a custom tool in seconds |
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Install
|
|
111
|
+
|
|
112
|
+
Requires [uv](https://docs.astral.sh/uv/):
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
uv tool install onetool-mcp
|
|
116
|
+
onetool init
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Add to Claude Code:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
claude mcp add onetool onetool
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Or manually add to `~/.claude/mcp.json`:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"mcpServers": {
|
|
130
|
+
"onetool": {
|
|
131
|
+
"command": "onetool"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
That's it. All 100+ tools work out of the box.
|
|
138
|
+
|
|
139
|
+
Verify: `onetool init validate`
|
|
140
|
+
|
|
141
|
+
[📖 Full installation guide](https://onetool.beycom.online/learn/installation/)
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Features
|
|
146
|
+
|
|
147
|
+
| Feature | Description |
|
|
148
|
+
| ----------------------- | ------------------------------------------------------ |
|
|
149
|
+
| **96% Token Savings** | ~2K tokens no matter how many tools you add |
|
|
150
|
+
| **100+ Built-in Tools** | Web search, databases, file ops, diagrams, conversions |
|
|
151
|
+
| **Explicit Execution** | See exactly what runs - `__ot brave.search(q="AI")` |
|
|
152
|
+
| **MCP Server Proxy** | Wrap existing MCP servers without the tool tax |
|
|
153
|
+
| **Scaffold Tools** | Build new tools as part of the conversation |
|
|
154
|
+
| **Smart Tools** | Delegate to cheaper LLMs (10× savings) |
|
|
155
|
+
| **Single YAML Config** | Global and project scopes, per-pack settings |
|
|
156
|
+
| **Security Layers** | AST validation, path boundaries, output sanitisation |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Tools
|
|
161
|
+
|
|
162
|
+
15 packs, 100+ tools ready to use:
|
|
163
|
+
|
|
164
|
+
| Pack | Tools | Description |
|
|
165
|
+
| ----------- | --------------------------------------- | ---------------------- |
|
|
166
|
+
| `brave` | `search`, `news` | Web and news search |
|
|
167
|
+
| `code` | `search`, `search_batch`, `status` | Semantic code search |
|
|
168
|
+
| `context7` | `resolve`, `get_docs` | Library documentation |
|
|
169
|
+
| `convert` | `pdf_to_md`, `docx_to_md`, `pptx_to_md` | Document conversion |
|
|
170
|
+
| `db` | `query`, `schema`, `tables` | Database operations |
|
|
171
|
+
| `diagram` | `create` | Mermaid diagrams |
|
|
172
|
+
| `excel` | `read`, `write`, `query` | Excel files |
|
|
173
|
+
| `file` | `read`, `write`, `list`, `search` | File operations |
|
|
174
|
+
| `ground` | `search` | Google Grounding |
|
|
175
|
+
| `llm` | `transform`, `transform_file` | LLM-powered transforms |
|
|
176
|
+
| `ot` | `help`, `tools`, `stats` | Introspection |
|
|
177
|
+
| `package` | `npm`, `pypi`, `cargo` | Package versions |
|
|
178
|
+
| `ripgrep` | `search`, `count` | Fast code search |
|
|
179
|
+
| `scaffold` | `tool` | Generate new tools |
|
|
180
|
+
| `web` | `fetch`, `fetch_batch` | Web fetching |
|
|
181
|
+
|
|
182
|
+
[📖 Complete tools reference](https://onetool.beycom.online/reference/tools/) — full summary table with all 100+ tools
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## MCP Server Proxy
|
|
187
|
+
|
|
188
|
+
Wrap any existing MCP server and call it explicitly - without the tool tax:
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
# .onetool/onetool.yaml
|
|
192
|
+
mcp_servers:
|
|
193
|
+
chrome-devtools:
|
|
194
|
+
command: npx
|
|
195
|
+
args: ["-y", "@anthropic-ai/chrome-devtools-mcp@latest"]
|
|
196
|
+
github:
|
|
197
|
+
command: npx
|
|
198
|
+
args: ["-y", "@anthropic-ai/github-mcp-server@latest"]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
__ot mcp.call(server="github", tool="get_file_contents", arguments={"path": "README.md"})
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
[📖 Configuration guide](https://onetool.beycom.online/learn/configuration/#external-mcp-servers)
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Extending
|
|
210
|
+
|
|
211
|
+
Drop a Python file, get a pack. No registration, no config:
|
|
212
|
+
|
|
213
|
+
```python
|
|
214
|
+
# .onetool/tools/wiki.py
|
|
215
|
+
pack = "wiki"
|
|
216
|
+
|
|
217
|
+
def summary(*, title: str) -> str:
|
|
218
|
+
"""Get Wikipedia article summary."""
|
|
219
|
+
import httpx
|
|
220
|
+
url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{title}"
|
|
221
|
+
return httpx.get(url).json().get("extract", "Not found")
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
```python
|
|
225
|
+
__ot wiki.summary(title="Python_(programming_language)")
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
[📖 Creating tools guide](https://onetool.beycom.online/learn/extending/extension-tools/)
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Documentation
|
|
233
|
+
|
|
234
|
+
- [Quickstart](https://onetool.beycom.online/learn/quickstart/) - 30 seconds to first tool call
|
|
235
|
+
- [Installation](https://onetool.beycom.online/learn/installation/) - All platforms
|
|
236
|
+
- [Configuration](https://onetool.beycom.online/learn/configuration/) - YAML schema
|
|
237
|
+
- [Tools Reference](https://onetool.beycom.online/reference/tools/) - All 100+ tools
|
|
238
|
+
- [Security](https://onetool.beycom.online/learn/security/) - Security layers
|
|
239
|
+
- [Extending](https://onetool.beycom.online/learn/extending/) - Build your own
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## References
|
|
244
|
+
|
|
245
|
+
- [Code Execution with MCP](https://www.anthropic.com/engineering/code-execution-with-mcp) - Anthropic Engineering
|
|
246
|
+
- [Context Rot](https://research.trychroma.com/context-rot) - Chroma Research
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Contributing
|
|
251
|
+
|
|
252
|
+
[Contribution guidelines](https://github.com/beycom/onetool-mcp/blob/main/CONTRIBUTING.md)
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## License
|
|
257
|
+
|
|
258
|
+
**GPLv3** - Will transition to **MIT** at v2.0.
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Support
|
|
263
|
+
|
|
264
|
+
If you find OneTool useful:
|
|
265
|
+
|
|
266
|
+
[](https://ko-fi.com/beycom)
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
bench/__init__.py,sha256=y388vnV0atWMmhJA4RzbIGGHrWNifzidcXkIgjSQR2Q,133
|
|
2
|
+
bench/cli.py,sha256=8QjzxnTkMFvJ-c_bQ0YZkr-MtN9sdZDau_Vo62DFSTQ,1664
|
|
3
|
+
bench/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
bench/reporter.py,sha256=peV3xaDiasQR5UAMCC1oRDuOWG_IAMC6HqQ8XjdXgC8,23602
|
|
5
|
+
bench/run.py,sha256=9s1z_Q4vEE5rdct9aKOpo2A6JLLl8vD0bwQ-jAWB2Ec,16456
|
|
6
|
+
bench/secrets.py,sha256=ho1susoPnJbmdhhMubhdCueQnybMm2ykBapR_nkpTZ0,2676
|
|
7
|
+
bench/utils.py,sha256=Kr3ZHb9cBFaM1HRNBFCUH3JKHk4-fNAiBpr2I95eR0c,386
|
|
8
|
+
bench/harness/__init__.py,sha256=e9qbt4m_7I6j1wlLd_HCI2kQSXNs_vdluFpOLULD25A,1511
|
|
9
|
+
bench/harness/client.py,sha256=qBW1Y49QFEt-NElybRKu1bA1YbuXKv2cPYr58hCSLjw,25303
|
|
10
|
+
bench/harness/config.py,sha256=k6jqvQeumS91ka_QBV8pXtpwQUZhgutbbNiL5n68gxI,12581
|
|
11
|
+
bench/harness/csv_writer.py,sha256=iwy3ixo9KlzoXmJVAYTHYt2Nm8s5vQsxVAaykgsvHEY,3305
|
|
12
|
+
bench/harness/evaluate.py,sha256=Mv6I63aBXwEZHoarUOYu3UIG3-rRcInLtBULlqcqeDk,17262
|
|
13
|
+
bench/harness/metrics.py,sha256=5Zy0x3IG-CeXUk-nxGm8-w2YCds1B2oxNGQMKNkgjGE,9690
|
|
14
|
+
bench/harness/runner.py,sha256=Gx9_IXVBhmogaWCf5e-YNuuyDNeJVJpSPKtbp7PyxaI,38332
|
|
15
|
+
onetool/__init__.py,sha256=NH91OBFDKBASlyorvmrLjckwXblgcToPkdqtZOIya7o,110
|
|
16
|
+
onetool/cli.py,sha256=-U0JaImHaXGs-BRPV39AO3wdPD4BJKts46LFNO_lUZ8,13953
|
|
17
|
+
onetool/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
+
ot/__init__.py,sha256=WI1BaMpZr1Xag5DLy8710K19v4EEiU0plLsgbCWWgz0,983
|
|
19
|
+
ot/__main__.py,sha256=7H47GZ-tb1Ih8MoYHnaNPjYPxsOXXnVL983IrTxOFPo,129
|
|
20
|
+
ot/_cli.py,sha256=cJ6mazEkl1cseHTUmtPFrsJfjZZ5IFkfFqh0c5s7xuY,2700
|
|
21
|
+
ot/_tui.py,sha256=fbF_iwK58EBPhxWmEEQozneHlSRr7MRop7aRugVQ688,1437
|
|
22
|
+
ot/decorators.py,sha256=gPNDtQSiVxa7HDzqeYJJnqb_fKhgTDREnspNo1s0zr4,3339
|
|
23
|
+
ot/http_client.py,sha256=1BuRWHxTSmRleXGFvZzs4nzCv9GV7HKOZ0YSRVh1_JE,4308
|
|
24
|
+
ot/meta.py,sha256=UNmYoN8SRkztTDv9RZe_CmO_ZLirc4gJZSUO56jziI8,59152
|
|
25
|
+
ot/paths.py,sha256=6yqPKdQ8zXLcQ9Txbr-pf41IfZuMpBJZNjN-Eet6H54,14221
|
|
26
|
+
ot/prompts.py,sha256=1U0NFCvbIffN74RL4k-4N8jIj8C_Usy2BwtE6mIRYCA,6884
|
|
27
|
+
ot/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
ot/server.py,sha256=uBp1ZG9czCTz5IymZz5MfXNMChSQJ38JXhjhiMYjsn4,10531
|
|
29
|
+
ot/support.py,sha256=CqrsJCzVVoHnY0uis6_YtqVJLOG8llzjvoyzIUAn8Ms,1702
|
|
30
|
+
ot/tools.py,sha256=V-Qb34WmfWYqxIKp_aGcuXn06-IM_PNOQspfC1-dcUM,3590
|
|
31
|
+
ot/config/__init__.py,sha256=THimK2ZlWrrImAri9OsybJNBNsdWk9kdigbYqHVONR4,1154
|
|
32
|
+
ot/config/dynamic.py,sha256=alaJUnDL2KRIWeCNN-garmPmJ3qFoOirkwh0hSFcMuc,3711
|
|
33
|
+
ot/config/loader.py,sha256=iGY8EVPhrrHEpLUAMLUH7STYf2288XoZedUdXheiZhY,38891
|
|
34
|
+
ot/config/mcp.py,sha256=72bQwJdl-7xLYLePQ1C5YLqXLewTdZkARQQDHIO9fKY,5248
|
|
35
|
+
ot/config/secrets.py,sha256=Ue53Wx80yVFSgne-JZw7eVvQExKC1Kylr9JJNona5xY,6299
|
|
36
|
+
ot/config/tool_config.py,sha256=BisTtEj9Ws8NnWxvSbW9kskkygO8F-RO4Mgm9KIuPm0,3651
|
|
37
|
+
ot/config/global_templates/__init__.py,sha256=4hYQjxPiEe02VmpvWXVfgJgbSwg89euX9mG182oa58M,111
|
|
38
|
+
ot/config/global_templates/bench-secrets-template.yaml,sha256=srZcnOM8Af2gQTpmo7g16sE9-zj0Tlguv54V-WE3hCs,224
|
|
39
|
+
ot/config/global_templates/bench.yaml,sha256=h2Ac5-unilwx5TPvDsp02y4I0WiPI7y9CyRh7FIBuL8,223
|
|
40
|
+
ot/config/global_templates/diagram.yaml,sha256=dgQvlL7upiXSubzgBhhNa26HNGGk-_nyhnz2prE--2I,5656
|
|
41
|
+
ot/config/global_templates/onetool.yaml,sha256=YpIBBGJ3ctLd25_R_pHsuPpRq-iUroKfq3s99-EgQJk,951
|
|
42
|
+
ot/config/global_templates/prompts.yaml,sha256=69y6FbEWhCoi-1uLUZwt5nMu3DPsduOl_i5hnAD8hGU,4881
|
|
43
|
+
ot/config/global_templates/secrets-template.yaml,sha256=sUb2uExdrx_07bH2UVKtp-tqCSpcW-PenH_UFDxPF2k,1541
|
|
44
|
+
ot/config/global_templates/security.yaml,sha256=s4QWXgKjsEgFSEzXIEv57bv9gwO1SCzTwiv8D20gdFs,1242
|
|
45
|
+
ot/config/global_templates/servers.yaml,sha256=N0PAYvmyrPJYrY7lKGL34NUPlIoFvpS5IY1vTGlUfTA,4904
|
|
46
|
+
ot/config/global_templates/snippets.yaml,sha256=PLjc_4KLRWNR_DPFB0MF_LisKCEvdc5XvvnEHUd3Aio,8920
|
|
47
|
+
ot/config/global_templates/diagram-templates/api-flow.mmd,sha256=PoSScSsKRxb91GyuK-slko1NWs9yAKllPuYTvaVNgnk,729
|
|
48
|
+
ot/config/global_templates/diagram-templates/c4-context.puml,sha256=oBDkVujije3ZIrxcmv4xt5OCtwcpW2QAkbWwRIBbOPQ,946
|
|
49
|
+
ot/config/global_templates/diagram-templates/class-diagram.mmd,sha256=7VwccmraqC_mXscnVPkhInsVZDPVaUJkNfVYBhLSf3E,1804
|
|
50
|
+
ot/config/global_templates/diagram-templates/feature-mindmap.mmd,sha256=U_mz4DJG6_8mweZ0bY29Tr6G5JKM-hwrPn57sBGyhmw,1427
|
|
51
|
+
ot/config/global_templates/diagram-templates/microservices.d2,sha256=oEdaXsvogdx5UvSypivlT5DCLHC6xJxBl6Y6t7zX_ww,1529
|
|
52
|
+
ot/config/global_templates/diagram-templates/project-gantt.mmd,sha256=x7q5noj9boYfJQjDC5WCfIMcqGbJPi61Na7_B7ViBrM,1314
|
|
53
|
+
ot/config/global_templates/diagram-templates/state-machine.mmd,sha256=90KpOWo7TKJVinqATzcDGIKm4xOgFTmiXUbDoiHbLJ0,1013
|
|
54
|
+
ot/config/global_templates/tool_templates/__init__.py,sha256=nNdHPxZvBeUfRJfMvhVvrXE6rJ4Q1NxhvSk1NfJQIsg,221
|
|
55
|
+
ot/config/global_templates/tool_templates/extension.py,sha256=VfHxAjiIZ2BdbFMWEkdxGZT4OUxSAUb9ng9p-HH2lCM,1371
|
|
56
|
+
ot/config/global_templates/tool_templates/isolated.py,sha256=aTl7_hG1ALHCGqyHMPjKa6fNBXoTBPjsLtbFgq76LAg,1556
|
|
57
|
+
ot/executor/__init__.py,sha256=0qA-CZ2uTfe0Mqso1yLb1zdOlGWJKby4Qn4Ucb4zpgg,871
|
|
58
|
+
ot/executor/base.py,sha256=YzjXzRKdR2VtGaBuekIopPIydjribkxUKNDyvPH_d4s,333
|
|
59
|
+
ot/executor/fence_processor.py,sha256=9vrSUOWYlTGxgjieXi5FkGJdXOSl4e68zTtQCClVRjo,2827
|
|
60
|
+
ot/executor/linter.py,sha256=YMdC8Aa_aY0VevFexuSiJtSBzRGwlZba2CFM4DjCJKw,3846
|
|
61
|
+
ot/executor/pack_proxy.py,sha256=S0d3VsHaXvoraoJdgySAkk4Jc_ExzjGkPbKeCDstUEc,8793
|
|
62
|
+
ot/executor/param_resolver.py,sha256=lQR73bB_aJ1zgXGiI_JmzOiCeUYnW-jiEPHRdquSY00,4361
|
|
63
|
+
ot/executor/pep723.py,sha256=TWX9rphcf7LtR6GFRpN-j5BrteUUsCjg5UNoy-UH6w0,8762
|
|
64
|
+
ot/executor/result_store.py,sha256=BwTd4Gk0JPVmysGB0bC1vtc3M-5q4ZMsfkBle7e-jRE,11104
|
|
65
|
+
ot/executor/runner.py,sha256=Wbroj0AE0YKPnWeNyJyJAnjRZttv1-w3Z9n9C5th2o4,17100
|
|
66
|
+
ot/executor/simple.py,sha256=_RfFlHy0-AnOFvUoYuLqxuD94SiG2IXSvmfQBLQzpYo,5192
|
|
67
|
+
ot/executor/tool_loader.py,sha256=vdu5pAL1NvGGu1H7tE3lqBafzWHWP3MfFXMZgzgFyIw,13377
|
|
68
|
+
ot/executor/validator.py,sha256=nMMcobn6-wHoJjahVnV9e8qi9nKJNOquBBpeNpYP5Js,30927
|
|
69
|
+
ot/executor/worker_pool.py,sha256=HJOu3P9E5MKgBZsddmeElctPUhF5kwx5Hfd9IezwJo8,12635
|
|
70
|
+
ot/executor/worker_proxy.py,sha256=NUxOI2VZFkNbH5IMulvokHEe5cZQtViOSpb4DEHBf4I,5651
|
|
71
|
+
ot/logging/__init__.py,sha256=s4nAEAxqpiRY6bdRNyEwIj-3n0WkaYktN_ACtS8mqK8,980
|
|
72
|
+
ot/logging/config.py,sha256=PwvQDzcfrcDiUBJhRLyCc07GaMHzn9hu6rFq5wFQCyo,9919
|
|
73
|
+
ot/logging/entry.py,sha256=f6B6A8xOdbdvTzU7TeYgexlphNHtRxH4VGM0JfEfImI,6382
|
|
74
|
+
ot/logging/format.py,sha256=6MpyfaSZzhwqv0AQRIPTmCnrivqdC7hbIUlZ1A7N6_U,5681
|
|
75
|
+
ot/logging/span.py,sha256=3R-hJJAQPXPmFwofWgcQN2qNiQFhq7HuhfNIqllsV0M,11722
|
|
76
|
+
ot/proxy/__init__.py,sha256=N4shk9gsZ76BBe8tUftXL83ELB42zlbTXtF05lTUqUc,435
|
|
77
|
+
ot/proxy/manager.py,sha256=PBk45E-t3QAqFE-mBEyA74DEKfBr_9ixlC36lC2V1HQ,14060
|
|
78
|
+
ot/registry/__init__.py,sha256=tlglqdUKsXlclUqyQp8ekZjeRzKRKmEfofDmiH3W7eg,5338
|
|
79
|
+
ot/registry/models.py,sha256=Z-lsRRN3pDyL2nUalZA9QoD1IG_e7aSPUoE6TvRspCk,2160
|
|
80
|
+
ot/registry/parser.py,sha256=OpRXT47aKQNk-TxzWq9WLep2RPICvUDCvLKDeO4Z464,8685
|
|
81
|
+
ot/registry/registry.py,sha256=HFPPIGWop2szXRQeQeFs5axK4iS17dEOHV8qf9Jm5nE,13458
|
|
82
|
+
ot/shortcuts/__init__.py,sha256=xkwnHUwFjmJsdUpqRcccaYHic72XooV7-Pic2sbdlzU,476
|
|
83
|
+
ot/shortcuts/aliases.py,sha256=qQrlrdKDioQphUwHBGUk1JqgiLo4zpZx63llvZ_xztw,2792
|
|
84
|
+
ot/shortcuts/snippets.py,sha256=RqfweQpmV95A5_QHs1voHCtiS5U3PSLzOrC7QjTQsh4,8214
|
|
85
|
+
ot/stats/__init__.py,sha256=ukbetHbilGHnlFJUZ8xiO_pis1aLk8xMKr9wdzKhOi4,968
|
|
86
|
+
ot/stats/html.py,sha256=MkVai3sIDRl2X3p4qlaUgugosU3wDFWbQfHjRpVBE98,9101
|
|
87
|
+
ot/stats/jsonl_writer.py,sha256=ym-Wfy0gv90M59ipCQsxapTKNQBO28btKDe6kgFdxck,8169
|
|
88
|
+
ot/stats/reader.py,sha256=0Bkry6cKVO85yU0BM5ro7LCkdo7rzG3gwkBqu8yHX0I,12237
|
|
89
|
+
ot/stats/timing.py,sha256=Vg-Tyv96oMshlAgoRoAz3A4-GVV2S3zNkO9oeDKKsjg,1557
|
|
90
|
+
ot/utils/__init__.py,sha256=k54kcSGmKl8zrnKXw9svCyXej7FrVZvshMSK1f_6de4,2108
|
|
91
|
+
ot/utils/batch.py,sha256=0J5p2m8W7crSgad2X0jVA5Hx9I_dWdDGG4TM-41teRc,5100
|
|
92
|
+
ot/utils/cache.py,sha256=awG4Hb6ySgoyEpVRoh2dGmYmJa1BRXCupVDkNqF9kqQ,3626
|
|
93
|
+
ot/utils/deps.py,sha256=5U_bnAEfd_Ivt9ZZitn9emt8T7Ehm99_xb1_okbURfA,11654
|
|
94
|
+
ot/utils/exceptions.py,sha256=1m34Qt0AMR53PAmWmqKPKsVQsVC53U-lfEvEYuidO4s,636
|
|
95
|
+
ot/utils/factory.py,sha256=_hb71m7MZzRv9hIU0bbKUZ8yZQwculTvBj7ook_2t7Y,5133
|
|
96
|
+
ot/utils/format.py,sha256=zu1yUIihtyYiI5wHIL1ofn38HTSqBIbK27Ytziv6-D0,2130
|
|
97
|
+
ot/utils/http.py,sha256=tKAiXR_tGsO3_CVfL0-0G7Za2C5EN1PzAzMexLKEOVY,5855
|
|
98
|
+
ot/utils/platform.py,sha256=X2ickI8VTQbEpF32hjuoAgvOpkViFYMUn2H267XiAt0,1557
|
|
99
|
+
ot/utils/sanitize.py,sha256=5zDKpDwE6oo-74Bwv-yhovOJ6zk03vO2-gsCiEDA2kk,3815
|
|
100
|
+
ot/utils/truncate.py,sha256=yB-rZ5cmWSNSi1Em1P4-wXQxaWm29CE6vJWR8ZDqnVc,1840
|
|
101
|
+
ot_tools/__init__.py,sha256=TGqcr_t07e1v6wGd9K0PNkrQrlR4RMrbzg0-RU0B0IU,99
|
|
102
|
+
ot_tools/brave_search.py,sha256=JPVR_S2J1NLL7ad4AudIkgMsvnqggibjZ5FRXPt5ZA0,17746
|
|
103
|
+
ot_tools/code_search.py,sha256=P3-oReY7n_3nrlEiYzFv5ompcU-cuVRTeEK4fSQKuew,25191
|
|
104
|
+
ot_tools/context7.py,sha256=sn75QMEeOeSQSYZeVwT4UjYEXo3QXa8KC61mwIUix3U,16088
|
|
105
|
+
ot_tools/convert.py,sha256=mCmDFLWgLiEJhYyd6Ex9s7qfyPOWj7FKaqtIFKG_Ig4,20488
|
|
106
|
+
ot_tools/db.py,sha256=RH_OOUJYqYVw14O8QYGB9QKg9IGNPQAM33HDa71D3v4,13142
|
|
107
|
+
ot_tools/diagram.py,sha256=tGNyd3PYdpi3Qs7Gs8pbcZVWMBVmyNbJG_wxiZ8682M,50478
|
|
108
|
+
ot_tools/diagram.yaml,sha256=QeEpp8zyYCvMh7h-yhR14HERs7E-rOa1yptf8TihdTg,5638
|
|
109
|
+
ot_tools/excel.py,sha256=yZGgKzDzPvZAE7b9vjC25FY7lJkw7PCBFMYOGcU1UyE,43067
|
|
110
|
+
ot_tools/file.py,sha256=9o_A1m7GCxpnIKIwAiahvGaQrfxXcfkVQicPH1_ztW0,46689
|
|
111
|
+
ot_tools/grounding_search.py,sha256=ak0wZzBQMPR5VYVrATOIzldZj_n8UxYeCxrmpTZrykA,20182
|
|
112
|
+
ot_tools/package.py,sha256=5MtsPW9ieolQAnaw60Yb4TyODSlowW56HAZj-j_QSkU,19148
|
|
113
|
+
ot_tools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
|
+
ot_tools/ripgrep.py,sha256=_dKHo5TTlYlzoRQV8-7kFw3yuYk7I5r_9FYJvnGFECc,17105
|
|
115
|
+
ot_tools/scaffold.py,sha256=wgg3mZO15EKDuGMVE_QULUy0ISN9eCkilWL_xOuAWzQ,17378
|
|
116
|
+
ot_tools/transform.py,sha256=BD819IvbsFpd6gFW2mC8K-0X7-7qVYKsdqr8NEyx00w,10410
|
|
117
|
+
ot_tools/web_fetch.py,sha256=PtW_ynZNmE4o8JxiiqrmJ_Z0meTx2T6lvoJU2PwZCuQ,15459
|
|
118
|
+
ot_tools/_convert/__init__.py,sha256=D-QyOzXZvFBOicxpOX43OW4HlZhboswrgNYEmXEGiIw,477
|
|
119
|
+
ot_tools/_convert/excel.py,sha256=mVCgolocTKd7ZCpVd2hANaYnhJrneNtGYEZafrCeYqE,8679
|
|
120
|
+
ot_tools/_convert/pdf.py,sha256=BAZJh-6fWQFyuVSPeN22FwWf56SH2AlOTpwuqnnZrPk,7577
|
|
121
|
+
ot_tools/_convert/powerpoint.py,sha256=M8lwkTV7x4wafR7eXrVojCBKgcXVxO1tT-Z2Ml5wwxo,7855
|
|
122
|
+
ot_tools/_convert/utils.py,sha256=AfId8ulTx_kKq0zVbhvuY3KGXqQjEk8Y7o8BXjP8WgA,10192
|
|
123
|
+
ot_tools/_convert/word.py,sha256=XfjqQRhEYS_433LprmF6vqyosytXVdNWzsCXo42WNcA,8710
|
|
124
|
+
onetool_mcp-1.0.0rc2.dist-info/METADATA,sha256=lFEQ4EK2NsXPKzrJBmlOdQ8aHz08oiy7YpPc7cvl_y0,9255
|
|
125
|
+
onetool_mcp-1.0.0rc2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
126
|
+
onetool_mcp-1.0.0rc2.dist-info/entry_points.txt,sha256=UUr3FvhGxnRdyJSxRG5YeqCGUi8nQ3oMCoueM35sF04,66
|
|
127
|
+
onetool_mcp-1.0.0rc2.dist-info/licenses/LICENSE.txt,sha256=eenW0GFt38rIpO3MguA49tq9bcAJR2NWECenWW3JoAs,35561
|
|
128
|
+
onetool_mcp-1.0.0rc2.dist-info/licenses/NOTICE.txt,sha256=X-5KsBMpZYEDvljq9_0Rr1wJ18pzm52ftcgeruy-5tE,2096
|
|
129
|
+
onetool_mcp-1.0.0rc2.dist-info/RECORD,,
|
|
@@ -676,7 +676,7 @@ Public License instead of this License. But first, please read
|
|
|
676
676
|
--------------------------------------------------------------------------------
|
|
677
677
|
|
|
678
678
|
OneTool
|
|
679
|
-
Copyright 2024-present,
|
|
679
|
+
Copyright 2024-present, Gavin Lasnitzki
|
|
680
680
|
Licensed under the GNU General Public License v3.0.
|
|
681
681
|
|
|
682
682
|
Third-Party Credits:
|
|
@@ -1,64 +1,54 @@
|
|
|
1
|
-
OneTool
|
|
2
|
-
Copyright 2024-present, OneTool Authors
|
|
3
|
-
|
|
4
|
-
This product includes software developed by third parties.
|
|
5
|
-
|
|
6
|
-
================================================================================
|
|
7
|
-
trafilatura
|
|
8
|
-
================================================================================
|
|
9
|
-
Copyright 2019-present, Adrien Barbaresi and contributors
|
|
10
|
-
Licensed under the Apache License, Version 2.0
|
|
11
|
-
https://github.com/adbar/trafilatura
|
|
12
|
-
|
|
13
|
-
Used in: tools/web_fetch.py
|
|
14
|
-
|
|
15
|
-
================================================================================
|
|
16
|
-
brave-search-mcp-server
|
|
17
|
-
================================================================================
|
|
18
|
-
Copyright (c) 2024 Anthropic, PBC
|
|
19
|
-
Copyright (c) 2025 Brave Software, Inc
|
|
20
|
-
Licensed under the MIT License
|
|
21
|
-
https://github.com/brave/brave-search-mcp-server
|
|
22
|
-
|
|
23
|
-
Used in: tools/brave_search.py (API integration patterns)
|
|
24
|
-
|
|
25
|
-
================================================================================
|
|
26
|
-
context7
|
|
27
|
-
================================================================================
|
|
28
|
-
Copyright (c) 2021 Upstash, Inc.
|
|
29
|
-
Licensed under the MIT License
|
|
30
|
-
https://github.com/upstash/context7
|
|
31
|
-
|
|
32
|
-
Used in: tools/context7.py (API integration patterns)
|
|
33
|
-
|
|
34
|
-
================================================================================
|
|
35
|
-
ChunkHound
|
|
36
|
-
================================================================================
|
|
37
|
-
Copyright (c) 2025 Ofri Wolfus
|
|
38
|
-
Licensed under the MIT License
|
|
39
|
-
https://github.com/chunkhound/chunkhound
|
|
40
|
-
|
|
41
|
-
Used in: tools/code_search.py (LanceDB schema and indexing patterns)
|
|
42
|
-
|
|
43
|
-
================================================================================
|
|
44
|
-
mcp-alchemy
|
|
45
|
-
================================================================================
|
|
46
|
-
Copyright (c) 2024 Rune Kaagaard
|
|
47
|
-
Licensed under the Mozilla Public License, v. 2.0
|
|
48
|
-
https://github.com/runekaagaard/mcp-alchemy
|
|
49
|
-
|
|
50
|
-
Used in: ot_tools/db.py (database introspection and query patterns)
|
|
51
|
-
|
|
52
|
-
================================================================================
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
Copyright (c) 2024 Mendable.ai
|
|
56
|
-
Licensed under the AGPL-3.0 License (SDK and server)
|
|
57
|
-
https://github.com/firecrawl/firecrawl
|
|
58
|
-
|
|
59
|
-
Used in: ot_tools/firecrawl.py (API client SDK)
|
|
60
|
-
Note: We use the SDK to call Firecrawl's cloud API. No server code is distributed.
|
|
61
|
-
|
|
62
|
-
================================================================================
|
|
63
|
-
|
|
64
|
-
Full license texts are available in the licenses/ directory.
|
|
1
|
+
OneTool
|
|
2
|
+
Copyright 2024-present, OneTool Authors
|
|
3
|
+
|
|
4
|
+
This product includes software developed by third parties.
|
|
5
|
+
|
|
6
|
+
================================================================================
|
|
7
|
+
trafilatura
|
|
8
|
+
================================================================================
|
|
9
|
+
Copyright 2019-present, Adrien Barbaresi and contributors
|
|
10
|
+
Licensed under the Apache License, Version 2.0
|
|
11
|
+
https://github.com/adbar/trafilatura
|
|
12
|
+
|
|
13
|
+
Used in: tools/web_fetch.py
|
|
14
|
+
|
|
15
|
+
================================================================================
|
|
16
|
+
brave-search-mcp-server
|
|
17
|
+
================================================================================
|
|
18
|
+
Copyright (c) 2024 Anthropic, PBC
|
|
19
|
+
Copyright (c) 2025 Brave Software, Inc
|
|
20
|
+
Licensed under the MIT License
|
|
21
|
+
https://github.com/brave/brave-search-mcp-server
|
|
22
|
+
|
|
23
|
+
Used in: tools/brave_search.py (API integration patterns)
|
|
24
|
+
|
|
25
|
+
================================================================================
|
|
26
|
+
context7
|
|
27
|
+
================================================================================
|
|
28
|
+
Copyright (c) 2021 Upstash, Inc.
|
|
29
|
+
Licensed under the MIT License
|
|
30
|
+
https://github.com/upstash/context7
|
|
31
|
+
|
|
32
|
+
Used in: tools/context7.py (API integration patterns)
|
|
33
|
+
|
|
34
|
+
================================================================================
|
|
35
|
+
ChunkHound
|
|
36
|
+
================================================================================
|
|
37
|
+
Copyright (c) 2025 Ofri Wolfus
|
|
38
|
+
Licensed under the MIT License
|
|
39
|
+
https://github.com/chunkhound/chunkhound
|
|
40
|
+
|
|
41
|
+
Used in: tools/code_search.py (LanceDB schema and indexing patterns)
|
|
42
|
+
|
|
43
|
+
================================================================================
|
|
44
|
+
mcp-alchemy
|
|
45
|
+
================================================================================
|
|
46
|
+
Copyright (c) 2024 Rune Kaagaard
|
|
47
|
+
Licensed under the Mozilla Public License, v. 2.0
|
|
48
|
+
https://github.com/runekaagaard/mcp-alchemy
|
|
49
|
+
|
|
50
|
+
Used in: ot_tools/db.py (database introspection and query patterns)
|
|
51
|
+
|
|
52
|
+
================================================================================
|
|
53
|
+
|
|
54
|
+
Full license texts are available in the licenses/ directory.
|
ot/__main__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"""Run OneTool MCP server when executed as a module."""
|
|
2
|
-
|
|
3
|
-
from ot.server import main
|
|
4
|
-
|
|
5
|
-
if __name__ == "__main__":
|
|
6
|
-
main()
|
|
1
|
+
"""Run OneTool MCP server when executed as a module."""
|
|
2
|
+
|
|
3
|
+
from ot.server import main
|
|
4
|
+
|
|
5
|
+
if __name__ == "__main__":
|
|
6
|
+
main()
|