Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 14 additions & 33 deletions src/universal_mcp_outlook/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@


class OutlookApp(APIApplication):

def __init__(self, integration: Integration = None, **kwargs) -> None:
super().__init__(name="outlook", integration=integration, **kwargs)
self.base_url = "https://graph.microsoft.com/v1.0"
Expand Down Expand Up @@ -31,17 +32,13 @@ def users_message_reply(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.message, important
"""
users.message, important, destructiveHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
if message_id is None:
raise ValueError("Missing required parameter 'message-id'.")
request_body_data = None
request_body_data = {
"comment": comment,
"message": message,
}
request_body_data = {"comment": comment, "message": message}
request_body_data = {
k: v for k, v in request_body_data.items() if v is not None
}
Expand Down Expand Up @@ -76,15 +73,11 @@ def user_send_mail(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.user.Actions, important
"""
users.user.Actions, important, destructiveHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
request_body_data = None
request_body_data = {
"message": message,
"saveToSentItems": saveToSentItems,
}
request_body_data = {"message": message, "saveToSentItems": saveToSentItems}
request_body_data = {
k: v for k, v in request_body_data.items() if v is not None
}
Expand Down Expand Up @@ -123,8 +116,7 @@ def user_get_mail_folder(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.mailFolder, important
"""
users.mailFolder, important, readOnlyHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
if mailFolder_id is None:
Expand Down Expand Up @@ -177,8 +169,7 @@ def user_list_message(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.message, important
"""
users.message, important, readOnlyHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
url = f"{self.base_url}/users/{user_id}/messages"
Expand Down Expand Up @@ -225,8 +216,7 @@ def user_get_message(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.message, important
"""
users.message, important, readOnlyHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
if message_id is None:
Expand Down Expand Up @@ -259,8 +249,7 @@ def user_delete_message(self, user_id: str, message_id: str) -> Any:
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.message, important
"""
users.message, important, destructiveHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
if message_id is None:
Expand Down Expand Up @@ -305,8 +294,7 @@ def user_message_list_attachment(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
users.message, important
"""
users.message, important, readOnlyHint"""
if user_id is None:
raise ValueError("Missing required parameter 'user-id'.")
if message_id is None:
Expand All @@ -328,11 +316,8 @@ def user_message_list_attachment(
}
response = self._get(url, params=query_params)
return self._handle_response(response)

def get_user_id(
self,
select: list[str] = ["userPrincipalName"],
) -> dict[str, Any]:

def get_user_id(self, select: list[str] = ["userPrincipalName"]) -> dict[str, Any]:
"""
Retrieves the current user.

Expand All @@ -346,15 +331,11 @@ def get_user_id(
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body.

Tags:
me, important
"""
me, important, readOnlyHint"""
url = f"{self.base_url}/me"
query_params = {
"$select": select,
}
query_params = {"$select": select}
response = self._get(url, params=query_params)
return self._handle_response(response)


def list_tools(self):
return [
Expand Down