universal-mcp 0.1.8rc3__py3-none-any.whl → 0.1.9rc1__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.
- universal_mcp/applications/__init__.py +7 -2
- universal_mcp/applications/ahrefs/README.md +76 -0
- universal_mcp/applications/ahrefs/__init__.py +0 -0
- universal_mcp/applications/ahrefs/app.py +2291 -0
- universal_mcp/applications/application.py +202 -87
- universal_mcp/applications/cal_com_v2/README.md +175 -0
- universal_mcp/applications/cal_com_v2/__init__.py +0 -0
- universal_mcp/applications/cal_com_v2/app.py +4735 -0
- universal_mcp/applications/calendly/app.py +0 -12
- universal_mcp/applications/clickup/README.md +160 -0
- universal_mcp/applications/clickup/__init__.py +0 -0
- universal_mcp/applications/clickup/app.py +4359 -0
- universal_mcp/applications/coda/app.py +0 -33
- universal_mcp/applications/e2b/app.py +2 -28
- universal_mcp/applications/figma/README.md +74 -0
- universal_mcp/applications/figma/__init__.py +0 -0
- universal_mcp/applications/figma/app.py +1261 -0
- universal_mcp/applications/firecrawl/app.py +2 -32
- universal_mcp/applications/google_calendar/app.py +0 -11
- universal_mcp/applications/google_docs/app.py +0 -18
- universal_mcp/applications/google_drive/app.py +0 -17
- universal_mcp/applications/google_mail/app.py +0 -16
- universal_mcp/applications/google_sheet/app.py +0 -18
- universal_mcp/applications/hashnode/app.py +77 -0
- universal_mcp/applications/hashnode/prompt.md +21 -0
- universal_mcp/applications/mailchimp/README.md +306 -0
- universal_mcp/applications/mailchimp/__init__.py +0 -0
- universal_mcp/applications/mailchimp/app.py +8883 -0
- universal_mcp/applications/markitdown/app.py +2 -2
- universal_mcp/applications/perplexity/app.py +0 -35
- universal_mcp/applications/replicate/README.md +53 -0
- universal_mcp/applications/replicate/app.py +969 -0
- universal_mcp/applications/resend/app.py +0 -18
- universal_mcp/applications/retell_ai/README.md +46 -0
- universal_mcp/applications/retell_ai/__init__.py +0 -0
- universal_mcp/applications/retell_ai/app.py +316 -0
- universal_mcp/applications/rocketlane/README.md +42 -0
- universal_mcp/applications/rocketlane/__init__.py +0 -0
- universal_mcp/applications/rocketlane/app.py +180 -0
- universal_mcp/applications/serpapi/app.py +2 -28
- universal_mcp/applications/spotify/README.md +116 -0
- universal_mcp/applications/spotify/__init__.py +0 -0
- universal_mcp/applications/spotify/app.py +2231 -0
- universal_mcp/applications/supabase/README.md +112 -0
- universal_mcp/applications/supabase/__init__.py +0 -0
- universal_mcp/applications/supabase/app.py +2644 -0
- universal_mcp/applications/tavily/app.py +0 -20
- universal_mcp/applications/wrike/app.py +0 -12
- universal_mcp/applications/youtube/app.py +0 -18
- universal_mcp/integrations/agentr.py +27 -4
- universal_mcp/integrations/integration.py +14 -6
- universal_mcp/servers/server.py +3 -6
- universal_mcp/stores/store.py +7 -0
- universal_mcp/tools/tools.py +2 -2
- universal_mcp/utils/docstring_parser.py +171 -104
- universal_mcp/utils/installation.py +199 -8
- {universal_mcp-0.1.8rc3.dist-info → universal_mcp-0.1.9rc1.dist-info}/METADATA +2 -1
- universal_mcp-0.1.9rc1.dist-info/RECORD +106 -0
- universal_mcp-0.1.8rc3.dist-info/RECORD +0 -75
- {universal_mcp-0.1.8rc3.dist-info → universal_mcp-0.1.9rc1.dist-info}/WHEEL +0 -0
- {universal_mcp-0.1.8rc3.dist-info → universal_mcp-0.1.9rc1.dist-info}/entry_points.txt +0 -0
@@ -29,7 +29,7 @@ def create_file_if_not_exists(path: Path) -> None:
|
|
29
29
|
|
30
30
|
def get_supported_apps() -> list[str]:
|
31
31
|
"""Get list of supported apps"""
|
32
|
-
return ["claude", "cursor", "windsurf"]
|
32
|
+
return ["claude", "cursor", "cline", "continue", "goose", "windsurf", "zed"]
|
33
33
|
|
34
34
|
|
35
35
|
def install_claude(api_key: str) -> None:
|
@@ -99,21 +99,212 @@ def install_cursor(api_key: str) -> None:
|
|
99
99
|
print("[green]✓[/green] Cursor configuration installed successfully")
|
100
100
|
|
101
101
|
|
102
|
-
def
|
102
|
+
def install_cline(api_key: str) -> None:
|
103
|
+
"""Install Cline"""
|
104
|
+
print("[bold blue]Installing Cline configuration...[/bold blue]")
|
105
|
+
# Set up Cline config path
|
106
|
+
config_path = Path.home() / ".config/cline/mcp.json"
|
107
|
+
|
108
|
+
# Create config directory if it doesn't exist
|
109
|
+
create_file_if_not_exists(config_path)
|
110
|
+
|
111
|
+
try:
|
112
|
+
config = json.loads(config_path.read_text())
|
113
|
+
except json.JSONDecodeError:
|
114
|
+
print(
|
115
|
+
"[yellow]Config file was empty or invalid, creating new configuration[/yellow]"
|
116
|
+
)
|
117
|
+
config = {}
|
118
|
+
|
119
|
+
if "mcpServers" not in config:
|
120
|
+
config["mcpServers"] = {}
|
121
|
+
config["mcpServers"]["universal_mcp"] = {
|
122
|
+
"command": get_uvx_path(),
|
123
|
+
"args": ["universal_mcp[all]@latest", "run"],
|
124
|
+
"env": {"AGENTR_API_KEY": api_key},
|
125
|
+
}
|
126
|
+
|
127
|
+
with open(config_path, "w") as f:
|
128
|
+
json.dump(config, f, indent=4)
|
129
|
+
print("[green]✓[/green] Cline configuration installed successfully")
|
130
|
+
|
131
|
+
|
132
|
+
def install_continue(api_key: str) -> None:
|
133
|
+
"""Install Continue"""
|
134
|
+
print("[bold blue]Installing Continue configuration...[/bold blue]")
|
135
|
+
|
136
|
+
# Determine platform-specific config path
|
137
|
+
if sys.platform == "darwin": # macOS
|
138
|
+
config_path = Path.home() / "Library/Application Support/Continue/mcp.json"
|
139
|
+
elif sys.platform == "win32": # Windows
|
140
|
+
config_path = Path.home() / "AppData/Roaming/Continue/mcp.json"
|
141
|
+
else: # Linux and others
|
142
|
+
config_path = Path.home() / ".config/continue/mcp.json"
|
143
|
+
|
144
|
+
# Create config directory if it doesn't exist
|
145
|
+
create_file_if_not_exists(config_path)
|
146
|
+
|
147
|
+
try:
|
148
|
+
config = json.loads(config_path.read_text())
|
149
|
+
except json.JSONDecodeError:
|
150
|
+
print(
|
151
|
+
"[yellow]Config file was empty or invalid, creating new configuration[/yellow]"
|
152
|
+
)
|
153
|
+
config = {}
|
154
|
+
|
155
|
+
if "mcpServers" not in config:
|
156
|
+
config["mcpServers"] = {}
|
157
|
+
config["mcpServers"]["universal_mcp"] = {
|
158
|
+
"command": get_uvx_path(),
|
159
|
+
"args": ["universal_mcp[all]@latest", "run"],
|
160
|
+
"env": {"AGENTR_API_KEY": api_key},
|
161
|
+
}
|
162
|
+
|
163
|
+
with open(config_path, "w") as f:
|
164
|
+
json.dump(config, f, indent=4)
|
165
|
+
print("[green]✓[/green] Continue configuration installed successfully")
|
166
|
+
|
167
|
+
|
168
|
+
def install_goose(api_key: str) -> None:
|
169
|
+
"""Install Goose"""
|
170
|
+
print("[bold blue]Installing Goose configuration...[/bold blue]")
|
171
|
+
|
172
|
+
# Determine platform-specific config path
|
173
|
+
if sys.platform == "darwin": # macOS
|
174
|
+
config_path = Path.home() / "Library/Application Support/Goose/mcp-config.json"
|
175
|
+
elif sys.platform == "win32": # Windows
|
176
|
+
config_path = Path.home() / "AppData/Roaming/Goose/mcp-config.json"
|
177
|
+
else: # Linux and others
|
178
|
+
config_path = Path.home() / ".config/goose/mcp-config.json"
|
179
|
+
|
180
|
+
# Create config directory if it doesn't exist
|
181
|
+
create_file_if_not_exists(config_path)
|
182
|
+
|
183
|
+
try:
|
184
|
+
config = json.loads(config_path.read_text())
|
185
|
+
except json.JSONDecodeError:
|
186
|
+
print(
|
187
|
+
"[yellow]Config file was empty or invalid, creating new configuration[/yellow]"
|
188
|
+
)
|
189
|
+
config = {}
|
190
|
+
|
191
|
+
if "mcpServers" not in config:
|
192
|
+
config["mcpServers"] = {}
|
193
|
+
config["mcpServers"]["universal_mcp"] = {
|
194
|
+
"command": get_uvx_path(),
|
195
|
+
"args": ["universal_mcp[all]@latest", "run"],
|
196
|
+
"env": {"AGENTR_API_KEY": api_key},
|
197
|
+
}
|
198
|
+
|
199
|
+
with open(config_path, "w") as f:
|
200
|
+
json.dump(config, f, indent=4)
|
201
|
+
print("[green]✓[/green] Goose configuration installed successfully")
|
202
|
+
|
203
|
+
|
204
|
+
def install_windsurf(api_key: str) -> None:
|
103
205
|
"""Install Windsurf"""
|
104
|
-
print("[
|
105
|
-
|
206
|
+
print("[bold blue]Installing Windsurf configuration...[/bold blue]")
|
207
|
+
|
208
|
+
# Determine platform-specific config path
|
209
|
+
if sys.platform == "darwin": # macOS
|
210
|
+
config_path = Path.home() / "Library/Application Support/Windsurf/mcp.json"
|
211
|
+
elif sys.platform == "win32": # Windows
|
212
|
+
config_path = Path.home() / "AppData/Roaming/Windsurf/mcp.json"
|
213
|
+
else: # Linux and others
|
214
|
+
config_path = Path.home() / ".config/windsurf/mcp.json"
|
215
|
+
|
216
|
+
# Create config directory if it doesn't exist
|
217
|
+
create_file_if_not_exists(config_path)
|
218
|
+
|
219
|
+
try:
|
220
|
+
config = json.loads(config_path.read_text())
|
221
|
+
except json.JSONDecodeError:
|
222
|
+
print(
|
223
|
+
"[yellow]Config file was empty or invalid, creating new configuration[/yellow]"
|
224
|
+
)
|
225
|
+
config = {}
|
226
|
+
|
227
|
+
if "mcpServers" not in config:
|
228
|
+
config["mcpServers"] = {}
|
229
|
+
config["mcpServers"]["universal_mcp"] = {
|
230
|
+
"command": get_uvx_path(),
|
231
|
+
"args": ["universal_mcp[all]@latest", "run"],
|
232
|
+
"env": {"AGENTR_API_KEY": api_key},
|
233
|
+
}
|
234
|
+
|
235
|
+
with open(config_path, "w") as f:
|
236
|
+
json.dump(config, f, indent=4)
|
237
|
+
print("[green]✓[/green] Windsurf configuration installed successfully")
|
238
|
+
|
239
|
+
|
240
|
+
def install_zed(api_key: str) -> None:
|
241
|
+
"""Install Zed"""
|
242
|
+
print("[bold blue]Installing Zed configuration...[/bold blue]")
|
243
|
+
|
244
|
+
# Set up Zed config path
|
245
|
+
config_dir = Path.home() / ".config/zed"
|
246
|
+
config_path = config_dir / "mcp_servers.json"
|
247
|
+
|
248
|
+
# Create config directory if it doesn't exist
|
249
|
+
create_file_if_not_exists(config_path)
|
250
|
+
|
251
|
+
try:
|
252
|
+
config = json.loads(config_path.read_text())
|
253
|
+
except json.JSONDecodeError:
|
254
|
+
print(
|
255
|
+
"[yellow]Config file was empty or invalid, creating new configuration[/yellow]"
|
256
|
+
)
|
257
|
+
config = {}
|
258
|
+
|
259
|
+
if not isinstance(config, list):
|
260
|
+
config = []
|
261
|
+
|
262
|
+
# Check if universal_mcp is already in the config
|
263
|
+
existing_config = False
|
264
|
+
for server in config:
|
265
|
+
if server.get("name") == "universal_mcp":
|
266
|
+
existing_config = True
|
267
|
+
server.update(
|
268
|
+
{
|
269
|
+
"command": get_uvx_path(),
|
270
|
+
"args": ["universal_mcp[all]@latest", "run"],
|
271
|
+
"env": {"AGENTR_API_KEY": api_key},
|
272
|
+
}
|
273
|
+
)
|
274
|
+
break
|
275
|
+
|
276
|
+
if not existing_config:
|
277
|
+
config.append(
|
278
|
+
{
|
279
|
+
"name": "universal_mcp",
|
280
|
+
"command": get_uvx_path(),
|
281
|
+
"args": ["universal_mcp[all]@latest", "run"],
|
282
|
+
"env": {"AGENTR_API_KEY": api_key},
|
283
|
+
}
|
284
|
+
)
|
285
|
+
|
286
|
+
with open(config_path, "w") as f:
|
287
|
+
json.dump(config, f, indent=4)
|
288
|
+
print("[green]✓[/green] Zed configuration installed successfully")
|
106
289
|
|
107
290
|
|
108
|
-
def install_app(app_name: str) -> None:
|
291
|
+
def install_app(app_name: str, api_key: str) -> None:
|
109
292
|
"""Install an app"""
|
110
293
|
print(f"[bold]Installing {app_name}...[/bold]")
|
111
294
|
if app_name == "claude":
|
112
|
-
install_claude()
|
295
|
+
install_claude(api_key)
|
113
296
|
elif app_name == "cursor":
|
114
|
-
install_cursor()
|
297
|
+
install_cursor(api_key)
|
298
|
+
elif app_name == "cline":
|
299
|
+
install_cline(api_key)
|
300
|
+
elif app_name == "continue":
|
301
|
+
install_continue(api_key)
|
302
|
+
elif app_name == "goose":
|
303
|
+
install_goose(api_key)
|
115
304
|
elif app_name == "windsurf":
|
116
|
-
install_windsurf()
|
305
|
+
install_windsurf(api_key)
|
306
|
+
elif app_name == "zed":
|
307
|
+
install_zed(api_key)
|
117
308
|
else:
|
118
309
|
print(f"[red]Error: App '{app_name}' not supported[/red]")
|
119
310
|
raise ValueError(f"App '{app_name}' not supported")
|
@@ -1,9 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: universal-mcp
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.9rc1
|
4
4
|
Summary: Universal MCP acts as a middle ware for your API applications. It can store your credentials, authorize, enable disable apps on the fly and much more.
|
5
5
|
Author-email: Manoj Bajaj <manojbajaj95@gmail.com>
|
6
6
|
Requires-Python: >=3.11
|
7
|
+
Requires-Dist: gql[all]>=3.5.2
|
7
8
|
Requires-Dist: keyring>=25.6.0
|
8
9
|
Requires-Dist: litellm>=1.30.7
|
9
10
|
Requires-Dist: loguru>=0.7.3
|
@@ -0,0 +1,106 @@
|
|
1
|
+
universal_mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
universal_mcp/analytics.py,sha256=aGCg0Okpcy06W70qCA9I8_ySOiCgAtzJAIWAdhBsOeA,2212
|
3
|
+
universal_mcp/cli.py,sha256=DG-Qxc5vQIdbhAIQuU7bKKJuRGzwyOigjfCKSWBRhBI,5258
|
4
|
+
universal_mcp/config.py,sha256=sJaPI4q51CDPPG0z32rMJiE7a64eaa9nxbjJgYnaFA4,838
|
5
|
+
universal_mcp/exceptions.py,sha256=WApedvzArNujD0gZfUofYBxjQo97ZDJLqDibtLWZoRk,373
|
6
|
+
universal_mcp/logger.py,sha256=D947u1roUf6WqlcEsPpvmWDqGc8L41qF3MO1suK5O1Q,308
|
7
|
+
universal_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
universal_mcp/applications/__init__.py,sha256=7s5c2j3Cbgdmqp7J1QKdehUQmlzSE0NLfkDE1U8Dl1A,825
|
9
|
+
universal_mcp/applications/application.py,sha256=Q_DSnvYCgoZH6gS8M1FtrrOetOTXI6bIaKPjgUgQJVA,8240
|
10
|
+
universal_mcp/applications/ahrefs/README.md,sha256=bQQ5AmPFxM52gL-tllIFWC_64f7KYkBiD1tYfdTwDu4,5370
|
11
|
+
universal_mcp/applications/ahrefs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
+
universal_mcp/applications/ahrefs/app.py,sha256=8iYYmQ5bD6nd_JmHOk4bcEPqG162FtQ14WrnJPeTrBQ,91468
|
13
|
+
universal_mcp/applications/cal_com_v2/README.md,sha256=iSgL5yZygDTV19Kh6me7mqaDyjO88Ka9TjE5rDrT8x4,20773
|
14
|
+
universal_mcp/applications/cal_com_v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
+
universal_mcp/applications/cal_com_v2/app.py,sha256=68o-10yoMCwb1iwzBPTm3kYyHYXktzeGaTnK3j7MKLw,234189
|
16
|
+
universal_mcp/applications/calendly/README.md,sha256=85m3XXLPhQ99oghl8SeazCZ2fjBR81-f1y_mjjhx2B0,5911
|
17
|
+
universal_mcp/applications/calendly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
|
+
universal_mcp/applications/calendly/app.py,sha256=ANuUfiXBwDZjQC-xfB06JoVu5ebQPEy12COBO5LY3DI,49874
|
19
|
+
universal_mcp/applications/clickup/README.md,sha256=A7q0j9IXm2jKBxGtWa4SUuTYF5_nJYEht4xeIbKhLHI,15482
|
20
|
+
universal_mcp/applications/clickup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
+
universal_mcp/applications/clickup/app.py,sha256=_K5ZyMY3R8Ha88xvhh6xxbCsWRGr12j_of6FRrG9WVE,206947
|
22
|
+
universal_mcp/applications/coda/README.md,sha256=4i6o_R-qtTuxfS1A7VoIb8_85FHAj-WVb8YG5fNvwL4,11411
|
23
|
+
universal_mcp/applications/coda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
|
+
universal_mcp/applications/coda/app.py,sha256=47ZmtYF5A2Cn0rh3Dpc3VtkIHR1Xu2PCYe1JDH8kJbY,155862
|
25
|
+
universal_mcp/applications/e2b/README.md,sha256=S4lTp-vEZ8VTCKPXqjUXu5nYlUMAF8lw8CQyBGPgxjs,700
|
26
|
+
universal_mcp/applications/e2b/app.py,sha256=4cMuGHm_QY4uh0JMh3HYzhaqtnfnXajRKFhoAGmRnBE,2252
|
27
|
+
universal_mcp/applications/figma/README.md,sha256=qA9UMf5PsPhfJrnteGVQOudhLuevwZ4-D_1xM6gAjgQ,4393
|
28
|
+
universal_mcp/applications/figma/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
+
universal_mcp/applications/figma/app.py,sha256=sr-ednZinHdIcXmDWuWAA_Ri21iBbAYPRZ0-uLeiEkM,50392
|
30
|
+
universal_mcp/applications/firecrawl/README.md,sha256=KAWe_TQbrc9eA6bSyde5dapMP1CNvarVItV_YJH3d_0,1430
|
31
|
+
universal_mcp/applications/firecrawl/app.py,sha256=qO3XNH9nT2G-9yC1eN4ADZJCE_bxF0qQ3S_qtYoOa2o,8902
|
32
|
+
universal_mcp/applications/github/README.md,sha256=6ID-__gUJ5ZxzAS_OjzmoUAag1LamSvEB75DHcj3m-g,1294
|
33
|
+
universal_mcp/applications/github/app.py,sha256=73Y5ceM2BGRcLUO__xO0RO1NNf6Gf3ROtqTlFI5k0Fg,18162
|
34
|
+
universal_mcp/applications/google_calendar/app.py,sha256=o2Mtto4zOIDtCUdXdEgXWhWsKRfzbHC7DAUuvyjUei4,19342
|
35
|
+
universal_mcp/applications/google_docs/README.md,sha256=SyOgJG-XU0FXhrVukvg9mxwin73mpqaCOT6rDJ64Klk,909
|
36
|
+
universal_mcp/applications/google_docs/app.py,sha256=f31nJ3tr9XF-1AbRI3DNVXgMXT4Y33gWMRlBoA-t630,3436
|
37
|
+
universal_mcp/applications/google_drive/README.md,sha256=YlN8IT12oO8zVMib1MlTYRBGNP7rzW_KyVAZyyxKvME,1192
|
38
|
+
universal_mcp/applications/google_drive/app.py,sha256=4cJYvT_RSlqL2Vfm4cbrxJYl58gHWdNytVAQVu1amY8,11253
|
39
|
+
universal_mcp/applications/google_mail/README.md,sha256=LL6TjjmwEqyuRVvIfCh-I_PlWp9ciCZOdJC0LafGZYc,1185
|
40
|
+
universal_mcp/applications/google_mail/app.py,sha256=1XI1hve2FXOqkzgJNYu2ki5J1yGKfeMx3cO_Qyflp_o,27286
|
41
|
+
universal_mcp/applications/google_sheet/README.md,sha256=yW1b_qlb_pbIJzCxZc58581kKzC5vyP8Mj4iwXgidtQ,1108
|
42
|
+
universal_mcp/applications/google_sheet/app.py,sha256=O6g8P697ve93CsljLK9ejWbIyzGbZ-_ThK_A_3cTpIk,6310
|
43
|
+
universal_mcp/applications/hashnode/app.py,sha256=TGfJmumJGOkS_M0QONWHR0dcBmrHcsWslJYsUvxjj7A,2286
|
44
|
+
universal_mcp/applications/hashnode/prompt.md,sha256=RTXicHP_JrI9pMoMf6oay0OxkJUI1yBWyMGCYP6X7xE,1651
|
45
|
+
universal_mcp/applications/mailchimp/README.md,sha256=9p7rVwf0aX2lClVeMliUz8rFWtXNhi55AAKj3hbHSng,33688
|
46
|
+
universal_mcp/applications/mailchimp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
+
universal_mcp/applications/mailchimp/app.py,sha256=Qg8GupbjKMueThLVtUi-_6Xh0qzIKvv531XDLPj6zKI,453966
|
48
|
+
universal_mcp/applications/markitdown/app.py,sha256=FeJONdT-Jwe5mJBelOfgpM1A3T-hIDfFGf1PCR5x1gA,1832
|
49
|
+
universal_mcp/applications/notion/README.md,sha256=45NmPOmSQv99qBvWdwmnV5vbaYc9_8vq8I-FA7veVAA,2600
|
50
|
+
universal_mcp/applications/notion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
|
+
universal_mcp/applications/notion/app.py,sha256=nc-p531L-L6gMFqOOkYu5Irn9SReWAYRmJ8ZOIv5LrQ,20834
|
52
|
+
universal_mcp/applications/perplexity/README.md,sha256=QGV1iReH5p-Np7vvkZsVHxxDKQ0YaitHEwomNmGEyQs,732
|
53
|
+
universal_mcp/applications/perplexity/app.py,sha256=WAFDLH6jkH5eo9LLQfD_MRhpJdgZgHXchqs_ARJe3oI,2633
|
54
|
+
universal_mcp/applications/reddit/README.md,sha256=YVbJ1RN6NWlB-P6w2LxCk_DuUWl7mwaKZScY-mIMnNc,1271
|
55
|
+
universal_mcp/applications/reddit/app.py,sha256=Jd-Pr-IMhROun82kuLf0mNJ3P-LDfGfvj1bn_8qNIAI,15748
|
56
|
+
universal_mcp/applications/replicate/README.md,sha256=9ZT3LPpsSG_SSyAJhw0Y60NhynmWoxSttmDkJyCsT9I,4415
|
57
|
+
universal_mcp/applications/replicate/app.py,sha256=CkvUjWAWxp06WE_H8CEQkUfj6bwUDUMuWYdu0XXNR5c,39674
|
58
|
+
universal_mcp/applications/resend/README.md,sha256=k-sb2UwbFvDPEz6qQPLWd2cJj8hDx5f3NW7dz2jAfjI,719
|
59
|
+
universal_mcp/applications/resend/app.py,sha256=dWhijrx73hw2OLMAC01keVj7hVgu4CUZsURyRjxD7ew,1370
|
60
|
+
universal_mcp/applications/retell_ai/README.md,sha256=XKBvMeA-wQAZYGMXogWMyvcqclhLGVnK72G4q2ZdfVM,1882
|
61
|
+
universal_mcp/applications/retell_ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
+
universal_mcp/applications/retell_ai/app.py,sha256=Ux0XuH65Y51CPgInfLZxGMLRdfATd31yMptcusUk-BA,13601
|
63
|
+
universal_mcp/applications/rocketlane/README.md,sha256=WtWkCt5nRN-SESaQXpYxgZwGEcxOXIcn9aQB7dDY8vM,1245
|
64
|
+
universal_mcp/applications/rocketlane/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
65
|
+
universal_mcp/applications/rocketlane/app.py,sha256=ZjqpgyT059Z8wlXCcz5WOiU37VjXImSOplyx-bhDhgk,6875
|
66
|
+
universal_mcp/applications/serpapi/README.md,sha256=hX4VeT2iL_67ZsMhKd60DAujQCh9K3IdHroHIq808RY,691
|
67
|
+
universal_mcp/applications/serpapi/app.py,sha256=krx9STkJI0vLarXo34emySv3fs9o9lmQ2qfjWbzxtg4,2918
|
68
|
+
universal_mcp/applications/spotify/README.md,sha256=iT8nx2_1jcpNqf6Xn3E0-oxmimg1Z1CYFAJg9qNR_4g,9626
|
69
|
+
universal_mcp/applications/spotify/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
70
|
+
universal_mcp/applications/spotify/app.py,sha256=Lk-zLUAleiTNhEIBSdePGbNoBwxPnEz7pyBafwk6Zyo,104644
|
71
|
+
universal_mcp/applications/supabase/README.md,sha256=CqCTwOGJWwOgwPQSblgUxYMWHBn5jZn6gOxB568sVrs,9743
|
72
|
+
universal_mcp/applications/supabase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
|
+
universal_mcp/applications/supabase/app.py,sha256=Dp1pMdKgJyFIx8iIxhUFUMmCET1knNiWrawsnRe-01g,135495
|
74
|
+
universal_mcp/applications/tavily/README.md,sha256=cNg4EwX5wBbkDpPtNBNC3A_GxglfSVhdAJuweSrXN20,721
|
75
|
+
universal_mcp/applications/tavily/app.py,sha256=rU9IRyhzYkchjs8rqQMU89hkBQy13W8yeQqpQhPCCFA,1924
|
76
|
+
universal_mcp/applications/wrike/README.md,sha256=4EHVPlA8B_dzTA1-HQQqp89z6QL37RTyD2l6DD7vG9E,5156
|
77
|
+
universal_mcp/applications/wrike/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
|
+
universal_mcp/applications/wrike/app.py,sha256=j0sfbVaRSBoWN0dnpscifg_mwwSsKulX6dy-2ac3R68,60259
|
79
|
+
universal_mcp/applications/youtube/README.md,sha256=NHqIm6QvXQK7I2oZ8hUwfjLDS4_eSK9NPeFbuGIbmhg,5405
|
80
|
+
universal_mcp/applications/youtube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
81
|
+
universal_mcp/applications/youtube/app.py,sha256=EQgeLNJS8Spm8xB82hSIBANJ4HR2-ktcurgW9Cn_ebU,56885
|
82
|
+
universal_mcp/applications/zenquotes/README.md,sha256=wA3hjqjrkrczQaffpwyolSKq6gXmkLgeHx6_EQrYEOY,709
|
83
|
+
universal_mcp/applications/zenquotes/app.py,sha256=xp_nlW4LFi0Mw1GRWIde4k8eexXUJx1wNqNExJ0oeKA,1085
|
84
|
+
universal_mcp/integrations/README.md,sha256=lTAPXO2nivcBe1q7JT6PRa6v9Ns_ZersQMIdw-nmwEA,996
|
85
|
+
universal_mcp/integrations/__init__.py,sha256=YY8Uw0XGNUpAQ1j-qgCOrwHTcuSew4W92cEtYXMxry4,963
|
86
|
+
universal_mcp/integrations/agentr.py,sha256=Bap4PA2-K4BkBhscgAVsBdvXNN19dkuCLO82sQFRvUM,3952
|
87
|
+
universal_mcp/integrations/integration.py,sha256=imzxq1jZJAjq9odF6ttCUS2-yQW7qqG8NNUj1LudT9U,9986
|
88
|
+
universal_mcp/servers/__init__.py,sha256=dDtvvMzbWskABlobTZHztrWMb3hbzgidza3BmEmIAD8,474
|
89
|
+
universal_mcp/servers/server.py,sha256=g2BJklnkPiO1yX9G1CQdRjb-bs_mg9NGYgPKgiKHEyg,7953
|
90
|
+
universal_mcp/stores/__init__.py,sha256=quvuwhZnpiSLuojf0NfmBx2xpaCulv3fbKtKaSCEmuM,603
|
91
|
+
universal_mcp/stores/store.py,sha256=-yCedzDQafYvQh17RjTPzUwXdjyOOO_0UP_QmAqeClE,6913
|
92
|
+
universal_mcp/tools/__init__.py,sha256=hVL-elJLwD_K87Gpw_s2_o43sQRPyRNOnxlzt0_Pfn8,72
|
93
|
+
universal_mcp/tools/adapters.py,sha256=2HvpyFiI0zg9dp0XshnG7t6KrVqFHM7hgtmgY1bsHN0,927
|
94
|
+
universal_mcp/tools/func_metadata.py,sha256=f_5LdDNsOu1DpXvDUeZYiJswVmwGZz6IMPtpJJ5B2-Y,7975
|
95
|
+
universal_mcp/tools/tools.py,sha256=PbvTi8A1hT7F8UXiiP291aP_oZmIPBfhfcgqR8XeSqo,12978
|
96
|
+
universal_mcp/utils/__init__.py,sha256=8wi4PGWu-SrFjNJ8U7fr2iFJ1ktqlDmSKj1xYd7KSDc,41
|
97
|
+
universal_mcp/utils/api_generator.py,sha256=-wRBpLVfJQXy1R-8FpDNs6b8_eeekVDuPc_uwjSGgiY,8883
|
98
|
+
universal_mcp/utils/docgen.py,sha256=yGBcBIr7dz3mNMGrCb_-JFsDf-ShmCKWWiPpuEj2SIU,21878
|
99
|
+
universal_mcp/utils/docstring_parser.py,sha256=UU_PzE4nYTPNWNJhVS4t-uvFiA3IL-zK-_H6rSerCOI,10976
|
100
|
+
universal_mcp/utils/dump_app_tools.py,sha256=9bQePJ4ZKzGtcIYrBgLxbKDOZmL7ajIAHhXljT_AlyA,2041
|
101
|
+
universal_mcp/utils/installation.py,sha256=KPBojDlt2YfFY2DfJ9pUr5evFJ9QQGp99KQUsRkz9GQ,10235
|
102
|
+
universal_mcp/utils/openapi.py,sha256=AgmcyntPyovic2mRqr-a7P4kEc7hU-yk9gRVIsO4078,20673
|
103
|
+
universal_mcp-0.1.9rc1.dist-info/METADATA,sha256=478HydebTfGc-zWDh_7tfhUqPQKDqP_Gfd6BcWnra-s,11302
|
104
|
+
universal_mcp-0.1.9rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
105
|
+
universal_mcp-0.1.9rc1.dist-info/entry_points.txt,sha256=QlBrVKmA2jIM0q-C-3TQMNJTTWOsOFQvgedBq2rZTS8,56
|
106
|
+
universal_mcp-0.1.9rc1.dist-info/RECORD,,
|
@@ -1,75 +0,0 @@
|
|
1
|
-
universal_mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
universal_mcp/analytics.py,sha256=aGCg0Okpcy06W70qCA9I8_ySOiCgAtzJAIWAdhBsOeA,2212
|
3
|
-
universal_mcp/cli.py,sha256=DG-Qxc5vQIdbhAIQuU7bKKJuRGzwyOigjfCKSWBRhBI,5258
|
4
|
-
universal_mcp/config.py,sha256=sJaPI4q51CDPPG0z32rMJiE7a64eaa9nxbjJgYnaFA4,838
|
5
|
-
universal_mcp/exceptions.py,sha256=WApedvzArNujD0gZfUofYBxjQo97ZDJLqDibtLWZoRk,373
|
6
|
-
universal_mcp/logger.py,sha256=D947u1roUf6WqlcEsPpvmWDqGc8L41qF3MO1suK5O1Q,308
|
7
|
-
universal_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
universal_mcp/applications/__init__.py,sha256=qeWnbdIudyMR7ST4XTc0gpEM9o6TsM1ZnZ92dMAPSBA,754
|
9
|
-
universal_mcp/applications/application.py,sha256=lH5aIb0pip2Pa3vXm8_IbEPNfgehKxkV0OJ0O6f4NWE,3928
|
10
|
-
universal_mcp/applications/calendly/README.md,sha256=85m3XXLPhQ99oghl8SeazCZ2fjBR81-f1y_mjjhx2B0,5911
|
11
|
-
universal_mcp/applications/calendly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
-
universal_mcp/applications/calendly/app.py,sha256=5IoPc-1kkPsAoWk2jwy-oM5iw9dEtkL4wfpupUZ0pf4,50293
|
13
|
-
universal_mcp/applications/coda/README.md,sha256=4i6o_R-qtTuxfS1A7VoIb8_85FHAj-WVb8YG5fNvwL4,11411
|
14
|
-
universal_mcp/applications/coda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
-
universal_mcp/applications/coda/app.py,sha256=NJpIqKH_eTsMkS73dJX9azdtSiX8UTlUjRU-k_Kf2AE,156924
|
16
|
-
universal_mcp/applications/e2b/README.md,sha256=S4lTp-vEZ8VTCKPXqjUXu5nYlUMAF8lw8CQyBGPgxjs,700
|
17
|
-
universal_mcp/applications/e2b/app.py,sha256=wjmPa2FKYXORmGiKCE1hSjO0D9T6ZiizFeNq8Y4vgrk,3156
|
18
|
-
universal_mcp/applications/firecrawl/README.md,sha256=KAWe_TQbrc9eA6bSyde5dapMP1CNvarVItV_YJH3d_0,1430
|
19
|
-
universal_mcp/applications/firecrawl/app.py,sha256=3-dguTgYkfpR7DpyXqeHYB5f-Pm-y5NRT2SXPVsmdAw,10063
|
20
|
-
universal_mcp/applications/github/README.md,sha256=6ID-__gUJ5ZxzAS_OjzmoUAag1LamSvEB75DHcj3m-g,1294
|
21
|
-
universal_mcp/applications/github/app.py,sha256=73Y5ceM2BGRcLUO__xO0RO1NNf6Gf3ROtqTlFI5k0Fg,18162
|
22
|
-
universal_mcp/applications/google_calendar/app.py,sha256=mKzbCdijwvuHJDJxmRF6f_BGocK0cwrzIJok93aSknc,19760
|
23
|
-
universal_mcp/applications/google_docs/README.md,sha256=SyOgJG-XU0FXhrVukvg9mxwin73mpqaCOT6rDJ64Klk,909
|
24
|
-
universal_mcp/applications/google_docs/app.py,sha256=tQVHBtb9PSPepsmXn0ISB1fSy75B3H9iUhDrOU4cRKo,4137
|
25
|
-
universal_mcp/applications/google_drive/README.md,sha256=YlN8IT12oO8zVMib1MlTYRBGNP7rzW_KyVAZyyxKvME,1192
|
26
|
-
universal_mcp/applications/google_drive/app.py,sha256=Gf_beIWZUiJ_HcRP_g992GnfxVdfhq2P5r1jVgEfQoU,11935
|
27
|
-
universal_mcp/applications/google_mail/README.md,sha256=LL6TjjmwEqyuRVvIfCh-I_PlWp9ciCZOdJC0LafGZYc,1185
|
28
|
-
universal_mcp/applications/google_mail/app.py,sha256=3KwvyOwoAIhebFFsDPybKmSF9-mUhqPNGf5Gk9s28LM,27899
|
29
|
-
universal_mcp/applications/google_sheet/README.md,sha256=yW1b_qlb_pbIJzCxZc58581kKzC5vyP8Mj4iwXgidtQ,1108
|
30
|
-
universal_mcp/applications/google_sheet/app.py,sha256=jfTjDtN9hLwHcCmfYc2XMVbF05E_syvoYmiiFjDHGTA,7013
|
31
|
-
universal_mcp/applications/markitdown/app.py,sha256=j1AidXGmDwEV4sBw0A-mEe8O4V4Yln4Atrqnk29AHiI,1836
|
32
|
-
universal_mcp/applications/notion/README.md,sha256=45NmPOmSQv99qBvWdwmnV5vbaYc9_8vq8I-FA7veVAA,2600
|
33
|
-
universal_mcp/applications/notion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
-
universal_mcp/applications/notion/app.py,sha256=nc-p531L-L6gMFqOOkYu5Irn9SReWAYRmJ8ZOIv5LrQ,20834
|
35
|
-
universal_mcp/applications/perplexity/README.md,sha256=QGV1iReH5p-Np7vvkZsVHxxDKQ0YaitHEwomNmGEyQs,732
|
36
|
-
universal_mcp/applications/perplexity/app.py,sha256=g-BgGCU42yA6j-t3GCJZKQXfISdgHUV4KJMcJZBbdak,3808
|
37
|
-
universal_mcp/applications/reddit/README.md,sha256=YVbJ1RN6NWlB-P6w2LxCk_DuUWl7mwaKZScY-mIMnNc,1271
|
38
|
-
universal_mcp/applications/reddit/app.py,sha256=Jd-Pr-IMhROun82kuLf0mNJ3P-LDfGfvj1bn_8qNIAI,15748
|
39
|
-
universal_mcp/applications/resend/README.md,sha256=k-sb2UwbFvDPEz6qQPLWd2cJj8hDx5f3NW7dz2jAfjI,719
|
40
|
-
universal_mcp/applications/resend/app.py,sha256=wF4Jje4vD4cPxnPLMYkDxGkl9IctaS2AzUxVAifpJ94,1976
|
41
|
-
universal_mcp/applications/serpapi/README.md,sha256=hX4VeT2iL_67ZsMhKd60DAujQCh9K3IdHroHIq808RY,691
|
42
|
-
universal_mcp/applications/serpapi/app.py,sha256=STDsePi7wKyA-8bs6CtgmCFqyF3_pGC-qa1epiBLT64,3920
|
43
|
-
universal_mcp/applications/tavily/README.md,sha256=cNg4EwX5wBbkDpPtNBNC3A_GxglfSVhdAJuweSrXN20,721
|
44
|
-
universal_mcp/applications/tavily/app.py,sha256=O9TUoqPn8-b_mMMCfiB5ypZZXAb4Xo8d3GLdN5PF4MQ,2602
|
45
|
-
universal_mcp/applications/wrike/README.md,sha256=4EHVPlA8B_dzTA1-HQQqp89z6QL37RTyD2l6DD7vG9E,5156
|
46
|
-
universal_mcp/applications/wrike/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
-
universal_mcp/applications/wrike/app.py,sha256=Rjv2rYqEtfDOuW635QbPc1ajNDEOgtqGIQpU-atSe9M,60675
|
48
|
-
universal_mcp/applications/youtube/README.md,sha256=NHqIm6QvXQK7I2oZ8hUwfjLDS4_eSK9NPeFbuGIbmhg,5405
|
49
|
-
universal_mcp/applications/youtube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
-
universal_mcp/applications/youtube/app.py,sha256=TP56LE3RGcbgeX0XglRa6ajUkLvzuZU52OshPntPde0,57583
|
51
|
-
universal_mcp/applications/zenquotes/README.md,sha256=wA3hjqjrkrczQaffpwyolSKq6gXmkLgeHx6_EQrYEOY,709
|
52
|
-
universal_mcp/applications/zenquotes/app.py,sha256=xp_nlW4LFi0Mw1GRWIde4k8eexXUJx1wNqNExJ0oeKA,1085
|
53
|
-
universal_mcp/integrations/README.md,sha256=lTAPXO2nivcBe1q7JT6PRa6v9Ns_ZersQMIdw-nmwEA,996
|
54
|
-
universal_mcp/integrations/__init__.py,sha256=YY8Uw0XGNUpAQ1j-qgCOrwHTcuSew4W92cEtYXMxry4,963
|
55
|
-
universal_mcp/integrations/agentr.py,sha256=l0mo79oeDML19udFfoCo9lyhbDAf0X94_lnpOgbTrb0,3331
|
56
|
-
universal_mcp/integrations/integration.py,sha256=KgiQ6I1uWx-8701tgjXwgei7EANYCr8riY-Uhb2AAOE,9739
|
57
|
-
universal_mcp/servers/__init__.py,sha256=dDtvvMzbWskABlobTZHztrWMb3hbzgidza3BmEmIAD8,474
|
58
|
-
universal_mcp/servers/server.py,sha256=ARlDS4nmlYI22t2YVdSOcjWDwzvR-azeimYhAKX2g2A,8141
|
59
|
-
universal_mcp/stores/__init__.py,sha256=quvuwhZnpiSLuojf0NfmBx2xpaCulv3fbKtKaSCEmuM,603
|
60
|
-
universal_mcp/stores/store.py,sha256=8Hobd55WCXGXTJeADn7d_Qe-U8VkC6X3QDTgaKr3Saw,6774
|
61
|
-
universal_mcp/tools/__init__.py,sha256=hVL-elJLwD_K87Gpw_s2_o43sQRPyRNOnxlzt0_Pfn8,72
|
62
|
-
universal_mcp/tools/adapters.py,sha256=2HvpyFiI0zg9dp0XshnG7t6KrVqFHM7hgtmgY1bsHN0,927
|
63
|
-
universal_mcp/tools/func_metadata.py,sha256=f_5LdDNsOu1DpXvDUeZYiJswVmwGZz6IMPtpJJ5B2-Y,7975
|
64
|
-
universal_mcp/tools/tools.py,sha256=27PkcxoxdADoUqQHUyvKX1GJCOYb1lrOtqcR24tR7fs,12982
|
65
|
-
universal_mcp/utils/__init__.py,sha256=8wi4PGWu-SrFjNJ8U7fr2iFJ1ktqlDmSKj1xYd7KSDc,41
|
66
|
-
universal_mcp/utils/api_generator.py,sha256=-wRBpLVfJQXy1R-8FpDNs6b8_eeekVDuPc_uwjSGgiY,8883
|
67
|
-
universal_mcp/utils/docgen.py,sha256=yGBcBIr7dz3mNMGrCb_-JFsDf-ShmCKWWiPpuEj2SIU,21878
|
68
|
-
universal_mcp/utils/docstring_parser.py,sha256=-QVW9u9i1_FlAMwSkFil6ZNaKIkXKI6gqOYtURdp5ak,6745
|
69
|
-
universal_mcp/utils/dump_app_tools.py,sha256=9bQePJ4ZKzGtcIYrBgLxbKDOZmL7ajIAHhXljT_AlyA,2041
|
70
|
-
universal_mcp/utils/installation.py,sha256=3vy9ZLjQj1xpSAOyWpOanBr7o5DtffzWB5JAjN0Jjtk,3757
|
71
|
-
universal_mcp/utils/openapi.py,sha256=AgmcyntPyovic2mRqr-a7P4kEc7hU-yk9gRVIsO4078,20673
|
72
|
-
universal_mcp-0.1.8rc3.dist-info/METADATA,sha256=mTty3iqc9lUsEUtM1CAfsWHdR1CGWwDuLyeMDK09IwU,11271
|
73
|
-
universal_mcp-0.1.8rc3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
74
|
-
universal_mcp-0.1.8rc3.dist-info/entry_points.txt,sha256=QlBrVKmA2jIM0q-C-3TQMNJTTWOsOFQvgedBq2rZTS8,56
|
75
|
-
universal_mcp-0.1.8rc3.dist-info/RECORD,,
|
File without changes
|
File without changes
|