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.
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/METADATA +1 -1
- universal_mcp-0.1.13rc2.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.13rc2.dist-info}/WHEEL +0 -0
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/entry_points.txt +0 -0
@@ -1,194 +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 RocketlaneApp(APIApplication):
|
8
|
-
def __init__(self, integration: Integration = None, **kwargs) -> None:
|
9
|
-
super().__init__(name="rocketlane", integration=integration, **kwargs)
|
10
|
-
subdomain = self.integration.get_credentials().get("subdomain")
|
11
|
-
self.base_url = f"https://{subdomain}.api.rocketlane.com/api/v1"
|
12
|
-
|
13
|
-
def _get_headers(self) -> dict[str, Any]:
|
14
|
-
api_key = self.integration.get_credentials().get("api_key")
|
15
|
-
return {
|
16
|
-
"api-key": f"{api_key}",
|
17
|
-
"Content-Type": "application/json",
|
18
|
-
"Accept": "application/json",
|
19
|
-
}
|
20
|
-
|
21
|
-
def get_subscription(
|
22
|
-
self,
|
23
|
-
) -> Any:
|
24
|
-
"""
|
25
|
-
Retrieves subscription details from the server.
|
26
|
-
|
27
|
-
Args:
|
28
|
-
None: This function does not take any parameters.
|
29
|
-
|
30
|
-
Returns:
|
31
|
-
A JSON response containing subscription details.
|
32
|
-
|
33
|
-
Raises:
|
34
|
-
requests.HTTPError: Raised if an HTTP error occurs during the request
|
35
|
-
|
36
|
-
Tags:
|
37
|
-
fetch, subscription, management, important
|
38
|
-
"""
|
39
|
-
url = f"{self.base_url}/subscription"
|
40
|
-
query_params = {}
|
41
|
-
response = self._get(url, params=query_params)
|
42
|
-
response.raise_for_status()
|
43
|
-
return response.json()
|
44
|
-
|
45
|
-
def get_home(
|
46
|
-
self,
|
47
|
-
) -> Any:
|
48
|
-
"""
|
49
|
-
Retrieves the JSON response from the '/home' endpoint of the configured API.
|
50
|
-
|
51
|
-
Returns:
|
52
|
-
Any: Parsed JSON data returned by the '/home' endpoint.
|
53
|
-
|
54
|
-
Raises:
|
55
|
-
requests.HTTPError: If the HTTP request to the '/home' endpoint returns an unsuccessful status code.
|
56
|
-
|
57
|
-
Tags:
|
58
|
-
get, home, api, request, important
|
59
|
-
"""
|
60
|
-
url = f"{self.base_url}/home"
|
61
|
-
query_params = {}
|
62
|
-
response = self._get(url, params=query_params)
|
63
|
-
response.raise_for_status()
|
64
|
-
return response.json()
|
65
|
-
|
66
|
-
def get_all_projects(
|
67
|
-
self,
|
68
|
-
) -> dict[str, Any]:
|
69
|
-
"""
|
70
|
-
Retrieves a list of all projects from the remote service.
|
71
|
-
|
72
|
-
Args:
|
73
|
-
None: This function takes no arguments
|
74
|
-
|
75
|
-
Returns:
|
76
|
-
A dictionary containing the JSON response data representing all available projects.
|
77
|
-
|
78
|
-
Raises:
|
79
|
-
HTTPError: If the HTTP request to retrieve the projects fails or returns an unsuccessful status code.
|
80
|
-
|
81
|
-
Tags:
|
82
|
-
list, projects, api, important
|
83
|
-
"""
|
84
|
-
url = f"{self.base_url}/projects"
|
85
|
-
query_params = {}
|
86
|
-
response = self._get(url, params=query_params)
|
87
|
-
response.raise_for_status()
|
88
|
-
return response.json()
|
89
|
-
|
90
|
-
def get_projects_by_projectid(self, projectId) -> Any:
|
91
|
-
"""
|
92
|
-
Retrieves project details for a given project ID from the server.
|
93
|
-
|
94
|
-
Args:
|
95
|
-
projectId: The unique identifier of the project to retrieve.
|
96
|
-
|
97
|
-
Returns:
|
98
|
-
A JSON-deserialized object containing the project's details as returned by the server.
|
99
|
-
|
100
|
-
Raises:
|
101
|
-
ValueError: Raised if 'projectId' is None.
|
102
|
-
requests.HTTPError: Raised if the HTTP request to retrieve the project fails (e.g., 4xx or 5xx response).
|
103
|
-
|
104
|
-
Tags:
|
105
|
-
get, project, fetch, management, important
|
106
|
-
"""
|
107
|
-
if projectId is None:
|
108
|
-
raise ValueError("Missing required parameter 'projectId'")
|
109
|
-
url = f"{self.base_url}/projects/{projectId}"
|
110
|
-
query_params = {}
|
111
|
-
response = self._get(url, params=query_params)
|
112
|
-
response.raise_for_status()
|
113
|
-
return response.json()
|
114
|
-
|
115
|
-
def get_projects_by_projectid_tasks(self, projectId) -> Any:
|
116
|
-
"""
|
117
|
-
Retrieves a list of tasks associated with a given project ID.
|
118
|
-
|
119
|
-
Args:
|
120
|
-
projectId: str. The unique identifier of the project whose tasks are to be retrieved.
|
121
|
-
|
122
|
-
Returns:
|
123
|
-
dict. A JSON object containing the list of tasks for the specified project.
|
124
|
-
|
125
|
-
Raises:
|
126
|
-
ValueError: If the projectId parameter is None.
|
127
|
-
requests.HTTPError: If the HTTP request to retrieve tasks fails (i.e., non-2xx response).
|
128
|
-
|
129
|
-
Tags:
|
130
|
-
get, list, project-tasks, management, important
|
131
|
-
"""
|
132
|
-
if projectId is None:
|
133
|
-
raise ValueError("Missing required parameter 'projectId'")
|
134
|
-
url = f"{self.base_url}/projects/{projectId}/tasks"
|
135
|
-
query_params = {}
|
136
|
-
response = self._get(url, params=query_params)
|
137
|
-
response.raise_for_status()
|
138
|
-
return response.json()
|
139
|
-
|
140
|
-
def create_task(
|
141
|
-
self,
|
142
|
-
projectId,
|
143
|
-
taskDescription=None,
|
144
|
-
taskName=None,
|
145
|
-
assignee=None,
|
146
|
-
startDate=None,
|
147
|
-
dueDate=None,
|
148
|
-
) -> dict[str, Any]:
|
149
|
-
"""
|
150
|
-
Creates a new task within the specified project, assigning optional details such as description, name, assignee, start date, and due date.
|
151
|
-
|
152
|
-
Args:
|
153
|
-
projectId: str. The unique identifier of the project in which to create the task. Required.
|
154
|
-
taskDescription: Optional[str]. A description of the task to be created.
|
155
|
-
taskName: Optional[str]. The name of the new task.
|
156
|
-
assignee: Optional[str]. The user to whom the task is assigned.
|
157
|
-
startDate: Optional[str]. The starting date for the task, formatted as an ISO 8601 string.
|
158
|
-
dueDate: Optional[str]. The due date for task completion, formatted as an ISO 8601 string.
|
159
|
-
|
160
|
-
Returns:
|
161
|
-
dict[str, Any]: A dictionary containing the details of the created task as returned by the API.
|
162
|
-
|
163
|
-
Raises:
|
164
|
-
ValueError: If 'projectId' is not provided.
|
165
|
-
requests.HTTPError: If the API request fails and returns a non-success HTTP status code.
|
166
|
-
|
167
|
-
Tags:
|
168
|
-
create, task, management, project, api, important
|
169
|
-
"""
|
170
|
-
if projectId is None:
|
171
|
-
raise ValueError("Missing required parameter 'projectId'")
|
172
|
-
request_body = {
|
173
|
-
"taskDescription": taskDescription,
|
174
|
-
"taskName": taskName,
|
175
|
-
"assignee": assignee,
|
176
|
-
"startDate": startDate,
|
177
|
-
"dueDate": dueDate,
|
178
|
-
}
|
179
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
180
|
-
url = f"{self.base_url}/projects/{projectId}/tasks"
|
181
|
-
query_params = {}
|
182
|
-
response = self._post(url, data=request_body, params=query_params)
|
183
|
-
response.raise_for_status()
|
184
|
-
return response.json()
|
185
|
-
|
186
|
-
def list_tools(self):
|
187
|
-
return [
|
188
|
-
self.get_subscription,
|
189
|
-
self.get_home,
|
190
|
-
self.get_all_projects,
|
191
|
-
self.get_projects_by_projectid,
|
192
|
-
self.get_projects_by_projectid_tasks,
|
193
|
-
self.create_task,
|
194
|
-
]
|
@@ -1,37 +0,0 @@
|
|
1
|
-
|
2
|
-
# Serp MCP Server
|
3
|
-
|
4
|
-
An MCP Server for the Serp 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 Serp 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
|
-
| search | Perform a search on the specified engine using SerpApi. |
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
## Usage
|
29
|
-
|
30
|
-
- Login to AgentR
|
31
|
-
- Follow the quickstart guide to setup MCP Server for your client
|
32
|
-
- Visit Apps Store and enable the Serp app
|
33
|
-
- Restart the MCP Server
|
34
|
-
|
35
|
-
### Local Development
|
36
|
-
|
37
|
-
- Follow the README to test with the local MCP Server
|
@@ -1,73 +0,0 @@
|
|
1
|
-
import httpx
|
2
|
-
from serpapi import SerpApiClient as SerpApiSearch
|
3
|
-
|
4
|
-
from universal_mcp.applications.application import APIApplication
|
5
|
-
|
6
|
-
|
7
|
-
class SerpapiApp(APIApplication):
|
8
|
-
def __init__(self, **kwargs):
|
9
|
-
super().__init__(name="serpapi", **kwargs)
|
10
|
-
|
11
|
-
async def search(self, params: dict[str, any] = None) -> str:
|
12
|
-
"""
|
13
|
-
Performs an asynchronous search using the SerpApi service and returns formatted search results.
|
14
|
-
|
15
|
-
Args:
|
16
|
-
params: Dictionary of engine-specific parameters (e.g., {'q': 'Coffee', 'engine': 'google_light', 'location': 'Austin, TX'}). Defaults to None.
|
17
|
-
|
18
|
-
Returns:
|
19
|
-
A formatted string containing search results with titles, links, and snippets, or an error message if the search fails.
|
20
|
-
|
21
|
-
Raises:
|
22
|
-
httpx.HTTPStatusError: Raised when the API request fails due to HTTP errors (401 for invalid API key, 429 for rate limiting)
|
23
|
-
Exception: Raised for general errors such as network issues or invalid parameters
|
24
|
-
|
25
|
-
Tags:
|
26
|
-
search, async, web-scraping, api, serpapi, important
|
27
|
-
"""
|
28
|
-
if params is None:
|
29
|
-
params = {}
|
30
|
-
api_key = self.integration.get_credentials().get("api_key")
|
31
|
-
params = {
|
32
|
-
"api_key": api_key,
|
33
|
-
"engine": "google_light", # Fastest engine by default
|
34
|
-
**params, # Include any additional parameters
|
35
|
-
}
|
36
|
-
try:
|
37
|
-
search = SerpApiSearch(params)
|
38
|
-
data = search.get_dict()
|
39
|
-
|
40
|
-
# Process organic search results if available
|
41
|
-
if "organic_results" in data:
|
42
|
-
formatted_results = []
|
43
|
-
for result in data.get("organic_results", []):
|
44
|
-
title = result.get("title", "No title")
|
45
|
-
link = result.get("link", "No link")
|
46
|
-
snippet = result.get("snippet", "No snippet")
|
47
|
-
formatted_results.append(
|
48
|
-
f"Title: {title}\nLink: {link}\nSnippet: {snippet}\n"
|
49
|
-
)
|
50
|
-
return (
|
51
|
-
"\n".join(formatted_results)
|
52
|
-
if formatted_results
|
53
|
-
else "No organic results found"
|
54
|
-
)
|
55
|
-
else:
|
56
|
-
return "No organic results found"
|
57
|
-
|
58
|
-
# Handle HTTP-specific errors
|
59
|
-
except httpx.HTTPStatusError as e:
|
60
|
-
if e.response.status_code == 429:
|
61
|
-
return "Error: Rate limit exceeded. Please try again later."
|
62
|
-
elif e.response.status_code == 401:
|
63
|
-
return "Error: Invalid API key. Please check your SERPAPI_API_KEY."
|
64
|
-
else:
|
65
|
-
return f"Error: {e.response.status_code} - {e.response.text}"
|
66
|
-
# Handle other exceptions (e.g., network issues)
|
67
|
-
except Exception as e:
|
68
|
-
return f"Error: {str(e)}"
|
69
|
-
|
70
|
-
def list_tools(self):
|
71
|
-
return [
|
72
|
-
self.search,
|
73
|
-
]
|
@@ -1,153 +0,0 @@
|
|
1
|
-
|
2
|
-
# Shortcut MCP Server
|
3
|
-
|
4
|
-
An MCP Server for the Shortcut 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 Shortcut 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
|
-
| list_categories | Retrieves a list of categories from the API. |
|
25
|
-
| create_category | Creates a new category with the specified parameters. |
|
26
|
-
| get_category | Fetches a category by its public ID. |
|
27
|
-
| update_category | Updates a category with the specified attributes. |
|
28
|
-
| delete_category | Deletes a category by its public ID. |
|
29
|
-
| list_category_milestones | Lists all milestones associated with a specified category. |
|
30
|
-
| list_category_objectives | Fetches and lists objectives for a given category based on its public ID. |
|
31
|
-
| list_custom_fields | Retrieves a list of custom fields from the API. |
|
32
|
-
| get_custom_field | Retrieves a custom field by its public ID. |
|
33
|
-
| update_custom_field | Updates an existing custom field's attributes with the provided values. |
|
34
|
-
| delete_custom_field | Deletes a custom field specified by its public identifier. |
|
35
|
-
| list_entity_templates | Retrieves a list of entity templates from an API endpoint. |
|
36
|
-
| create_entity_template | Creates an entity template with the provided name, story contents, and optional author ID. |
|
37
|
-
| disable_story_templates | Disables story entity templates by sending a PUT request to the API endpoint. |
|
38
|
-
| enable_story_templates | Enables story templates by making a PUT request to the entity-templates endpoint. |
|
39
|
-
| get_entity_template | Retrieves a specific entity template by its public ID. |
|
40
|
-
| update_entity_template | Updates an entity template using the provided public ID, optionally setting its name and story contents. |
|
41
|
-
| delete_entity_template | Deletes an entity template by its public ID. |
|
42
|
-
| get_epic_workflow | Retrieves the epic workflow configuration from the API. |
|
43
|
-
| list_epics | Fetches a list of epics from the API. |
|
44
|
-
| create_epic | Creates a new epic in the project management system with the specified properties. |
|
45
|
-
| get_epic | Fetches an epic by its public ID |
|
46
|
-
| update_epic | Updates an epic with the provided details. |
|
47
|
-
| delete_epic | Deletes an epic by its public ID. |
|
48
|
-
| list_epic_comments | Retrieves a list of comments for a specified epic. |
|
49
|
-
| create_epic_comment | Creates a comment on an epic with the specified details. |
|
50
|
-
| get_epic_comment | Retrieves a specific comment from an epic by their respective public IDs. |
|
51
|
-
| update_epic_comment | Updates the text of an existing comment on a specified epic. |
|
52
|
-
| create_epic_comment_comment | Creates a reply to an existing comment on a specified epic, sending the reply to the backend API and returning the created comment data. |
|
53
|
-
| delete_epic_comment | Deletes a specific comment from an epic using its public identifiers. |
|
54
|
-
| list_epic_stories | Retrieves a list of stories associated with a specific epic. |
|
55
|
-
| unlink_productboard_from_epic | Unlinks a ProductBoard integration from an epic in the system. |
|
56
|
-
| get_external_link_stories | Retrieves stories associated with an external link. |
|
57
|
-
| list_files | Retrieves a list of files from the remote API endpoint. |
|
58
|
-
| get_file | Retrieves a file based on its public ID, returning a dictionary containing file information. |
|
59
|
-
| update_file | Updates metadata for a file identified by its public ID. |
|
60
|
-
| delete_file | Deletes a file identified by a public ID from the server. |
|
61
|
-
| list_groups | Retrieves a list of all groups from the API. |
|
62
|
-
| create_group | Creates a new group with the specified configuration and returns the group's details. |
|
63
|
-
| get_group | Retrieves information about a specific group using its public ID. |
|
64
|
-
| update_group | Updates the properties of an existing group by its public ID. |
|
65
|
-
| list_group_stories | Retrieves a list of stories from a specific group. |
|
66
|
-
| list_iterations | Lists all available iterations from the API. |
|
67
|
-
| create_iteration | Creates a new iteration with the specified details and returns the server's response as a dictionary. |
|
68
|
-
| disable_iterations | Disables iterations by making a PUT request to the iterations API endpoint. |
|
69
|
-
| enable_iterations | Enable iterations for the API service. |
|
70
|
-
| get_iteration | Retrieves iteration details using the specified public ID. |
|
71
|
-
| update_iteration | Updates an existing iteration with the provided attributes. |
|
72
|
-
| delete_iteration | Deletes a specific iteration identified by its public ID. |
|
73
|
-
| list_iteration_stories | Retrieves a list of stories for a specified iteration, optionally including their descriptions. |
|
74
|
-
| get_key_result | Retrieves detailed information for a specific key result using its public identifier. |
|
75
|
-
| update_key_result | Updates a key result with the provided details. |
|
76
|
-
| list_labels | Fetches a list of labels from the API. |
|
77
|
-
| create_label | Creates a new label with the specified attributes. |
|
78
|
-
| get_label | Retrieves a label's details from the API using its public identifier. |
|
79
|
-
| update_label | Updates a label with the specified information. |
|
80
|
-
| delete_label | Deletes a label identified by its public ID via an HTTP DELETE request. |
|
81
|
-
| list_label_epics | Retrieves a list of epics associated with a specific label. |
|
82
|
-
| list_label_stories | Retrieves a list of stories associated with a specific label. |
|
83
|
-
| list_linked_files | Retrieve a list of all linked files. |
|
84
|
-
| create_linked_file | Creates a linked file with the specified attributes. |
|
85
|
-
| get_linked_file | Fetches details for a linked file by its public identifier. |
|
86
|
-
| update_linked_file | Updates a linked file with the specified parameters. |
|
87
|
-
| delete_linked_file | Deletes a linked file by its public ID using the API. |
|
88
|
-
| get_current_member_info | Retrieves information about the current authenticated member. |
|
89
|
-
| list_milestones | Lists milestones by fetching them from a specified API endpoint. |
|
90
|
-
| create_milestone | Creates a new milestone with the specified parameters. |
|
91
|
-
| get_milestone | Retrieves a milestone resource by its public identifier. |
|
92
|
-
| update_milestone | Updates the properties of an existing milestone with the given parameters. |
|
93
|
-
| delete_milestone | Deletes a milestone by its public ID. |
|
94
|
-
| list_milestone_epics | Retrieves a list of epics associated with a specified milestone. |
|
95
|
-
| list_objectives | Retrieves a list of all objectives from the API endpoint. |
|
96
|
-
| create_objective | Creates a new objective resource with the specified attributes and returns the created objective's data. |
|
97
|
-
| get_objective | Retrieves an objective by its public ID from the API. |
|
98
|
-
| update_objective | Updates an objective by its public ID with new values for fields such as description, archived status, completion and start timestamps, name, state, categories, and relative ordering. |
|
99
|
-
| delete_objective | Deletes an objective by its public ID using an HTTP DELETE request. |
|
100
|
-
| list_objective_epics | Retrieves a list of epics associated with a specific objective. |
|
101
|
-
| list_projects | Retrieves and lists all available projects from the API. |
|
102
|
-
| create_project | Creates a new project with the specified parameters. |
|
103
|
-
| get_project | Retrieves project information by its public ID. |
|
104
|
-
| update_project | Updates a project with the provided parameters. |
|
105
|
-
| delete_project | Deletes a project using its public ID. |
|
106
|
-
| list_stories | Retrieves a list of stories for a specific project, with optional inclusion of story descriptions. |
|
107
|
-
| list_repositories | Lists all repositories from the API. |
|
108
|
-
| get_repository | Retrieves detailed information about a repository by its public ID. |
|
109
|
-
| search | Performs a search operation based on the provided query string and optional parameters like page size and entity types. |
|
110
|
-
| search_epics | Searches for epics based on the provided query parameters. |
|
111
|
-
| search_iterations | Searches for iterations based on a query and additional parameters. |
|
112
|
-
| search_milestones | Searches for milestones matching the provided query and returns the results as a dictionary. |
|
113
|
-
| search_objectives | Searches for objectives based on the specified query and returns the search results. |
|
114
|
-
| search_stories | Searches for stories matching the given query and optional filters, returning paginated results from the stories API. |
|
115
|
-
| create_story | Creates a new story with the specified attributes and returns the created story's data. |
|
116
|
-
| update_multiple_stories | Updates multiple stories in bulk with various fields and configuration changes. |
|
117
|
-
| create_multiple_stories | Creates multiple stories in bulk using the API. |
|
118
|
-
| create_story_from_template | Creates a new story from an existing story template. |
|
119
|
-
| search_stories_old | Searches for stories based on various filter criteria. |
|
120
|
-
| get_story | Retrieves a story from the API based on its public ID |
|
121
|
-
| update_story | Updates a story in the project management system with the specified attributes. |
|
122
|
-
| delete_story | Deletes a story using its public ID. |
|
123
|
-
| list_story_comment | Retrieves a list of comments for a specific story. |
|
124
|
-
| create_story_comment | Creates a new comment on a story by sending a POST request with the comment details to the specified API endpoint. |
|
125
|
-
| get_story_comment | Retrieves a specific comment from a story using the API. |
|
126
|
-
| update_story_comment | Updates a story comment with new text based on the provided story and comment public IDs. |
|
127
|
-
| delete_story_comment | Deletes a specific comment from a story using the provided story and comment public IDs. |
|
128
|
-
| create_story_reaction | Creates a reaction with an emoji to a comment on a story. |
|
129
|
-
| unlink_comment_thread_from_slack | Unlinks a comment thread from Slack for a specific story. |
|
130
|
-
| story_history | Retrieves the full change history for a specified story by its public ID. |
|
131
|
-
| create_task | Creates a task within a specified story. |
|
132
|
-
| get_task | Gets task details for a specific task within a story. |
|
133
|
-
| update_task | Updates the specified task within a story, modifying fields such as description, owners, completion status, and position. |
|
134
|
-
| delete_task | Deletes a task associated with a story based on their respective public IDs. |
|
135
|
-
| create_story_link | Creates a story link between a subject and an object with the specified verb by sending a POST request to the story-links API endpoint. |
|
136
|
-
| get_story_link | Retrieves a specific story link by its public ID. |
|
137
|
-
| update_story_link | Updates an existing story link with new attributes. |
|
138
|
-
| delete_story_link | Deletes a story link by its public ID. |
|
139
|
-
| list_workflows | Retrieves a list of available workflows from the API. |
|
140
|
-
| get_workflow | Retrieves detailed information about a workflow given its public ID. |
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
## Usage
|
145
|
-
|
146
|
-
- Login to AgentR
|
147
|
-
- Follow the quickstart guide to setup MCP Server for your client
|
148
|
-
- Visit Apps Store and enable the Shortcut app
|
149
|
-
- Restart the MCP Server
|
150
|
-
|
151
|
-
### Local Development
|
152
|
-
|
153
|
-
- Follow the README to test with the local MCP Server
|
File without changes
|