This commit is contained in:
2026-07-10 16:56:16 +03:00
parent 979e974521
commit afa2bf5126
6 changed files with 18 additions and 9 deletions
+4 -2
View File
@@ -17,7 +17,8 @@ export function registerAuthTools(server: McpServer): void {
description: "Authenticate to Exchange EWS using NTLM credentials."
+ " On first use all fields except domain are required."
+ " On subsequent logins only password is needed — previously saved"
+ " serverUrl, email, username, and domain are reused automatically from config.",
+ " serverUrl, email, username, and domain are reused"
+ " automatically from config.",
inputSchema: z.object({
serverUrl: z.string().optional().describe("EWS server URL"),
email: z.string().optional().describe("Email address"),
@@ -176,7 +177,8 @@ export function registerAuthTools(server: McpServer): void {
"logout",
{
description:
"Clear stored credentials (serverUrl, email, username, domain, password). No parameters.",
"Clear stored credentials (serverUrl, email, username, domain, password)."
+ " No parameters.",
inputSchema: z.object({}),
outputSchema: z.object({
success: z.boolean(),
+2 -1
View File
@@ -108,7 +108,8 @@ export function registerAvailabilityTools(server: McpServer): void {
"find_meeting_time",
{
description: "Find common free time for multiple attendees."
+ " Queries free/busy for all attendees and returns slots where everyone is available.",
+ " Queries free/busy for all attendees"
+ " and returns slots where everyone is available.",
inputSchema: z.object({
emails: z.string().describe(
"Comma-separated email addresses of attendees",
+4 -2
View File
@@ -14,7 +14,8 @@ export function registerCalendarTools(server: McpServer): void {
startDate: z.string().describe("Start date in YYYY-MM-DD format"),
endDate: z.string().describe("End date in YYYY-MM-DD format"),
includeBody: z.boolean().default(false).describe(
"If true, fetch full event details (organizer, attendees, body) via GetItem",
"If true, fetch full event details (organizer, attendees, body)"
+ " via GetItem",
),
}),
outputSchema: z.object({
@@ -107,7 +108,8 @@ export function registerCalendarTools(server: McpServer): void {
{
description:
"Download all file attachments from a calendar event to disk."
+ " Inline (embedded) attachments are skipped — only standalone file attachments are downloaded.",
+ " Inline (embedded) attachments are skipped —"
+ " only standalone file attachments are downloaded.",
inputSchema: z.object({
itemId: z.string().describe(
"The Exchange ItemId of the calendar event",
+4 -2
View File
@@ -16,7 +16,8 @@ export function registerEmailTools(server: McpServer): void {
+ " Supports optional text search via query/queryScope.",
inputSchema: z.object({
folder: z.string().default("Inbox").describe(
"Folder name (Inbox, Sent, Drafts, Deleted, Junk, or custom). Supports Russian folder names",
"Folder name (Inbox, Sent, Drafts, Deleted, Junk, or custom)."
+ " Supports Russian folder names",
),
limit: z.number().default(10).describe(
"Maximum number of emails to return",
@@ -297,7 +298,8 @@ export function registerEmailTools(server: McpServer): void {
"download_attachments",
{
description: "Download all file attachments from an email to disk."
+ " Inline (embedded) attachments are skipped — only standalone file attachments are downloaded.",
+ " Inline (embedded) attachments are skipped —"
+ " only standalone file attachments are downloaded.",
inputSchema: z.object({
itemId: z.string().describe("The Exchange ItemId of the email"),
targetFolder: z.string().default("/tmp/attachments").describe(
+2 -1
View File
@@ -9,7 +9,8 @@ export function registerFolderTools(server: McpServer): void {
description: "List mailbox folders from the Exchange mailbox.",
inputSchema: z.object({
parentFolderId: z.string().default("msgfolderroot").describe(
"Parent folder to list children of. Supports distinguished names (e.g. inbox, calendar)",
"Parent folder to list children of."
+ " Supports distinguished names (e.g. inbox, calendar)",
),
recursive: z.boolean().default(false).describe(
"If true, recursively traverse all subfolders",
+2 -1
View File
@@ -7,7 +7,8 @@ export function registerPeopleTools(server: McpServer): void {
"find_person",
{
description:
"Search for people in the corporate directory (Active Directory) by name, email, or keyword.",
"Search for people in the corporate directory (Active Directory)"
+ " by name, email, or keyword.",
inputSchema: z.object({
query: z.string().describe(
"Name, email address, or keyword to search for",