universal-mcp 0.1.13rc1__py3-none-any.whl → 0.1.13rc2__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.
Files changed (99) hide show
  1. {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/METADATA +1 -1
  2. universal_mcp-0.1.13rc2.dist-info/RECORD +38 -0
  3. universal_mcp/applications/ahrefs/README.md +0 -76
  4. universal_mcp/applications/ahrefs/__init__.py +0 -0
  5. universal_mcp/applications/ahrefs/app.py +0 -2291
  6. universal_mcp/applications/cal_com_v2/README.md +0 -175
  7. universal_mcp/applications/cal_com_v2/__init__.py +0 -0
  8. universal_mcp/applications/cal_com_v2/app.py +0 -5390
  9. universal_mcp/applications/calendly/README.md +0 -78
  10. universal_mcp/applications/calendly/__init__.py +0 -0
  11. universal_mcp/applications/calendly/app.py +0 -1195
  12. universal_mcp/applications/clickup/README.md +0 -160
  13. universal_mcp/applications/clickup/__init__.py +0 -0
  14. universal_mcp/applications/clickup/app.py +0 -5009
  15. universal_mcp/applications/coda/README.md +0 -133
  16. universal_mcp/applications/coda/__init__.py +0 -0
  17. universal_mcp/applications/coda/app.py +0 -3671
  18. universal_mcp/applications/curstdata/README.md +0 -50
  19. universal_mcp/applications/curstdata/__init__.py +0 -0
  20. universal_mcp/applications/curstdata/app.py +0 -551
  21. universal_mcp/applications/e2b/README.md +0 -37
  22. universal_mcp/applications/e2b/app.py +0 -65
  23. universal_mcp/applications/elevenlabs/README.md +0 -84
  24. universal_mcp/applications/elevenlabs/__init__.py +0 -0
  25. universal_mcp/applications/elevenlabs/app.py +0 -1402
  26. universal_mcp/applications/falai/README.md +0 -42
  27. universal_mcp/applications/falai/__init__.py +0 -0
  28. universal_mcp/applications/falai/app.py +0 -332
  29. universal_mcp/applications/figma/README.md +0 -74
  30. universal_mcp/applications/figma/__init__.py +0 -0
  31. universal_mcp/applications/figma/app.py +0 -1261
  32. universal_mcp/applications/firecrawl/README.md +0 -45
  33. universal_mcp/applications/firecrawl/app.py +0 -268
  34. universal_mcp/applications/github/README.md +0 -47
  35. universal_mcp/applications/github/app.py +0 -429
  36. universal_mcp/applications/gong/README.md +0 -88
  37. universal_mcp/applications/gong/__init__.py +0 -0
  38. universal_mcp/applications/gong/app.py +0 -2297
  39. universal_mcp/applications/google_calendar/app.py +0 -442
  40. universal_mcp/applications/google_docs/README.md +0 -40
  41. universal_mcp/applications/google_docs/app.py +0 -88
  42. universal_mcp/applications/google_drive/README.md +0 -44
  43. universal_mcp/applications/google_drive/app.py +0 -286
  44. universal_mcp/applications/google_mail/README.md +0 -47
  45. universal_mcp/applications/google_mail/app.py +0 -664
  46. universal_mcp/applications/google_sheet/README.md +0 -42
  47. universal_mcp/applications/google_sheet/app.py +0 -150
  48. universal_mcp/applications/heygen/README.md +0 -69
  49. universal_mcp/applications/heygen/__init__.py +0 -0
  50. universal_mcp/applications/heygen/app.py +0 -956
  51. universal_mcp/applications/mailchimp/README.md +0 -306
  52. universal_mcp/applications/mailchimp/__init__.py +0 -0
  53. universal_mcp/applications/mailchimp/app.py +0 -10937
  54. universal_mcp/applications/markitdown/app.py +0 -44
  55. universal_mcp/applications/neon/README.md +0 -99
  56. universal_mcp/applications/neon/__init__.py +0 -0
  57. universal_mcp/applications/neon/app.py +0 -1924
  58. universal_mcp/applications/notion/README.md +0 -55
  59. universal_mcp/applications/notion/__init__.py +0 -0
  60. universal_mcp/applications/notion/app.py +0 -527
  61. universal_mcp/applications/perplexity/README.md +0 -37
  62. universal_mcp/applications/perplexity/app.py +0 -65
  63. universal_mcp/applications/reddit/README.md +0 -45
  64. universal_mcp/applications/reddit/app.py +0 -379
  65. universal_mcp/applications/replicate/README.md +0 -65
  66. universal_mcp/applications/replicate/__init__.py +0 -0
  67. universal_mcp/applications/replicate/app.py +0 -980
  68. universal_mcp/applications/resend/README.md +0 -38
  69. universal_mcp/applications/resend/app.py +0 -37
  70. universal_mcp/applications/retell_ai/README.md +0 -46
  71. universal_mcp/applications/retell_ai/__init__.py +0 -0
  72. universal_mcp/applications/retell_ai/app.py +0 -333
  73. universal_mcp/applications/rocketlane/README.md +0 -42
  74. universal_mcp/applications/rocketlane/__init__.py +0 -0
  75. universal_mcp/applications/rocketlane/app.py +0 -194
  76. universal_mcp/applications/serpapi/README.md +0 -37
  77. universal_mcp/applications/serpapi/app.py +0 -73
  78. universal_mcp/applications/shortcut/README.md +0 -153
  79. universal_mcp/applications/shortcut/__init__.py +0 -0
  80. universal_mcp/applications/shortcut/app.py +0 -3880
  81. universal_mcp/applications/spotify/README.md +0 -116
  82. universal_mcp/applications/spotify/__init__.py +0 -0
  83. universal_mcp/applications/spotify/app.py +0 -2526
  84. universal_mcp/applications/supabase/README.md +0 -112
  85. universal_mcp/applications/supabase/__init__.py +0 -0
  86. universal_mcp/applications/supabase/app.py +0 -2970
  87. universal_mcp/applications/tavily/README.md +0 -38
  88. universal_mcp/applications/tavily/app.py +0 -51
  89. universal_mcp/applications/wrike/README.md +0 -71
  90. universal_mcp/applications/wrike/__init__.py +0 -0
  91. universal_mcp/applications/wrike/app.py +0 -1372
  92. universal_mcp/applications/youtube/README.md +0 -82
  93. universal_mcp/applications/youtube/__init__.py +0 -0
  94. universal_mcp/applications/youtube/app.py +0 -1428
  95. universal_mcp/applications/zenquotes/README.md +0 -37
  96. universal_mcp/applications/zenquotes/app.py +0 -31
  97. universal_mcp-0.1.13rc1.dist-info/RECORD +0 -132
  98. {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/WHEEL +0 -0
  99. {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/entry_points.txt +0 -0
@@ -1,38 +0,0 @@
1
-
2
- # Resend MCP Server
3
-
4
- An MCP Server for the Resend 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 Resend 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
- | send_email | Send an email using the Resend API |
25
- | validate | Function for validate |
26
-
27
-
28
-
29
- ## Usage
30
-
31
- - Login to AgentR
32
- - Follow the quickstart guide to setup MCP Server for your client
33
- - Visit Apps Store and enable the Resend app
34
- - Restart the MCP Server
35
-
36
- ### Local Development
37
-
38
- - Follow the README to test with the local MCP Server
@@ -1,37 +0,0 @@
1
- from universal_mcp.applications.application import APIApplication
2
- from universal_mcp.integrations import Integration
3
-
4
-
5
- class ResendApp(APIApplication):
6
- def __init__(self, integration: Integration) -> None:
7
- super().__init__(name="resend", integration=integration)
8
-
9
- def send_email(self, to: str, subject: str, content: str) -> str:
10
- """
11
- Sends an email using the Resend API with specified recipient, subject, and content
12
-
13
- Args:
14
- to: Email address of the recipient
15
- subject: Subject line of the email
16
- content: Main body text content of the email
17
-
18
- Returns:
19
- String message confirming successful email delivery ('Sent Successfully')
20
-
21
- Raises:
22
- ValueError: Raised when no valid credentials are found for the API
23
-
24
- Tags:
25
- send, email, api, communication, important
26
- """
27
- credentials = self.integration.get_credentials()
28
- if not credentials:
29
- raise ValueError("No credentials found")
30
- from_email = credentials.get("from_email", "Manoj <manoj@agentr.dev>")
31
- url = "https://api.resend.com/emails"
32
- body = {"from": from_email, "to": [to], "subject": subject, "text": content}
33
- self._post(url, body)
34
- return "Sent Successfully"
35
-
36
- def list_tools(self):
37
- return [self.send_email]
@@ -1,46 +0,0 @@
1
-
2
- # Retell Ai MCP Server
3
-
4
- An MCP Server for the Retell Ai 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 Retell Ai 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_v2_get_call_by_call_id | Retrieve detailed information about a specific call using its call ID. |
25
- | post_v2_create_phone_call | Initiates a phone call using a JSON payload with specified parameters. |
26
- | post_v2_create_web_call | Creates a web call via a POST request to the v2 endpoint with specified agent ID and optional metadata or dynamic variables. |
27
- | get_get_voice_by_voice_id | Fetches voice details based on the provided voice ID. |
28
- | post_v2_list_calls | Sends a POST request to list call records with optional filtering, sorting, pagination, and limits. |
29
- | post_create_phone_number | Creates a phone number with the specified area code and optional parameters. |
30
- | get_get_phone_number_by_phone_number | Retrieves phone number details by making a GET request to the API endpoint using the provided phone number. |
31
- | get_list_phone_numbers | Retrieves a list of phone numbers from the remote API. |
32
- | patch_update_phone_number_by_phone_number | Updates the information of a phone number by its number, allowing optional modification of inbound and outbound agent IDs and nickname. |
33
- | delete_delete_phone_number_by_phone_number | Deletes a phone number resource by its phone number identifier via an HTTP DELETE request. |
34
-
35
-
36
-
37
- ## Usage
38
-
39
- - Login to AgentR
40
- - Follow the quickstart guide to setup MCP Server for your client
41
- - Visit Apps Store and enable the Retell Ai app
42
- - Restart the MCP Server
43
-
44
- ### Local Development
45
-
46
- - Follow the README to test with the local MCP Server
File without changes
@@ -1,333 +0,0 @@
1
- from typing import Any
2
-
3
- from universal_mcp.applications import APIApplication
4
- from universal_mcp.integrations import Integration
5
-
6
-
7
- class RetellAiApp(APIApplication):
8
- def __init__(self, integration: Integration = None, **kwargs) -> None:
9
- super().__init__(name="retell-ai", integration=integration, **kwargs)
10
- self.base_url = "https://api.retellai.com"
11
-
12
- def get_v2_get_call_by_call_id(self, call_id) -> dict[str, Any]:
13
- """
14
- Retrieve detailed information about a specific call using its call ID.
15
-
16
- Args:
17
- call_id: The unique identifier of the call to retrieve. Must not be None.
18
-
19
- Returns:
20
- A dictionary containing the details of the requested call as returned by the API.
21
-
22
- Raises:
23
- ValueError: If the 'call_id' parameter is None.
24
- HTTPError: If the HTTP request to the API fails or returns an unsuccessful status code.
25
-
26
- Tags:
27
- get, call, api, important
28
- """
29
- if call_id is None:
30
- raise ValueError("Missing required parameter 'call_id'")
31
- url = f"{self.base_url}/v2/get-call/{call_id}"
32
- query_params = {}
33
- response = self._get(url, params=query_params)
34
- response.raise_for_status()
35
- return response.json()
36
-
37
- def post_v2_create_phone_call(
38
- self,
39
- from_number,
40
- to_number,
41
- override_agent_id=None,
42
- metadata=None,
43
- retell_llm_dynamic_variables=None,
44
- ) -> dict[str, Any]:
45
- """
46
- Initiates a phone call using a JSON payload with specified parameters.
47
-
48
- Args:
49
- from_number: The source number for the call.
50
- to_number: The destination number for the call.
51
- override_agent_id: Optional ID for overriding the default agent.
52
- metadata: Optional metadata to be included with the call request.
53
- retell_llm_dynamic_variables: Optional dynamic variables for LLM (Large Language Model) processing.
54
-
55
- Returns:
56
- A dictionary containing the response data for the created phone call.
57
-
58
- Raises:
59
- ValueError: Raised if either 'from_number' or 'to_number' is missing.
60
-
61
- Tags:
62
- initiate, create-call, async_job, management, important
63
- """
64
- if from_number is None:
65
- raise ValueError("Missing required parameter 'from_number'")
66
- if to_number is None:
67
- raise ValueError("Missing required parameter 'to_number'")
68
- request_body = {
69
- "from_number": from_number,
70
- "to_number": to_number,
71
- "override_agent_id": override_agent_id,
72
- "metadata": metadata,
73
- "retell_llm_dynamic_variables": retell_llm_dynamic_variables,
74
- }
75
- request_body = {k: v for k, v in request_body.items() if v is not None}
76
- url = f"{self.base_url}/v2/create-phone-call"
77
- query_params = {}
78
- response = self._post(url, data=request_body, params=query_params)
79
- response.raise_for_status()
80
- return response.json()
81
-
82
- def post_v2_create_web_call(
83
- self, agent_id, metadata=None, retell_llm_dynamic_variables=None
84
- ) -> dict[str, Any]:
85
- """
86
- Creates a web call via a POST request to the v2 endpoint with specified agent ID and optional metadata or dynamic variables.
87
-
88
- Args:
89
- agent_id: Required identifier of the agent initiating the web call.
90
- metadata: Optional metadata to include in the web call request.
91
- retell_llm_dynamic_variables: Optional dynamic variables for LLN model customization.
92
-
93
- Returns:
94
- A dictionary containing the response details from the web call creation request.
95
-
96
- Raises:
97
- ValueError: Raised when the required 'agent_id' parameter is missing.
98
-
99
- Tags:
100
- create, web-calls, api-call, important
101
- """
102
- if agent_id is None:
103
- raise ValueError("Missing required parameter 'agent_id'")
104
- request_body = {
105
- "agent_id": agent_id,
106
- "metadata": metadata,
107
- "retell_llm_dynamic_variables": retell_llm_dynamic_variables,
108
- }
109
- request_body = {k: v for k, v in request_body.items() if v is not None}
110
- url = f"{self.base_url}/v2/create-web-call"
111
- query_params = {}
112
- response = self._post(url, data=request_body, params=query_params)
113
- response.raise_for_status()
114
- return response.json()
115
-
116
- def get_get_voice_by_voice_id(self, voice_id) -> dict[str, Any]:
117
- """
118
- Fetches voice details based on the provided voice ID.
119
-
120
- Args:
121
- voice_id: The unique identifier of the voice to retrieve.
122
-
123
- Returns:
124
- A dictionary containing voice details.
125
-
126
- Raises:
127
- ValueError: Raised when the 'voice_id' parameter is missing or None.
128
-
129
- Tags:
130
- retrieve, voice, important, data-fetched
131
- """
132
- if voice_id is None:
133
- raise ValueError("Missing required parameter 'voice_id'")
134
- url = f"{self.base_url}/get-voice/{voice_id}"
135
- query_params = {}
136
- response = self._get(url, params=query_params)
137
- response.raise_for_status()
138
- return response.json()
139
-
140
- def post_v2_list_calls(
141
- self, filter_criteria=None, sort_order=None, limit=None, pagination_key=None
142
- ) -> list[Any]:
143
- """
144
- Sends a POST request to list call records with optional filtering, sorting, pagination, and limits.
145
-
146
- Args:
147
- filter_criteria: Optional dictionary specifying filter conditions for returned call records.
148
- sort_order: Optional sorting instructions (e.g., by date or status) for the call records.
149
- limit: Optional integer specifying the maximum number of call records to return.
150
- pagination_key: Optional key indicating where to continue fetching records for paginated results.
151
-
152
- Returns:
153
- A list of call record objects returned from the API.
154
-
155
- Raises:
156
- HTTPError: If the HTTP request to the remote service fails or returns an error status code.
157
-
158
- Tags:
159
- list, calls, api, batch, management, important
160
- """
161
- request_body = {
162
- "filter_criteria": filter_criteria,
163
- "sort_order": sort_order,
164
- "limit": limit,
165
- "pagination_key": pagination_key,
166
- }
167
- request_body = {k: v for k, v in request_body.items() if v is not None}
168
- url = f"{self.base_url}/v2/list-calls"
169
- query_params = {}
170
- response = self._post(url, data=request_body, params=query_params)
171
- response.raise_for_status()
172
- return response.json()
173
-
174
- def post_create_phone_number(
175
- self, area_code, inbound_agent_id=None, outbound_agent_id=None, nickname=None
176
- ) -> dict[str, Any]:
177
- """
178
- Creates a phone number with the specified area code and optional parameters.
179
-
180
- Args:
181
- area_code: The area code for the phone number (required).
182
- inbound_agent_id: The ID of the agent to handle inbound calls (optional).
183
- outbound_agent_id: The ID of the agent to handle outbound calls (optional).
184
- nickname: A user-friendly name for the phone number (optional).
185
-
186
- Returns:
187
- A dictionary containing the created phone number details and any associated metadata.
188
-
189
- Raises:
190
- ValueError: When the required parameter 'area_code' is None or not provided.
191
- HTTPError: When the API request fails with an error status code.
192
-
193
- Tags:
194
- create, phone, post, communication, important
195
- """
196
- if area_code is None:
197
- raise ValueError("Missing required parameter 'area_code'")
198
- request_body = {
199
- "inbound_agent_id": inbound_agent_id,
200
- "outbound_agent_id": outbound_agent_id,
201
- "area_code": area_code,
202
- "nickname": nickname,
203
- }
204
- request_body = {k: v for k, v in request_body.items() if v is not None}
205
- url = f"{self.base_url}/create-phone-number"
206
- query_params = {}
207
- response = self._post(url, data=request_body, params=query_params)
208
- response.raise_for_status()
209
- return response.json()
210
-
211
- def get_get_phone_number_by_phone_number(self, phone_number) -> dict[str, Any]:
212
- """
213
- Retrieves phone number details by making a GET request to the API endpoint using the provided phone number.
214
-
215
- Args:
216
- phone_number: str. The phone number to look up. Must not be None.
217
-
218
- Returns:
219
- dict[str, Any]: A dictionary containing the details associated with the given phone number as returned by the API.
220
-
221
- Raises:
222
- ValueError: If the 'phone_number' parameter is None.
223
- requests.HTTPError: If the HTTP request fails or an error response is returned from the API.
224
-
225
- Tags:
226
- get, phone-number, api, lookup, important
227
- """
228
- if phone_number is None:
229
- raise ValueError("Missing required parameter 'phone_number'")
230
- url = f"{self.base_url}/get-phone-number/{phone_number}"
231
- query_params = {}
232
- response = self._get(url, params=query_params)
233
- response.raise_for_status()
234
- return response.json()
235
-
236
- def get_list_phone_numbers(
237
- self,
238
- ) -> list[Any]:
239
- """
240
- Retrieves a list of phone numbers from the remote API.
241
-
242
- Args:
243
- None: This function takes no arguments
244
-
245
- Returns:
246
- A list containing the phone numbers returned by the API.
247
-
248
- Raises:
249
- requests.HTTPError: If the HTTP request to the API fails or returns an unsuccessful status code.
250
-
251
- Tags:
252
- get, list, phone-numbers, api, synchronous, important
253
- """
254
- url = f"{self.base_url}/list-phone-numbers"
255
- query_params = {}
256
- response = self._get(url, params=query_params)
257
- response.raise_for_status()
258
- return response.json()
259
-
260
- def patch_update_phone_number_by_phone_number(
261
- self, phone_number, inbound_agent_id=None, outbound_agent_id=None, nickname=None
262
- ) -> dict[str, Any]:
263
- """
264
- Updates the information of a phone number by its number, allowing optional modification of inbound and outbound agent IDs and nickname.
265
-
266
- Args:
267
- phone_number: str. The phone number to update. This parameter is required.
268
- inbound_agent_id: Optional[str]. The ID of the inbound agent to associate with the phone number. If None, this field will not be updated.
269
- outbound_agent_id: Optional[str]. The ID of the outbound agent to associate with the phone number. If None, this field will not be updated.
270
- nickname: Optional[str]. The nickname to assign to the phone number. If None, this field will not be updated.
271
-
272
- Returns:
273
- dict[str, Any]: A dictionary containing the updated phone number information as returned by the API.
274
-
275
- Raises:
276
- ValueError: If the required parameter 'phone_number' is not provided.
277
- requests.HTTPError: If the HTTP PATCH request fails or the response has an error status.
278
-
279
- Tags:
280
- update, phone-number, api, patch, management
281
- """
282
- if phone_number is None:
283
- raise ValueError("Missing required parameter 'phone_number'")
284
- request_body = {
285
- "inbound_agent_id": inbound_agent_id,
286
- "outbound_agent_id": outbound_agent_id,
287
- "nickname": nickname,
288
- }
289
- request_body = {k: v for k, v in request_body.items() if v is not None}
290
- url = f"{self.base_url}/update-phone-number/{phone_number}"
291
- query_params = {}
292
- response = self._patch(url, data=request_body, params=query_params)
293
- response.raise_for_status()
294
- return response.json()
295
-
296
- def delete_delete_phone_number_by_phone_number(self, phone_number) -> Any:
297
- """
298
- Deletes a phone number resource by its phone number identifier via an HTTP DELETE request.
299
-
300
- Args:
301
- phone_number: The phone number (str or compatible type) identifying the resource to be deleted.
302
-
303
- Returns:
304
- The server's JSON response as a Python object upon successful deletion.
305
-
306
- Raises:
307
- ValueError: If 'phone_number' is None.
308
- requests.HTTPError: If the HTTP DELETE request results in an error status code.
309
-
310
- Tags:
311
- delete, phone-number, api, management, important
312
- """
313
- if phone_number is None:
314
- raise ValueError("Missing required parameter 'phone_number'")
315
- url = f"{self.base_url}/delete-phone-number/{phone_number}"
316
- query_params = {}
317
- response = self._delete(url, params=query_params)
318
- response.raise_for_status()
319
- return response.json()
320
-
321
- def list_tools(self):
322
- return [
323
- self.get_v2_get_call_by_call_id,
324
- self.post_v2_create_phone_call,
325
- self.post_v2_create_web_call,
326
- self.get_get_voice_by_voice_id,
327
- self.post_v2_list_calls,
328
- self.post_create_phone_number,
329
- self.get_get_phone_number_by_phone_number,
330
- self.get_list_phone_numbers,
331
- self.patch_update_phone_number_by_phone_number,
332
- self.delete_delete_phone_number_by_phone_number,
333
- ]
@@ -1,42 +0,0 @@
1
-
2
- # Rocketlane MCP Server
3
-
4
- An MCP Server for the Rocketlane 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 Rocketlane 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_subscription | Retrieves subscription details from the server. |
25
- | get_home | Retrieves the JSON response from the '/home' endpoint of the configured API. |
26
- | get_all_projects | Retrieves a list of all projects from the remote service. |
27
- | get_projects_by_projectid | Retrieves project details for a given project ID from the server. |
28
- | get_projects_by_projectid_tasks | Retrieves a list of tasks associated with a given project ID. |
29
- | create_task | Creates a new task within the specified project, assigning optional details such as description, name, assignee, start date, and due date. |
30
-
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 Rocketlane 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