universal-mcp-applications 0.1.19__py3-none-any.whl → 0.1.21__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 universal-mcp-applications might be problematic. Click here for more details.
- universal_mcp/applications/fireflies/app.py +109 -1
- universal_mcp/applications/google_drive/README.md +1 -1
- universal_mcp/applications/google_drive/app.py +22 -10
- universal_mcp/applications/google_sheet/app.py +130 -130
- universal_mcp/applications/scraper/app.py +219 -0
- universal_mcp/applications/unipile/app.py +257 -0
- universal_mcp/applications/yahoo_finance/README.md +17 -0
- universal_mcp/applications/yahoo_finance/__init__.py +1 -0
- universal_mcp/applications/yahoo_finance/app.py +258 -0
- universal_mcp/applications/youtube/app.py +16 -6
- {universal_mcp_applications-0.1.19.dist-info → universal_mcp_applications-0.1.21.dist-info}/METADATA +2 -1
- {universal_mcp_applications-0.1.19.dist-info → universal_mcp_applications-0.1.21.dist-info}/RECORD +14 -14
- universal_mcp/applications/replicate/README.md +0 -18
- universal_mcp/applications/replicate/__init__.py +0 -1
- universal_mcp/applications/replicate/app.py +0 -493
- {universal_mcp_applications-0.1.19.dist-info → universal_mcp_applications-0.1.21.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.19.dist-info → universal_mcp_applications-0.1.21.dist-info}/licenses/LICENSE +0 -0
|
@@ -175,8 +175,116 @@ class FirefliesApp(GraphQLApplication):
|
|
|
175
175
|
query_gql = gql("""
|
|
176
176
|
query Transcript($transcriptId: String!) {
|
|
177
177
|
transcript(id: $transcriptId) {
|
|
178
|
-
title
|
|
179
178
|
id
|
|
179
|
+
title
|
|
180
|
+
host_email
|
|
181
|
+
organizer_email
|
|
182
|
+
user {
|
|
183
|
+
user_id
|
|
184
|
+
email
|
|
185
|
+
name
|
|
186
|
+
num_transcripts
|
|
187
|
+
recent_meeting
|
|
188
|
+
minutes_consumed
|
|
189
|
+
is_admin
|
|
190
|
+
integrations
|
|
191
|
+
}
|
|
192
|
+
speakers {
|
|
193
|
+
id
|
|
194
|
+
name
|
|
195
|
+
}
|
|
196
|
+
transcript_url
|
|
197
|
+
participants
|
|
198
|
+
meeting_attendees {
|
|
199
|
+
displayName
|
|
200
|
+
email
|
|
201
|
+
phoneNumber
|
|
202
|
+
name
|
|
203
|
+
location
|
|
204
|
+
}
|
|
205
|
+
fireflies_users
|
|
206
|
+
duration
|
|
207
|
+
dateString
|
|
208
|
+
date
|
|
209
|
+
audio_url
|
|
210
|
+
video_url
|
|
211
|
+
sentences {
|
|
212
|
+
index
|
|
213
|
+
speaker_name
|
|
214
|
+
speaker_id
|
|
215
|
+
text
|
|
216
|
+
raw_text
|
|
217
|
+
start_time
|
|
218
|
+
end_time
|
|
219
|
+
ai_filters {
|
|
220
|
+
task
|
|
221
|
+
pricing
|
|
222
|
+
metric
|
|
223
|
+
question
|
|
224
|
+
date_and_time
|
|
225
|
+
text_cleanup
|
|
226
|
+
sentiment
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
calendar_id
|
|
230
|
+
summary {
|
|
231
|
+
action_items
|
|
232
|
+
keywords
|
|
233
|
+
outline
|
|
234
|
+
overview
|
|
235
|
+
shorthand_bullet
|
|
236
|
+
gist
|
|
237
|
+
bullet_gist
|
|
238
|
+
short_summary
|
|
239
|
+
short_overview
|
|
240
|
+
meeting_type
|
|
241
|
+
topics_discussed
|
|
242
|
+
transcript_chapters
|
|
243
|
+
}
|
|
244
|
+
meeting_info {
|
|
245
|
+
fred_joined
|
|
246
|
+
silent_meeting
|
|
247
|
+
summary_status
|
|
248
|
+
}
|
|
249
|
+
cal_id
|
|
250
|
+
calendar_type
|
|
251
|
+
apps_preview {
|
|
252
|
+
outputs {
|
|
253
|
+
transcript_id
|
|
254
|
+
user_id
|
|
255
|
+
app_id
|
|
256
|
+
created_at
|
|
257
|
+
title
|
|
258
|
+
prompt
|
|
259
|
+
response
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
meeting_link
|
|
263
|
+
analytics {
|
|
264
|
+
sentiments {
|
|
265
|
+
negative_pct
|
|
266
|
+
neutral_pct
|
|
267
|
+
positive_pct
|
|
268
|
+
}
|
|
269
|
+
categories {
|
|
270
|
+
questions
|
|
271
|
+
date_times
|
|
272
|
+
metrics
|
|
273
|
+
tasks
|
|
274
|
+
}
|
|
275
|
+
speakers {
|
|
276
|
+
speaker_id
|
|
277
|
+
name
|
|
278
|
+
duration
|
|
279
|
+
word_count
|
|
280
|
+
longest_monologue
|
|
281
|
+
monologues_count
|
|
282
|
+
filler_words
|
|
283
|
+
questions
|
|
284
|
+
duration_pct
|
|
285
|
+
words_per_minute
|
|
286
|
+
}
|
|
287
|
+
}
|
|
180
288
|
}
|
|
181
289
|
}
|
|
182
290
|
""")
|
|
@@ -10,7 +10,7 @@ This is automatically generated from OpenAPI schema for the GoogleDriveApp API.
|
|
|
10
10
|
| Tool | Description |
|
|
11
11
|
|------|-------------|
|
|
12
12
|
| `get_drive_info` | Fetches key user and storage quota information for the authenticated Google Drive account. This streamlined function offers a focused alternative to `get_about_info`, which queries the same endpoint but exposes all available API parameters, providing a simpler way to get essential account details. |
|
|
13
|
-
| `search_files` | Searches for files in Google Drive, allowing for powerful filtering, sorting, and pagination.
|
|
13
|
+
| `search_files` | Searches for files in Google Drive, allowing for powerful filtering, sorting, and pagination. |
|
|
14
14
|
| `create_text_file` | Creates a file in Google Drive using an in-memory text string. Unlike `upload_file_from_path`, which reads from a local file, this function first creates the file's metadata (name, parent) and then uploads the provided string content, returning the new file's complete metadata upon completion. |
|
|
15
15
|
| `upload_file_from_path` | Uploads a local file to Google Drive by reading its binary content from a path. It creates the file's metadata, uploads the content, and returns the new file's metadata. This differs from `create_text_file` which uses in-memory string content instead of a local file path. |
|
|
16
16
|
| `find_folder_id_by_name` | Searches for a non-trashed folder by its exact name, returning the ID of the first match. As a utility for `create_folder`, it resolves parent names to IDs and returns None if the folder isn't found or an API error occurs, logging the failure internally. |
|
|
@@ -67,23 +67,35 @@ class GoogleDriveApp(APIApplication):
|
|
|
67
67
|
return response.json()
|
|
68
68
|
|
|
69
69
|
def search_files(
|
|
70
|
-
self, page_size: int = 10,
|
|
70
|
+
self, page_size: int = 10, q: str | None = None, order_by: str | None = None
|
|
71
71
|
) -> dict[str, Any]:
|
|
72
72
|
"""
|
|
73
|
-
Searches for files in Google Drive, allowing for powerful filtering, sorting, and pagination.
|
|
74
|
-
|
|
73
|
+
Searches for files in Google Drive, allowing for powerful filtering, sorting, and pagination.
|
|
74
|
+
This streamlined function offers a more user-friendly alternative to the comprehensive search_files_advanced method, making it ideal for targeted queries like finding files by name, type, or parent folder.
|
|
75
|
+
|
|
75
76
|
Args:
|
|
76
77
|
page_size: Maximum number of files to return per page (default: 10)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
q: Optional search query string using **Google Drive query syntax**.
|
|
79
|
+
- You must specify a field (e.g., `name`, `fullText`, `mimeType`, `modifiedTime`, `parents`)
|
|
80
|
+
- Supported operators: `=`, `!=`, `<`, `<=`, `>`, `>=`, `contains`, `in`
|
|
81
|
+
- Combine conditions with `and` / `or`
|
|
82
|
+
- String values must be in single quotes `'...'`
|
|
83
|
+
|
|
84
|
+
Examples:
|
|
85
|
+
- "mimeType='application/pdf'"
|
|
86
|
+
- "name contains 'contract' or name contains 'agreement'"
|
|
87
|
+
- "fullText contains 'service' and mimeType!='application/vnd.google-apps.folder'"
|
|
88
|
+
|
|
89
|
+
order_by: Optional field name to sort results by, with optional direction
|
|
90
|
+
- e.g., "modifiedTime desc", "name asc"
|
|
91
|
+
|
|
80
92
|
Returns:
|
|
81
93
|
Dictionary containing a list of files and metadata, including 'files' array and optional 'nextPageToken' for pagination
|
|
82
|
-
|
|
94
|
+
|
|
83
95
|
Raises:
|
|
84
96
|
HTTPError: Raised when the API request fails or returns an error status code
|
|
85
97
|
RequestException: Raised when network connectivity issues occur during the API request
|
|
86
|
-
|
|
98
|
+
|
|
87
99
|
Tags:
|
|
88
100
|
list, files, search, google-drive, pagination, important
|
|
89
101
|
"""
|
|
@@ -91,8 +103,8 @@ class GoogleDriveApp(APIApplication):
|
|
|
91
103
|
params = {
|
|
92
104
|
"pageSize": page_size,
|
|
93
105
|
}
|
|
94
|
-
if
|
|
95
|
-
params["q"] =
|
|
106
|
+
if q:
|
|
107
|
+
params["q"] = q
|
|
96
108
|
if order_by:
|
|
97
109
|
params["orderBy"] = order_by
|
|
98
110
|
response = self._get(url, params=params)
|