tooluniverse 1.0.10__py3-none-any.whl → 1.0.11.1__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.

Potentially problematic release.


This version of tooluniverse might be problematic. Click here for more details.

Files changed (151) hide show
  1. tooluniverse/__init__.py +57 -1
  2. tooluniverse/blast_tool.py +132 -0
  3. tooluniverse/boltz_tool.py +2 -2
  4. tooluniverse/cbioportal_tool.py +42 -0
  5. tooluniverse/clinvar_tool.py +268 -74
  6. tooluniverse/compose_scripts/tool_discover.py +1941 -443
  7. tooluniverse/data/agentic_tools.json +0 -370
  8. tooluniverse/data/alphafold_tools.json +6 -6
  9. tooluniverse/data/blast_tools.json +112 -0
  10. tooluniverse/data/cbioportal_tools.json +87 -0
  11. tooluniverse/data/clinvar_tools.json +235 -0
  12. tooluniverse/data/compose_tools.json +0 -89
  13. tooluniverse/data/dbsnp_tools.json +275 -0
  14. tooluniverse/data/emdb_tools.json +61 -0
  15. tooluniverse/data/ensembl_tools.json +259 -0
  16. tooluniverse/data/file_download_tools.json +275 -0
  17. tooluniverse/data/geo_tools.json +200 -48
  18. tooluniverse/data/gnomad_tools.json +109 -0
  19. tooluniverse/data/gtopdb_tools.json +68 -0
  20. tooluniverse/data/gwas_tools.json +32 -0
  21. tooluniverse/data/interpro_tools.json +199 -0
  22. tooluniverse/data/jaspar_tools.json +70 -0
  23. tooluniverse/data/kegg_tools.json +356 -0
  24. tooluniverse/data/mpd_tools.json +87 -0
  25. tooluniverse/data/ols_tools.json +314 -0
  26. tooluniverse/data/package_discovery_tools.json +64 -0
  27. tooluniverse/data/packages/categorized_tools.txt +0 -1
  28. tooluniverse/data/packages/machine_learning_tools.json +0 -47
  29. tooluniverse/data/paleobiology_tools.json +91 -0
  30. tooluniverse/data/pride_tools.json +62 -0
  31. tooluniverse/data/pypi_package_inspector_tools.json +158 -0
  32. tooluniverse/data/python_executor_tools.json +341 -0
  33. tooluniverse/data/regulomedb_tools.json +50 -0
  34. tooluniverse/data/remap_tools.json +89 -0
  35. tooluniverse/data/screen_tools.json +89 -0
  36. tooluniverse/data/tool_discovery_agents.json +428 -0
  37. tooluniverse/data/tool_discovery_agents.json.backup +1343 -0
  38. tooluniverse/data/uniprot_tools.json +77 -0
  39. tooluniverse/data/web_search_tools.json +250 -0
  40. tooluniverse/data/worms_tools.json +55 -0
  41. tooluniverse/dbsnp_tool.py +196 -58
  42. tooluniverse/default_config.py +35 -2
  43. tooluniverse/emdb_tool.py +30 -0
  44. tooluniverse/ensembl_tool.py +140 -47
  45. tooluniverse/execute_function.py +78 -14
  46. tooluniverse/file_download_tool.py +269 -0
  47. tooluniverse/geo_tool.py +81 -28
  48. tooluniverse/gnomad_tool.py +100 -52
  49. tooluniverse/gtopdb_tool.py +41 -0
  50. tooluniverse/interpro_tool.py +72 -0
  51. tooluniverse/jaspar_tool.py +30 -0
  52. tooluniverse/kegg_tool.py +230 -0
  53. tooluniverse/mpd_tool.py +42 -0
  54. tooluniverse/ncbi_eutils_tool.py +96 -0
  55. tooluniverse/ols_tool.py +435 -0
  56. tooluniverse/package_discovery_tool.py +217 -0
  57. tooluniverse/paleobiology_tool.py +30 -0
  58. tooluniverse/pride_tool.py +30 -0
  59. tooluniverse/pypi_package_inspector_tool.py +593 -0
  60. tooluniverse/python_executor_tool.py +711 -0
  61. tooluniverse/regulomedb_tool.py +30 -0
  62. tooluniverse/remap_tool.py +44 -0
  63. tooluniverse/remote/depmap_24q2/depmap_24q2_mcp_tool.py +1 -1
  64. tooluniverse/screen_tool.py +44 -0
  65. tooluniverse/smcp.py +10 -2
  66. tooluniverse/smcp_server.py +3 -3
  67. tooluniverse/tool_finder_embedding.py +3 -1
  68. tooluniverse/tool_finder_keyword.py +3 -1
  69. tooluniverse/tool_finder_llm.py +6 -2
  70. tooluniverse/tools/{UCSC_get_genes_by_region.py → BLAST_nucleotide_search.py} +22 -26
  71. tooluniverse/tools/BLAST_protein_search.py +63 -0
  72. tooluniverse/tools/ClinVar_search_variants.py +26 -15
  73. tooluniverse/tools/CodeQualityAnalyzer.py +3 -3
  74. tooluniverse/tools/EMDB_get_structure.py +46 -0
  75. tooluniverse/tools/GtoPdb_get_targets.py +52 -0
  76. tooluniverse/tools/InterPro_get_domain_details.py +46 -0
  77. tooluniverse/tools/InterPro_get_protein_domains.py +49 -0
  78. tooluniverse/tools/InterPro_search_domains.py +52 -0
  79. tooluniverse/tools/JASPAR_get_transcription_factors.py +52 -0
  80. tooluniverse/tools/MPD_get_phenotype_data.py +59 -0
  81. tooluniverse/tools/PRIDE_search_proteomics.py +52 -0
  82. tooluniverse/tools/PackageAnalyzer.py +55 -0
  83. tooluniverse/tools/Paleobiology_get_fossils.py +52 -0
  84. tooluniverse/tools/PyPIPackageInspector.py +59 -0
  85. tooluniverse/tools/ReMap_get_transcription_factor_binding.py +59 -0
  86. tooluniverse/tools/ReferenceInfoAnalyzer.py +55 -0
  87. tooluniverse/tools/RegulomeDB_query_variant.py +46 -0
  88. tooluniverse/tools/SCREEN_get_regulatory_elements.py +59 -0
  89. tooluniverse/tools/{ArgumentDescriptionOptimizer.py → TestResultsAnalyzer.py} +13 -13
  90. tooluniverse/tools/ToolDiscover.py +11 -11
  91. tooluniverse/tools/UniProt_id_mapping.py +63 -0
  92. tooluniverse/tools/UniProt_search.py +63 -0
  93. tooluniverse/tools/UnifiedToolGenerator.py +59 -0
  94. tooluniverse/tools/WoRMS_search_species.py +49 -0
  95. tooluniverse/tools/XMLToolOptimizer.py +55 -0
  96. tooluniverse/tools/__init__.py +119 -29
  97. tooluniverse/tools/alphafold_get_annotations.py +3 -3
  98. tooluniverse/tools/alphafold_get_prediction.py +3 -3
  99. tooluniverse/tools/alphafold_get_summary.py +3 -3
  100. tooluniverse/tools/cBioPortal_get_cancer_studies.py +46 -0
  101. tooluniverse/tools/cBioPortal_get_mutations.py +52 -0
  102. tooluniverse/tools/{gnomAD_query_variant.py → clinvar_get_clinical_significance.py} +8 -11
  103. tooluniverse/tools/clinvar_get_variant_details.py +49 -0
  104. tooluniverse/tools/dbSNP_get_variant_by_rsid.py +7 -7
  105. tooluniverse/tools/dbsnp_get_frequencies.py +46 -0
  106. tooluniverse/tools/dbsnp_search_by_gene.py +52 -0
  107. tooluniverse/tools/download_binary_file.py +66 -0
  108. tooluniverse/tools/download_file.py +71 -0
  109. tooluniverse/tools/download_text_content.py +55 -0
  110. tooluniverse/tools/dynamic_package_discovery.py +59 -0
  111. tooluniverse/tools/ensembl_get_sequence.py +52 -0
  112. tooluniverse/tools/{Ensembl_lookup_gene_by_symbol.py → ensembl_get_variants.py} +11 -11
  113. tooluniverse/tools/ensembl_lookup_gene.py +46 -0
  114. tooluniverse/tools/geo_get_dataset_info.py +46 -0
  115. tooluniverse/tools/geo_get_sample_info.py +46 -0
  116. tooluniverse/tools/geo_search_datasets.py +67 -0
  117. tooluniverse/tools/gnomad_get_gene_constraints.py +49 -0
  118. tooluniverse/tools/kegg_find_genes.py +52 -0
  119. tooluniverse/tools/kegg_get_gene_info.py +46 -0
  120. tooluniverse/tools/kegg_get_pathway_info.py +46 -0
  121. tooluniverse/tools/kegg_list_organisms.py +44 -0
  122. tooluniverse/tools/kegg_search_pathway.py +46 -0
  123. tooluniverse/tools/ols_find_similar_terms.py +63 -0
  124. tooluniverse/tools/{get_hyperopt_info.py → ols_get_ontology_info.py} +13 -10
  125. tooluniverse/tools/ols_get_term_ancestors.py +67 -0
  126. tooluniverse/tools/ols_get_term_children.py +67 -0
  127. tooluniverse/tools/{TestCaseGenerator.py → ols_get_term_info.py} +12 -9
  128. tooluniverse/tools/{CodeOptimizer.py → ols_search_ontologies.py} +22 -14
  129. tooluniverse/tools/ols_search_terms.py +71 -0
  130. tooluniverse/tools/python_code_executor.py +79 -0
  131. tooluniverse/tools/python_script_runner.py +79 -0
  132. tooluniverse/tools/web_api_documentation_search.py +63 -0
  133. tooluniverse/tools/web_search.py +71 -0
  134. tooluniverse/uniprot_tool.py +219 -16
  135. tooluniverse/url_tool.py +18 -0
  136. tooluniverse/utils.py +2 -2
  137. tooluniverse/web_search_tool.py +229 -0
  138. tooluniverse/worms_tool.py +64 -0
  139. {tooluniverse-1.0.10.dist-info → tooluniverse-1.0.11.1.dist-info}/METADATA +3 -2
  140. {tooluniverse-1.0.10.dist-info → tooluniverse-1.0.11.1.dist-info}/RECORD +144 -55
  141. tooluniverse/data/genomics_tools.json +0 -174
  142. tooluniverse/tools/ToolDescriptionOptimizer.py +0 -67
  143. tooluniverse/tools/ToolImplementationGenerator.py +0 -67
  144. tooluniverse/tools/ToolOptimizer.py +0 -59
  145. tooluniverse/tools/ToolSpecificationGenerator.py +0 -67
  146. tooluniverse/tools/ToolSpecificationOptimizer.py +0 -63
  147. tooluniverse/ucsc_tool.py +0 -60
  148. {tooluniverse-1.0.10.dist-info → tooluniverse-1.0.11.1.dist-info}/WHEEL +0 -0
  149. {tooluniverse-1.0.10.dist-info → tooluniverse-1.0.11.1.dist-info}/entry_points.txt +0 -0
  150. {tooluniverse-1.0.10.dist-info → tooluniverse-1.0.11.1.dist-info}/licenses/LICENSE +0 -0
  151. {tooluniverse-1.0.10.dist-info → tooluniverse-1.0.11.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,61 @@
1
+ [
2
+ {
3
+ "type": "EMDBRESTTool",
4
+ "name": "EMDB_get_structure",
5
+ "description": "Get electron microscopy structure data from EMDB",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "emdb_id": {"type": "string", "description": "EMDB structure ID (e.g., EMD-1234)"}
10
+ },
11
+ "required": ["emdb_id"]
12
+ },
13
+ "fields": {
14
+ "endpoint": "https://www.ebi.ac.uk/emdb/api/entry/{emdb_id}",
15
+ "return_format": "JSON"
16
+ },
17
+ "return_schema": {
18
+ "type": "object",
19
+ "properties": {
20
+ "emdb_id": {"type": "string"},
21
+ "title": {"type": "string"},
22
+ "description": {"type": "string"},
23
+ "resolution": {"type": "number"},
24
+ "method": {"type": "string"},
25
+ "organism": {"type": "string"},
26
+ "molecule": {"type": "string"},
27
+ "deposition_date": {"type": "string"},
28
+ "release_date": {"type": "string"},
29
+ "authors": {"type": "array"},
30
+ "journal": {"type": "string"},
31
+ "volume": {"type": "string"},
32
+ "page": {"type": "string"},
33
+ "year": {"type": "integer"},
34
+ "doi": {"type": "string"},
35
+ "pdb_id": {"type": "string"},
36
+ "map_url": {"type": "string"},
37
+ "contour_level": {"type": "number"},
38
+ "voxel_size": {
39
+ "type": "object",
40
+ "properties": {
41
+ "x": {"type": "number"},
42
+ "y": {"type": "number"},
43
+ "z": {"type": "number"}
44
+ }
45
+ },
46
+ "map_dimensions": {
47
+ "type": "object",
48
+ "properties": {
49
+ "x": {"type": "integer"},
50
+ "y": {"type": "integer"},
51
+ "z": {"type": "integer"}
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "test_examples": [
57
+ {"emdb_id": "EMD-1234"},
58
+ {"emdb_id": "EMD-0001"}
59
+ ]
60
+ }
61
+ ]
@@ -0,0 +1,259 @@
1
+ [
2
+ {
3
+ "type": "EnsemblLookupGene",
4
+ "name": "ensembl_lookup_gene",
5
+ "description": "Lookup gene information by Ensembl gene ID or symbol. Returns gene details including location, description, and external references.",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "gene_id": {
10
+ "type": "string",
11
+ "description": "Ensembl gene ID or symbol (e.g., 'ENSG00000139618' or 'BRCA1')"
12
+ }
13
+ },
14
+ "required": ["gene_id"]
15
+ },
16
+ "fields": {
17
+ "endpoint": "/lookup/id",
18
+ "return_format": "JSON"
19
+ },
20
+ "return_schema": {
21
+ "type": "object",
22
+ "description": "Ensembl gene lookup data",
23
+ "properties": {
24
+ "status": {
25
+ "type": "string",
26
+ "description": "Status of the request"
27
+ },
28
+ "data": {
29
+ "type": "object",
30
+ "description": "Gene information object",
31
+ "properties": {
32
+ "id": {
33
+ "type": "string",
34
+ "description": "Ensembl gene ID"
35
+ },
36
+ "display_name": {
37
+ "type": "string",
38
+ "description": "Gene symbol"
39
+ },
40
+ "description": {
41
+ "type": "string",
42
+ "description": "Gene description"
43
+ },
44
+ "biotype": {
45
+ "type": "string",
46
+ "description": "Gene biotype"
47
+ },
48
+ "start": {
49
+ "type": "integer",
50
+ "description": "Gene start position"
51
+ },
52
+ "end": {
53
+ "type": "integer",
54
+ "description": "Gene end position"
55
+ },
56
+ "strand": {
57
+ "type": "integer",
58
+ "description": "Gene strand"
59
+ },
60
+ "seq_region_name": {
61
+ "type": "string",
62
+ "description": "Chromosome name"
63
+ }
64
+ }
65
+ },
66
+ "gene_id": {
67
+ "type": "string",
68
+ "description": "Input gene ID"
69
+ }
70
+ }
71
+ },
72
+ "test_examples": [
73
+ {
74
+ "description": "Lookup BRCA1 gene information",
75
+ "input": {
76
+ "gene_id": "ENSG00000012048"
77
+ },
78
+ "expected_output": {
79
+ "status": "success",
80
+ "data": "Gene information object with BRCA1 details"
81
+ }
82
+ }
83
+ ],
84
+ "metadata": {
85
+ "tags": ["gene", "lookup", "annotation"],
86
+ "difficulty_level": "easy",
87
+ "estimated_execution_time": "< 2 seconds"
88
+ }
89
+ },
90
+ {
91
+ "type": "EnsemblGetSequence",
92
+ "name": "ensembl_get_sequence",
93
+ "description": "Get DNA sequence for a gene, transcript, or genomic region. Returns sequence in FASTA format.",
94
+ "parameter": {
95
+ "type": "object",
96
+ "properties": {
97
+ "sequence_id": {
98
+ "type": "string",
99
+ "description": "Ensembl gene/transcript ID or genomic region (e.g., 'ENSG00000139618' or '1:1000000-2000000')"
100
+ },
101
+ "type": {
102
+ "type": "string",
103
+ "description": "Sequence type: 'genomic', 'cds', 'cdna', 'peptide'",
104
+ "default": "genomic"
105
+ }
106
+ },
107
+ "required": ["sequence_id"]
108
+ },
109
+ "fields": {
110
+ "endpoint": "/sequence/id",
111
+ "return_format": "JSON"
112
+ },
113
+ "return_schema": {
114
+ "type": "object",
115
+ "description": "Ensembl sequence data",
116
+ "properties": {
117
+ "status": {
118
+ "type": "string",
119
+ "description": "Status of the request"
120
+ },
121
+ "data": {
122
+ "type": "array",
123
+ "description": "Array of sequence objects",
124
+ "items": {
125
+ "type": "object",
126
+ "properties": {
127
+ "id": {
128
+ "type": "string",
129
+ "description": "Sequence ID"
130
+ },
131
+ "seq": {
132
+ "type": "string",
133
+ "description": "DNA/protein sequence"
134
+ },
135
+ "desc": {
136
+ "type": "string",
137
+ "description": "Sequence description"
138
+ },
139
+ "molecule": {
140
+ "type": "string",
141
+ "description": "Molecule type (dna, rna, protein)"
142
+ }
143
+ }
144
+ }
145
+ },
146
+ "sequence_id": {
147
+ "type": "string",
148
+ "description": "Input sequence ID"
149
+ }
150
+ }
151
+ },
152
+ "test_examples": [
153
+ {
154
+ "description": "Get genomic sequence for BRCA1 gene",
155
+ "input": {
156
+ "sequence_id": "ENSG00000012048",
157
+ "type": "genomic"
158
+ },
159
+ "expected_output": {
160
+ "status": "success",
161
+ "data": "Array with sequence object containing BRCA1 genomic sequence"
162
+ }
163
+ }
164
+ ],
165
+ "metadata": {
166
+ "tags": ["sequence", "dna", "genomic"],
167
+ "difficulty_level": "easy",
168
+ "estimated_execution_time": "< 3 seconds"
169
+ }
170
+ },
171
+ {
172
+ "type": "EnsemblGetVariants",
173
+ "name": "ensembl_get_variants",
174
+ "description": "Get genetic variants in a genomic region. Returns SNP and indel information.",
175
+ "parameter": {
176
+ "type": "object",
177
+ "properties": {
178
+ "region": {
179
+ "type": "string",
180
+ "description": "Genomic region in format 'chromosome:start-end' (e.g., '13:32315086-32400268')"
181
+ },
182
+ "species": {
183
+ "type": "string",
184
+ "description": "Species name",
185
+ "default": "homo_sapiens"
186
+ }
187
+ },
188
+ "required": ["region"]
189
+ },
190
+ "fields": {
191
+ "endpoint": "/overlap/region",
192
+ "return_format": "JSON"
193
+ },
194
+ "return_schema": {
195
+ "type": "object",
196
+ "description": "Ensembl variant data",
197
+ "properties": {
198
+ "status": {
199
+ "type": "string",
200
+ "description": "Status of the request"
201
+ },
202
+ "data": {
203
+ "type": "array",
204
+ "description": "Array of variant objects",
205
+ "items": {
206
+ "type": "object",
207
+ "properties": {
208
+ "id": {
209
+ "type": "string",
210
+ "description": "Variant ID"
211
+ },
212
+ "start": {
213
+ "type": "integer",
214
+ "description": "Variant start position"
215
+ },
216
+ "end": {
217
+ "type": "integer",
218
+ "description": "Variant end position"
219
+ },
220
+ "strand": {
221
+ "type": "integer",
222
+ "description": "Variant strand"
223
+ },
224
+ "allele_string": {
225
+ "type": "string",
226
+ "description": "Allele string (e.g., 'A/T')"
227
+ },
228
+ "consequence_type": {
229
+ "type": "string",
230
+ "description": "Variant consequence"
231
+ }
232
+ }
233
+ }
234
+ },
235
+ "region": {
236
+ "type": "string",
237
+ "description": "Input genomic region"
238
+ }
239
+ }
240
+ },
241
+ "test_examples": [
242
+ {
243
+ "description": "Get variants in BRCA1 region",
244
+ "input": {
245
+ "region": "13:32315086-32400268"
246
+ },
247
+ "expected_output": {
248
+ "status": "success",
249
+ "data": "Array of variant objects in BRCA1 region"
250
+ }
251
+ }
252
+ ],
253
+ "metadata": {
254
+ "tags": ["variants", "snp", "indel"],
255
+ "difficulty_level": "easy",
256
+ "estimated_execution_time": "< 2 seconds"
257
+ }
258
+ }
259
+ ]
@@ -0,0 +1,275 @@
1
+ [
2
+ {
3
+ "type": "FileDownloadTool",
4
+ "name": "download_file",
5
+ "description": "Download files from HTTP/HTTPS URLs with cross-platform support (Windows, Mac, Linux). Similar to curl but platform-independent. Can save to specified path or temporary directory.",
6
+ "fields": {
7
+ "return_key": "file_path"
8
+ },
9
+ "parameter": {
10
+ "type": "object",
11
+ "required": [
12
+ "url"
13
+ ],
14
+ "additionalProperties": false,
15
+ "properties": {
16
+ "url": {
17
+ "type": "string",
18
+ "description": "HTTP or HTTPS URL to download from (e.g., https://example.com/file.txt)",
19
+ "format": "uri"
20
+ },
21
+ "output_path": {
22
+ "type": "string",
23
+ "description": "Optional path to save the file. If not specified, file will be saved to system temp directory.",
24
+ "example": "/tmp/downloaded_file.txt or C:\\Users\\Downloads\\file.txt"
25
+ },
26
+ "timeout": {
27
+ "type": "integer",
28
+ "description": "Request timeout in seconds",
29
+ "minimum": 1,
30
+ "maximum": 300,
31
+ "default": 30
32
+ },
33
+ "return_content": {
34
+ "type": "boolean",
35
+ "description": "If true, return file content as text instead of saving to disk (default: false)",
36
+ "default": false
37
+ },
38
+ "chunk_size": {
39
+ "type": "integer",
40
+ "description": "Download chunk size in bytes (default: 8192)",
41
+ "minimum": 1024,
42
+ "maximum": 10485760,
43
+ "default": 8192
44
+ },
45
+ "follow_redirects": {
46
+ "type": "boolean",
47
+ "description": "Follow HTTP redirects (default: true)",
48
+ "default": true
49
+ }
50
+ }
51
+ },
52
+ "return_schema": {
53
+ "oneOf": [
54
+ {
55
+ "type": "object",
56
+ "description": "Successfully downloaded file",
57
+ "properties": {
58
+ "file_path": {
59
+ "type": "string",
60
+ "description": "Absolute path to the downloaded file"
61
+ },
62
+ "file_size": {
63
+ "type": "integer",
64
+ "description": "Size of the file in bytes"
65
+ },
66
+ "url": {
67
+ "type": "string",
68
+ "description": "Original URL that was downloaded"
69
+ },
70
+ "content_type": {
71
+ "type": "string",
72
+ "description": "MIME type of the downloaded content"
73
+ },
74
+ "status_code": {
75
+ "type": "integer",
76
+ "description": "HTTP status code"
77
+ }
78
+ }
79
+ },
80
+ {
81
+ "type": "object",
82
+ "description": "Returned content (when return_content=true)",
83
+ "properties": {
84
+ "content": {
85
+ "type": "string",
86
+ "description": "File content as text"
87
+ },
88
+ "content_type": {
89
+ "type": "string",
90
+ "description": "MIME type of the content"
91
+ },
92
+ "size": {
93
+ "type": "integer",
94
+ "description": "Size of content in characters"
95
+ },
96
+ "url": {
97
+ "type": "string",
98
+ "description": "Original URL"
99
+ }
100
+ }
101
+ },
102
+ {
103
+ "type": "object",
104
+ "description": "Error response",
105
+ "properties": {
106
+ "error": {
107
+ "type": "string",
108
+ "description": "Error message"
109
+ }
110
+ }
111
+ }
112
+ ]
113
+ }
114
+ },
115
+ {
116
+ "type": "BinaryDownloadTool",
117
+ "name": "download_binary_file",
118
+ "description": "Download binary files (images, videos, executables) with chunked streaming for better memory management. Optimized for large files.",
119
+ "fields": {
120
+ "return_key": "file_path"
121
+ },
122
+ "parameter": {
123
+ "type": "object",
124
+ "required": [
125
+ "url",
126
+ "output_path"
127
+ ],
128
+ "additionalProperties": false,
129
+ "properties": {
130
+ "url": {
131
+ "type": "string",
132
+ "description": "HTTP or HTTPS URL to download from",
133
+ "format": "uri"
134
+ },
135
+ "output_path": {
136
+ "type": "string",
137
+ "description": "Full path where to save the binary file (e.g., /tmp/image.jpg or C:\\Users\\Downloads\\video.mp4)",
138
+ "example": "/path/to/save/file.bin"
139
+ },
140
+ "chunk_size": {
141
+ "type": "integer",
142
+ "description": "Download chunk size in bytes (default: 1MB for binary files)",
143
+ "minimum": 1024,
144
+ "maximum": 10485760,
145
+ "default": 1048576
146
+ },
147
+ "timeout": {
148
+ "type": "integer",
149
+ "description": "Request timeout in seconds",
150
+ "minimum": 1,
151
+ "maximum": 300,
152
+ "default": 30
153
+ }
154
+ }
155
+ },
156
+ "return_schema": {
157
+ "oneOf": [
158
+ {
159
+ "type": "object",
160
+ "description": "Successfully downloaded binary file",
161
+ "properties": {
162
+ "file_path": {
163
+ "type": "string",
164
+ "description": "Absolute path to the downloaded file"
165
+ },
166
+ "size": {
167
+ "type": "integer",
168
+ "description": "Size of the file in bytes"
169
+ },
170
+ "content_type": {
171
+ "type": "string",
172
+ "description": "MIME type of the downloaded content"
173
+ },
174
+ "content_length": {
175
+ "type": "string",
176
+ "description": "Content-Length header value"
177
+ },
178
+ "url": {
179
+ "type": "string",
180
+ "description": "Original URL"
181
+ },
182
+ "status_code": {
183
+ "type": "integer",
184
+ "description": "HTTP status code"
185
+ }
186
+ }
187
+ },
188
+ {
189
+ "type": "object",
190
+ "description": "Error response",
191
+ "properties": {
192
+ "error": {
193
+ "type": "string",
194
+ "description": "Error message"
195
+ }
196
+ }
197
+ }
198
+ ]
199
+ }
200
+ },
201
+ {
202
+ "type": "TextDownloadTool",
203
+ "name": "download_text_content",
204
+ "description": "Download and return text content from URLs. Optimized for text files with automatic encoding detection.",
205
+ "fields": {
206
+ "return_key": "content"
207
+ },
208
+ "parameter": {
209
+ "type": "object",
210
+ "required": [
211
+ "url"
212
+ ],
213
+ "additionalProperties": false,
214
+ "properties": {
215
+ "url": {
216
+ "type": "string",
217
+ "description": "HTTP or HTTPS URL to download text from",
218
+ "format": "uri"
219
+ },
220
+ "encoding": {
221
+ "type": "string",
222
+ "description": "Text encoding (e.g., utf-8, latin1). Auto-detected if not specified.",
223
+ "example": "utf-8"
224
+ },
225
+ "timeout": {
226
+ "type": "integer",
227
+ "description": "Request timeout in seconds",
228
+ "minimum": 1,
229
+ "maximum": 300,
230
+ "default": 30
231
+ }
232
+ }
233
+ },
234
+ "return_schema": {
235
+ "oneOf": [
236
+ {
237
+ "type": "object",
238
+ "description": "Successfully downloaded text content",
239
+ "properties": {
240
+ "content": {
241
+ "type": "string",
242
+ "description": "Text content from the URL"
243
+ },
244
+ "encoding": {
245
+ "type": "string",
246
+ "description": "Detected or specified encoding"
247
+ },
248
+ "size": {
249
+ "type": "integer",
250
+ "description": "Size of content in characters"
251
+ },
252
+ "url": {
253
+ "type": "string",
254
+ "description": "Original URL"
255
+ },
256
+ "content_type": {
257
+ "type": "string",
258
+ "description": "MIME type of the content"
259
+ }
260
+ }
261
+ },
262
+ {
263
+ "type": "object",
264
+ "description": "Error response",
265
+ "properties": {
266
+ "error": {
267
+ "type": "string",
268
+ "description": "Error message"
269
+ }
270
+ }
271
+ }
272
+ ]
273
+ }
274
+ }
275
+ ]