universal-mcp 0.1.13rc1__py3-none-any.whl → 0.1.13rc3__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/utils/installation.py +8 -8
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc3.dist-info}/METADATA +40 -1
- universal_mcp-0.1.13rc3.dist-info/RECORD +38 -0
- universal_mcp/applications/ahrefs/README.md +0 -76
- universal_mcp/applications/ahrefs/__init__.py +0 -0
- universal_mcp/applications/ahrefs/app.py +0 -2291
- universal_mcp/applications/cal_com_v2/README.md +0 -175
- universal_mcp/applications/cal_com_v2/__init__.py +0 -0
- universal_mcp/applications/cal_com_v2/app.py +0 -5390
- universal_mcp/applications/calendly/README.md +0 -78
- universal_mcp/applications/calendly/__init__.py +0 -0
- universal_mcp/applications/calendly/app.py +0 -1195
- universal_mcp/applications/clickup/README.md +0 -160
- universal_mcp/applications/clickup/__init__.py +0 -0
- universal_mcp/applications/clickup/app.py +0 -5009
- universal_mcp/applications/coda/README.md +0 -133
- universal_mcp/applications/coda/__init__.py +0 -0
- universal_mcp/applications/coda/app.py +0 -3671
- universal_mcp/applications/curstdata/README.md +0 -50
- universal_mcp/applications/curstdata/__init__.py +0 -0
- universal_mcp/applications/curstdata/app.py +0 -551
- universal_mcp/applications/e2b/README.md +0 -37
- universal_mcp/applications/e2b/app.py +0 -65
- universal_mcp/applications/elevenlabs/README.md +0 -84
- universal_mcp/applications/elevenlabs/__init__.py +0 -0
- universal_mcp/applications/elevenlabs/app.py +0 -1402
- universal_mcp/applications/falai/README.md +0 -42
- universal_mcp/applications/falai/__init__.py +0 -0
- universal_mcp/applications/falai/app.py +0 -332
- universal_mcp/applications/figma/README.md +0 -74
- universal_mcp/applications/figma/__init__.py +0 -0
- universal_mcp/applications/figma/app.py +0 -1261
- universal_mcp/applications/firecrawl/README.md +0 -45
- universal_mcp/applications/firecrawl/app.py +0 -268
- universal_mcp/applications/github/README.md +0 -47
- universal_mcp/applications/github/app.py +0 -429
- universal_mcp/applications/gong/README.md +0 -88
- universal_mcp/applications/gong/__init__.py +0 -0
- universal_mcp/applications/gong/app.py +0 -2297
- universal_mcp/applications/google_calendar/app.py +0 -442
- universal_mcp/applications/google_docs/README.md +0 -40
- universal_mcp/applications/google_docs/app.py +0 -88
- universal_mcp/applications/google_drive/README.md +0 -44
- universal_mcp/applications/google_drive/app.py +0 -286
- universal_mcp/applications/google_mail/README.md +0 -47
- universal_mcp/applications/google_mail/app.py +0 -664
- universal_mcp/applications/google_sheet/README.md +0 -42
- universal_mcp/applications/google_sheet/app.py +0 -150
- universal_mcp/applications/heygen/README.md +0 -69
- universal_mcp/applications/heygen/__init__.py +0 -0
- universal_mcp/applications/heygen/app.py +0 -956
- universal_mcp/applications/mailchimp/README.md +0 -306
- universal_mcp/applications/mailchimp/__init__.py +0 -0
- universal_mcp/applications/mailchimp/app.py +0 -10937
- universal_mcp/applications/markitdown/app.py +0 -44
- universal_mcp/applications/neon/README.md +0 -99
- universal_mcp/applications/neon/__init__.py +0 -0
- universal_mcp/applications/neon/app.py +0 -1924
- universal_mcp/applications/notion/README.md +0 -55
- universal_mcp/applications/notion/__init__.py +0 -0
- universal_mcp/applications/notion/app.py +0 -527
- universal_mcp/applications/perplexity/README.md +0 -37
- universal_mcp/applications/perplexity/app.py +0 -65
- universal_mcp/applications/reddit/README.md +0 -45
- universal_mcp/applications/reddit/app.py +0 -379
- universal_mcp/applications/replicate/README.md +0 -65
- universal_mcp/applications/replicate/__init__.py +0 -0
- universal_mcp/applications/replicate/app.py +0 -980
- universal_mcp/applications/resend/README.md +0 -38
- universal_mcp/applications/resend/app.py +0 -37
- universal_mcp/applications/retell_ai/README.md +0 -46
- universal_mcp/applications/retell_ai/__init__.py +0 -0
- universal_mcp/applications/retell_ai/app.py +0 -333
- universal_mcp/applications/rocketlane/README.md +0 -42
- universal_mcp/applications/rocketlane/__init__.py +0 -0
- universal_mcp/applications/rocketlane/app.py +0 -194
- universal_mcp/applications/serpapi/README.md +0 -37
- universal_mcp/applications/serpapi/app.py +0 -73
- universal_mcp/applications/shortcut/README.md +0 -153
- universal_mcp/applications/shortcut/__init__.py +0 -0
- universal_mcp/applications/shortcut/app.py +0 -3880
- universal_mcp/applications/spotify/README.md +0 -116
- universal_mcp/applications/spotify/__init__.py +0 -0
- universal_mcp/applications/spotify/app.py +0 -2526
- universal_mcp/applications/supabase/README.md +0 -112
- universal_mcp/applications/supabase/__init__.py +0 -0
- universal_mcp/applications/supabase/app.py +0 -2970
- universal_mcp/applications/tavily/README.md +0 -38
- universal_mcp/applications/tavily/app.py +0 -51
- universal_mcp/applications/wrike/README.md +0 -71
- universal_mcp/applications/wrike/__init__.py +0 -0
- universal_mcp/applications/wrike/app.py +0 -1372
- universal_mcp/applications/youtube/README.md +0 -82
- universal_mcp/applications/youtube/__init__.py +0 -0
- universal_mcp/applications/youtube/app.py +0 -1428
- universal_mcp/applications/zenquotes/README.md +0 -37
- universal_mcp/applications/zenquotes/app.py +0 -31
- universal_mcp-0.1.13rc1.dist-info/RECORD +0 -132
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc3.dist-info}/WHEEL +0 -0
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc3.dist-info}/entry_points.txt +0 -0
@@ -1,42 +0,0 @@
|
|
1
|
-
|
2
|
-
# Falai MCP Server
|
3
|
-
|
4
|
-
An MCP Server for the Falai API.
|
5
|
-
|
6
|
-
## Supported Integrations
|
7
|
-
|
8
|
-
- AgentR
|
9
|
-
- API Key (Coming Soon)
|
10
|
-
- OAuth (Coming Soon)
|
11
|
-
|
12
|
-
## Tools
|
13
|
-
|
14
|
-
This is automatically generated from OpenAPI schema for the Falai API.
|
15
|
-
|
16
|
-
## Supported Integrations
|
17
|
-
|
18
|
-
This tool can be integrated with any service that supports HTTP requests.
|
19
|
-
|
20
|
-
## Tool List
|
21
|
-
|
22
|
-
| Tool | Description |
|
23
|
-
|------|-------------|
|
24
|
-
| run | Run a Fal AI application directly and wait for the result. Suitable for short-running applications with synchronous execution from the caller's perspective. |
|
25
|
-
| submit | Submits a request to the Fal AI queue for asynchronous processing and returns a request ID for tracking the job. |
|
26
|
-
| status | Checks the status of a previously submitted Fal AI request and retrieves its current execution state |
|
27
|
-
| result | Retrieves the result of a completed Fal AI request, waiting for completion if the request is still running. |
|
28
|
-
| cancel | Asynchronously cancels a running or queued Fal AI request. |
|
29
|
-
| upload_file | Uploads a local file to the Fal CDN and returns its public URL |
|
30
|
-
| generate_image | Asynchronously generates images using the 'fal-ai/flux/dev' application with customizable parameters and default settings |
|
31
|
-
|
32
|
-
|
33
|
-
## Usage
|
34
|
-
|
35
|
-
- Login to AgentR
|
36
|
-
- Follow the quickstart guide to setup MCP Server for your client
|
37
|
-
- Visit Apps Store and enable the Falai app
|
38
|
-
- Restart the MCP Server
|
39
|
-
|
40
|
-
### Local Development
|
41
|
-
|
42
|
-
- Follow the README to test with the local MCP Server
|
File without changes
|
@@ -1,332 +0,0 @@
|
|
1
|
-
from pathlib import Path
|
2
|
-
from typing import Any, Literal
|
3
|
-
|
4
|
-
from fal_client import AsyncClient, AsyncRequestHandle, Status
|
5
|
-
from loguru import logger
|
6
|
-
|
7
|
-
from universal_mcp.applications import APIApplication
|
8
|
-
from universal_mcp.exceptions import NotAuthorizedError, ToolError
|
9
|
-
from universal_mcp.integrations import Integration
|
10
|
-
|
11
|
-
Priority = Literal["normal", "low"]
|
12
|
-
|
13
|
-
|
14
|
-
class FalaiApp(APIApplication):
|
15
|
-
"""
|
16
|
-
Application for interacting with the Fal AI platform.
|
17
|
-
|
18
|
-
Provides tools to run, submit, check status, retrieve results, cancel jobs,
|
19
|
-
upload files to the Fal CDN, and a specialized tool for generating images.
|
20
|
-
|
21
|
-
Authentication is handled by the configured Integration provided by the
|
22
|
-
Universal MCP server, fetching the necessary API key.
|
23
|
-
"""
|
24
|
-
|
25
|
-
def __init__(self, integration: Integration, **kwargs) -> None:
|
26
|
-
super().__init__(name="falai", integration=integration, **kwargs)
|
27
|
-
self._fal_client = None
|
28
|
-
|
29
|
-
@property
|
30
|
-
def fal_client(self) -> AsyncClient:
|
31
|
-
if self._fal_client is None:
|
32
|
-
credentials = self.integration.get_credentials()
|
33
|
-
logger.info(f"Credentials: {credentials}")
|
34
|
-
api_key = (
|
35
|
-
credentials.get("api_key")
|
36
|
-
or credentials.get("API_KEY")
|
37
|
-
or credentials.get("apiKey")
|
38
|
-
)
|
39
|
-
if not api_key:
|
40
|
-
logger.error(
|
41
|
-
f"Integration {type(self.integration).__name__} returned credentials in unexpected format."
|
42
|
-
)
|
43
|
-
raise NotAuthorizedError(
|
44
|
-
"Integration returned empty or invalid API key."
|
45
|
-
)
|
46
|
-
self._fal_client = AsyncClient(key=api_key)
|
47
|
-
return self._fal_client
|
48
|
-
|
49
|
-
async def run(
|
50
|
-
self,
|
51
|
-
arguments: Any,
|
52
|
-
application: str = "fal-ai/flux/dev",
|
53
|
-
path: str = "",
|
54
|
-
timeout: float | None = None,
|
55
|
-
hint: str | None = None,
|
56
|
-
) -> Any:
|
57
|
-
"""
|
58
|
-
Run a Fal AI application directly and wait for the result. Suitable for short-running applications with synchronous execution from the caller's perspective.
|
59
|
-
|
60
|
-
Args:
|
61
|
-
arguments: A dictionary of arguments for the application
|
62
|
-
application: The name or ID of the Fal application (defaults to 'fal-ai/flux/dev')
|
63
|
-
path: Optional subpath for the application endpoint
|
64
|
-
timeout: Optional timeout in seconds for the request
|
65
|
-
hint: Optional hint for runner selection
|
66
|
-
|
67
|
-
Returns:
|
68
|
-
The result of the application execution as a Python object (converted from JSON response)
|
69
|
-
|
70
|
-
Raises:
|
71
|
-
ToolError: Raised when the Fal API request fails, wrapping the original exception
|
72
|
-
|
73
|
-
Tags:
|
74
|
-
run, execute, ai, synchronous, fal, important
|
75
|
-
"""
|
76
|
-
try:
|
77
|
-
result = await self.fal_client.run(
|
78
|
-
application=application,
|
79
|
-
arguments=arguments,
|
80
|
-
path=path,
|
81
|
-
timeout=timeout,
|
82
|
-
hint=hint,
|
83
|
-
)
|
84
|
-
return result
|
85
|
-
except Exception as e:
|
86
|
-
logger.error(
|
87
|
-
f"Error running Fal application {application}: {e}", exc_info=True
|
88
|
-
)
|
89
|
-
raise ToolError(f"Failed to run Fal application {application}: {e}") from e
|
90
|
-
|
91
|
-
async def submit(
|
92
|
-
self,
|
93
|
-
arguments: Any,
|
94
|
-
application: str = "fal-ai/flux/dev",
|
95
|
-
path: str = "",
|
96
|
-
hint: str | None = None,
|
97
|
-
webhook_url: str | None = None,
|
98
|
-
priority: Priority | None = None,
|
99
|
-
) -> str:
|
100
|
-
"""
|
101
|
-
Submits a request to the Fal AI queue for asynchronous processing and returns a request ID for tracking the job.
|
102
|
-
|
103
|
-
Args:
|
104
|
-
arguments: A dictionary of arguments for the application
|
105
|
-
application: The name or ID of the Fal application, defaulting to 'fal-ai/flux/dev'
|
106
|
-
path: Optional subpath for the application endpoint
|
107
|
-
hint: Optional hint for runner selection
|
108
|
-
webhook_url: Optional URL to receive a webhook when the request completes
|
109
|
-
priority: Optional queue priority ('normal' or 'low')
|
110
|
-
|
111
|
-
Returns:
|
112
|
-
The request ID (str) of the submitted asynchronous job
|
113
|
-
|
114
|
-
Raises:
|
115
|
-
ToolError: Raised when the Fal API request fails, wrapping the original exception
|
116
|
-
|
117
|
-
Tags:
|
118
|
-
submit, async_job, start, ai, queue
|
119
|
-
"""
|
120
|
-
try:
|
121
|
-
handle: AsyncRequestHandle = await self.fal_client.submit(
|
122
|
-
application=application,
|
123
|
-
arguments=arguments,
|
124
|
-
path=path,
|
125
|
-
hint=hint,
|
126
|
-
webhook_url=webhook_url,
|
127
|
-
priority=priority,
|
128
|
-
)
|
129
|
-
request_id = handle.request_id
|
130
|
-
return request_id
|
131
|
-
except Exception as e:
|
132
|
-
logger.error(
|
133
|
-
f"Error submitting Fal application {application}: {e}", exc_info=True
|
134
|
-
)
|
135
|
-
raise ToolError(
|
136
|
-
f"Failed to submit Fal application {application}: {e}"
|
137
|
-
) from e
|
138
|
-
|
139
|
-
async def status(
|
140
|
-
self,
|
141
|
-
request_id: str,
|
142
|
-
application: str = "fal-ai/flux/dev",
|
143
|
-
with_logs: bool = False,
|
144
|
-
) -> Status:
|
145
|
-
"""
|
146
|
-
Checks the status of a previously submitted Fal AI request and retrieves its current execution state
|
147
|
-
|
148
|
-
Args:
|
149
|
-
request_id: The unique identifier of the submitted request, obtained from a previous submit operation
|
150
|
-
application: The name or ID of the Fal application (defaults to 'fal-ai/flux/dev')
|
151
|
-
with_logs: Boolean flag to include execution logs in the status response (defaults to False)
|
152
|
-
|
153
|
-
Returns:
|
154
|
-
A Status object containing the current state of the request (Queued, InProgress, or Completed)
|
155
|
-
|
156
|
-
Raises:
|
157
|
-
ToolError: Raised when the Fal API request fails or when the provided request ID is invalid
|
158
|
-
|
159
|
-
Tags:
|
160
|
-
status, check, async_job, monitoring, ai
|
161
|
-
"""
|
162
|
-
try:
|
163
|
-
handle = self.fal_client.get_handle(
|
164
|
-
application=application, request_id=request_id
|
165
|
-
)
|
166
|
-
status = await handle.status(with_logs=with_logs)
|
167
|
-
return status
|
168
|
-
except Exception as e:
|
169
|
-
logger.error(
|
170
|
-
f"Error getting status for Fal request_id {request_id}: {e}",
|
171
|
-
exc_info=True,
|
172
|
-
)
|
173
|
-
raise ToolError(
|
174
|
-
f"Failed to get status for Fal request_id {request_id}: {e}"
|
175
|
-
) from e
|
176
|
-
|
177
|
-
async def result(
|
178
|
-
self, request_id: str, application: str = "fal-ai/flux/dev"
|
179
|
-
) -> Any:
|
180
|
-
"""
|
181
|
-
Retrieves the result of a completed Fal AI request, waiting for completion if the request is still running.
|
182
|
-
|
183
|
-
Args:
|
184
|
-
request_id: The unique identifier of the submitted request
|
185
|
-
application: The name or ID of the Fal application (defaults to 'fal-ai/flux/dev')
|
186
|
-
|
187
|
-
Returns:
|
188
|
-
The result of the application execution, converted from JSON response to Python data structures (dict/list)
|
189
|
-
|
190
|
-
Raises:
|
191
|
-
ToolError: When the Fal API request fails or the request does not complete successfully
|
192
|
-
|
193
|
-
Tags:
|
194
|
-
result, async-job, status, wait, ai
|
195
|
-
"""
|
196
|
-
try:
|
197
|
-
handle = self.fal_client.get_handle(
|
198
|
-
application=application, request_id=request_id
|
199
|
-
)
|
200
|
-
result = await handle.get()
|
201
|
-
return result
|
202
|
-
except Exception as e:
|
203
|
-
logger.error(
|
204
|
-
f"Error getting result for Fal request_id {request_id}: {e}",
|
205
|
-
exc_info=True,
|
206
|
-
)
|
207
|
-
raise ToolError(
|
208
|
-
f"Failed to get result for Fal request_id {request_id}: {e}"
|
209
|
-
) from e
|
210
|
-
|
211
|
-
async def cancel(
|
212
|
-
self, request_id: str, application: str = "fal-ai/flux/dev"
|
213
|
-
) -> None:
|
214
|
-
"""
|
215
|
-
Asynchronously cancels a running or queued Fal AI request.
|
216
|
-
|
217
|
-
Args:
|
218
|
-
request_id: The unique identifier of the submitted Fal AI request to cancel
|
219
|
-
application: The name or ID of the Fal application (defaults to 'fal-ai/flux/dev')
|
220
|
-
|
221
|
-
Returns:
|
222
|
-
None. The function doesn't return any value.
|
223
|
-
|
224
|
-
Raises:
|
225
|
-
ToolError: Raised when the cancellation request fails due to API errors or if the request cannot be cancelled
|
226
|
-
|
227
|
-
Tags:
|
228
|
-
cancel, async_job, ai, fal, management
|
229
|
-
"""
|
230
|
-
try:
|
231
|
-
handle = self.fal_client.get_handle(
|
232
|
-
application=application, request_id=request_id
|
233
|
-
)
|
234
|
-
await handle.cancel()
|
235
|
-
return None
|
236
|
-
except Exception as e:
|
237
|
-
logger.error(
|
238
|
-
f"Error cancelling Fal request_id {request_id}: {e}", exc_info=True
|
239
|
-
)
|
240
|
-
raise ToolError(f"Failed to cancel Fal request_id {request_id}: {e}") from e
|
241
|
-
|
242
|
-
async def upload_file(self, path: str) -> str:
|
243
|
-
"""
|
244
|
-
Uploads a local file to the Fal CDN and returns its public URL
|
245
|
-
|
246
|
-
Args:
|
247
|
-
path: The absolute or relative path to the local file
|
248
|
-
|
249
|
-
Returns:
|
250
|
-
A string containing the public URL of the uploaded file on the CDN
|
251
|
-
|
252
|
-
Raises:
|
253
|
-
ToolError: If the file is not found or if the upload operation fails
|
254
|
-
|
255
|
-
Tags:
|
256
|
-
upload, file, cdn, storage, async, important
|
257
|
-
"""
|
258
|
-
try:
|
259
|
-
file_url = await self.fal_client.upload_file(Path(path))
|
260
|
-
return file_url
|
261
|
-
except FileNotFoundError as e:
|
262
|
-
logger.error(f"File not found for upload: {path}", exc_info=True)
|
263
|
-
raise ToolError(f"File not found: {path}") from e
|
264
|
-
except Exception as e:
|
265
|
-
logger.error(f"Error uploading file {path} to Fal CDN: {e}", exc_info=True)
|
266
|
-
raise ToolError(f"Failed to upload file {path}: {e}") from e
|
267
|
-
|
268
|
-
async def generate_image(
|
269
|
-
self,
|
270
|
-
prompt: str,
|
271
|
-
seed: int | None = 6252023,
|
272
|
-
image_size: str | None = "landscape_4_3",
|
273
|
-
num_images: int | None = 1,
|
274
|
-
extra_arguments: dict[str, Any] | None = None,
|
275
|
-
path: str = "",
|
276
|
-
timeout: float | None = None,
|
277
|
-
hint: str | None = None,
|
278
|
-
) -> Any:
|
279
|
-
"""
|
280
|
-
Asynchronously generates images using the 'fal-ai/flux/dev' application with customizable parameters and default settings
|
281
|
-
|
282
|
-
Args:
|
283
|
-
prompt: The text prompt used to guide the image generation
|
284
|
-
seed: Random seed for reproducible image generation (default: 6252023)
|
285
|
-
image_size: Dimensions of the generated image (default: 'landscape_4_3')
|
286
|
-
num_images: Number of images to generate in one request (default: 1)
|
287
|
-
extra_arguments: Additional arguments dictionary to pass to the application, can override defaults
|
288
|
-
path: Subpath for the application endpoint (rarely used)
|
289
|
-
timeout: Maximum time in seconds to wait for the request to complete
|
290
|
-
hint: Hint string for runner selection
|
291
|
-
|
292
|
-
Returns:
|
293
|
-
A dictionary containing the generated image URLs and related metadata
|
294
|
-
|
295
|
-
Raises:
|
296
|
-
ToolError: When the image generation request fails or encounters an error
|
297
|
-
|
298
|
-
Tags:
|
299
|
-
generate, image, ai, async, important, flux, customizable, default
|
300
|
-
"""
|
301
|
-
application = "fal-ai/flux/dev"
|
302
|
-
arguments = {
|
303
|
-
"prompt": prompt,
|
304
|
-
"seed": seed,
|
305
|
-
"image_size": image_size,
|
306
|
-
"num_images": num_images,
|
307
|
-
}
|
308
|
-
if extra_arguments:
|
309
|
-
arguments.update(extra_arguments)
|
310
|
-
logger.debug(f"Merged extra_arguments. Final arguments: {arguments}")
|
311
|
-
try:
|
312
|
-
result = await self.run(
|
313
|
-
application=application,
|
314
|
-
arguments=arguments,
|
315
|
-
path=path,
|
316
|
-
timeout=timeout,
|
317
|
-
hint=hint,
|
318
|
-
)
|
319
|
-
return result
|
320
|
-
except Exception:
|
321
|
-
raise
|
322
|
-
|
323
|
-
def list_tools(self) -> list[callable]:
|
324
|
-
return [
|
325
|
-
self.run,
|
326
|
-
self.submit,
|
327
|
-
self.status,
|
328
|
-
self.result,
|
329
|
-
self.cancel,
|
330
|
-
self.upload_file,
|
331
|
-
self.generate_image,
|
332
|
-
]
|
@@ -1,74 +0,0 @@
|
|
1
|
-
|
2
|
-
# Figma MCP Server
|
3
|
-
|
4
|
-
An MCP Server for the Figma API.
|
5
|
-
|
6
|
-
## Supported Integrations
|
7
|
-
|
8
|
-
- AgentR
|
9
|
-
- API Key (Coming Soon)
|
10
|
-
- OAuth (Coming Soon)
|
11
|
-
|
12
|
-
## Tools
|
13
|
-
|
14
|
-
This is automatically generated from OpenAPI schema for the Figma API.
|
15
|
-
|
16
|
-
## Supported Integrations
|
17
|
-
|
18
|
-
This tool can be integrated with any service that supports HTTP requests.
|
19
|
-
|
20
|
-
## Tool List
|
21
|
-
|
22
|
-
| Tool | Description |
|
23
|
-
|------|-------------|
|
24
|
-
| get_file | Retrieves file metadata and content from the API using the specified file key and optional query parameters. |
|
25
|
-
| get_file_nodes | Fetches node data for specified IDs from a file, supporting optional filters such as version, depth, geometry, and plugin data. |
|
26
|
-
| get_images | Retrieves image assets from a remote service for specified node IDs within a given file, with optional image format and export options. |
|
27
|
-
| get_image_fills | Retrieves image fill data for a given file key from the API. |
|
28
|
-
| get_team_projects | Retrieves the list of projects associated with a specified team. |
|
29
|
-
| get_project_files | Retrieves the list of files associated with a specified project, optionally filtered by branch data. |
|
30
|
-
| get_file_versions | Retrieves a paginated list of version history for a specified file. |
|
31
|
-
| get_comments | Retrieves comments for a specified file, optionally formatting the output as Markdown. |
|
32
|
-
| post_comment | Posts a comment to a specified file. |
|
33
|
-
| delete_comment | Deletes a specific comment from a file identified by its key and comment ID. |
|
34
|
-
| get_comment_reactions | Retrieves the reactions associated with a specific comment in a file. |
|
35
|
-
| post_comment_reaction | Posts a reaction emoji to a specific comment on a file. |
|
36
|
-
| delete_comment_reaction | Removes a specific emoji reaction from a comment in a file. |
|
37
|
-
| get_me | Retrieves information about the authenticated user from the API. |
|
38
|
-
| get_team_components | Retrieves a paginated list of components associated with a specified team. |
|
39
|
-
| get_file_components | Retrieves the component information for a specified file from the API. |
|
40
|
-
| get_component | Retrieves a component's details by its key from the API. |
|
41
|
-
| get_team_component_sets | Retrieves a paginated list of component sets for a specified team. |
|
42
|
-
| get_file_component_sets | Retrieves the list of component sets associated with a specific file key. |
|
43
|
-
| get_component_set | Retrieves a component set resource by its key from the server. |
|
44
|
-
| get_team_styles | Retrieves a list of styles for a specified team, with optional pagination controls. |
|
45
|
-
| get_file_styles | Retrieves the style definitions for a specified file from the API. |
|
46
|
-
| get_style | Retrieves a style resource identified by the given key from the API. |
|
47
|
-
| post_webhook | Registers a new webhook for a specified event type and team. |
|
48
|
-
| get_webhook | Retrieves the details of a specific webhook by its unique identifier. |
|
49
|
-
| put_webhook | Update an existing webhook's configuration with new settings such as event type, endpoint, passcode, status, or description. |
|
50
|
-
| delete_webhook | Deletes a webhook with the specified webhook ID. |
|
51
|
-
| get_team_webhooks | Retrieves the list of webhooks configured for a given team. |
|
52
|
-
| get_webhook_requests | Retrieves the list of requests for a specified webhook. |
|
53
|
-
| get_activity_logs | Retrieves activity logs from the API with optional filters for events, time range, limit, and order. |
|
54
|
-
| get_payments | Retrieves a list of payments based on the provided filter criteria. |
|
55
|
-
| get_local_variables | Retrieves the local variables associated with a specific file identified by file_key. |
|
56
|
-
| get_published_variables | Retrieves the published variables associated with a specified file key from the server. |
|
57
|
-
| post_variables | Posts or updates variable data for a specified file by sending a POST request to the variables endpoint. |
|
58
|
-
| get_dev_resources | Retrieves development resources for a specific file. |
|
59
|
-
| post_dev_resources | Submits developer resources to the API and returns the parsed JSON response. |
|
60
|
-
| put_dev_resources | Updates the development resources by sending a PUT request to the dev_resources endpoint. |
|
61
|
-
| delete_dev_resource | Deletes a specific development resource associated with a file. |
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
## Usage
|
66
|
-
|
67
|
-
- Login to AgentR
|
68
|
-
- Follow the quickstart guide to setup MCP Server for your client
|
69
|
-
- Visit Apps Store and enable the Figma app
|
70
|
-
- Restart the MCP Server
|
71
|
-
|
72
|
-
### Local Development
|
73
|
-
|
74
|
-
- Follow the README to test with the local MCP Server
|
File without changes
|