@softeria/ms-365-mcp-server 0.47.1 → 0.47.3
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.
- package/dist/endpoints.json +0 -56
- package/dist/generated/client.js +0 -231
- package/dist/index.js +3 -1
- package/logs/mcp-server.log +10 -10
- package/package.json +1 -1
- package/src/endpoints.json +0 -56
package/dist/endpoints.json
CHANGED
|
@@ -658,62 +658,6 @@
|
|
|
658
658
|
"toolName": "list-team-members",
|
|
659
659
|
"workScopes": ["TeamMember.Read.All"]
|
|
660
660
|
},
|
|
661
|
-
{
|
|
662
|
-
"pathPattern": "/teams/{team-id}/tags",
|
|
663
|
-
"method": "get",
|
|
664
|
-
"toolName": "list-team-tags",
|
|
665
|
-
"workScopes": ["TeamworkTag.Read.All"],
|
|
666
|
-
"llmTip": "List all tags in a team. Returns tag id, displayName, memberCount, and tagType (standard or scheduled). Use list-joined-teams to find the team ID first."
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
"pathPattern": "/teams/{team-id}/tags",
|
|
670
|
-
"method": "post",
|
|
671
|
-
"toolName": "create-team-tag",
|
|
672
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
673
|
-
"llmTip": "Create a new tag in a team. Body requires displayName (max 40 chars) and an optional members array (max 25 at creation, each with a userId). Use list-team-members to find user IDs. Add more members individually with add-team-tag-member after creation."
|
|
674
|
-
},
|
|
675
|
-
{
|
|
676
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}",
|
|
677
|
-
"method": "get",
|
|
678
|
-
"toolName": "get-team-tag",
|
|
679
|
-
"workScopes": ["TeamworkTag.Read.All"],
|
|
680
|
-
"llmTip": "Get details of a specific tag including displayName, memberCount, and tagType. Use list-team-tags to find the tag ID."
|
|
681
|
-
},
|
|
682
|
-
{
|
|
683
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}",
|
|
684
|
-
"method": "patch",
|
|
685
|
-
"toolName": "update-team-tag",
|
|
686
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
687
|
-
"llmTip": "Update a tag's displayName (max 40 chars). Use list-team-tags to find the tag ID."
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}",
|
|
691
|
-
"method": "delete",
|
|
692
|
-
"toolName": "delete-team-tag",
|
|
693
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
694
|
-
"llmTip": "Permanently delete a tag from a team. This action is irreversible. Use list-team-tags to find the tag ID."
|
|
695
|
-
},
|
|
696
|
-
{
|
|
697
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}/members",
|
|
698
|
-
"method": "get",
|
|
699
|
-
"toolName": "list-team-tag-members",
|
|
700
|
-
"workScopes": ["TeamworkTag.Read.All"],
|
|
701
|
-
"llmTip": "List all members of a specific tag. Returns member id, displayName, tenantId, and userId. Use list-team-tags to find the tag ID."
|
|
702
|
-
},
|
|
703
|
-
{
|
|
704
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}/members",
|
|
705
|
-
"method": "post",
|
|
706
|
-
"toolName": "add-team-tag-member",
|
|
707
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
708
|
-
"llmTip": "Add a member to an existing tag. Body requires userId. Use list-team-members to find the user ID. Max 200 members per tag. Note: this operation requires application permissions (delegated not supported)."
|
|
709
|
-
},
|
|
710
|
-
{
|
|
711
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}/members/{teamworkTagMember-id}",
|
|
712
|
-
"method": "delete",
|
|
713
|
-
"toolName": "remove-team-tag-member",
|
|
714
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
715
|
-
"llmTip": "Remove a member from a tag. Use list-team-tag-members to find the member ID."
|
|
716
|
-
},
|
|
717
661
|
{
|
|
718
662
|
"pathPattern": "/chats/{chat-id}/messages/{chatMessage-id}/replies",
|
|
719
663
|
"method": "get",
|
package/dist/generated/client.js
CHANGED
|
@@ -3559,34 +3559,6 @@ const microsoft_graph_conversationMemberCollectionResponse = z.object({
|
|
|
3559
3559
|
"@odata.nextLink": z.string().nullable(),
|
|
3560
3560
|
value: z.array(microsoft_graph_conversationMember)
|
|
3561
3561
|
}).partial().passthrough();
|
|
3562
|
-
const microsoft_graph_teamworkTagType = z.enum(["standard", "unknownFutureValue"]);
|
|
3563
|
-
const microsoft_graph_teamworkTagMember = z.object({
|
|
3564
|
-
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
3565
|
-
displayName: z.string().describe("The member's display name.").nullish(),
|
|
3566
|
-
tenantId: z.string().describe("The ID of the tenant that the tag member is a part of.").nullish(),
|
|
3567
|
-
userId: z.string().describe("The user ID of the member.").nullish()
|
|
3568
|
-
}).passthrough();
|
|
3569
|
-
const microsoft_graph_teamworkTag = z.object({
|
|
3570
|
-
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
3571
|
-
description: z.string().describe(
|
|
3572
|
-
"The description of the tag as it appears to the user in Microsoft Teams. A teamworkTag can't have more than 200 teamworkTagMembers."
|
|
3573
|
-
).nullish(),
|
|
3574
|
-
displayName: z.string().describe("The name of the tag as it appears to the user in Microsoft Teams.").nullish(),
|
|
3575
|
-
memberCount: z.number().gte(-2147483648).lte(2147483647).describe("The number of users assigned to the tag.").nullish(),
|
|
3576
|
-
tagType: microsoft_graph_teamworkTagType.optional(),
|
|
3577
|
-
teamId: z.string().describe("ID of the team in which the tag is defined.").nullish(),
|
|
3578
|
-
members: z.array(microsoft_graph_teamworkTagMember).describe("Users assigned to the tag.").optional()
|
|
3579
|
-
}).passthrough();
|
|
3580
|
-
const microsoft_graph_teamworkTagCollectionResponse = z.object({
|
|
3581
|
-
"@odata.count": z.number().int().nullable(),
|
|
3582
|
-
"@odata.nextLink": z.string().nullable(),
|
|
3583
|
-
value: z.array(microsoft_graph_teamworkTag)
|
|
3584
|
-
}).partial().passthrough();
|
|
3585
|
-
const microsoft_graph_teamworkTagMemberCollectionResponse = z.object({
|
|
3586
|
-
"@odata.count": z.number().int().nullable(),
|
|
3587
|
-
"@odata.nextLink": z.string().nullable(),
|
|
3588
|
-
value: z.array(microsoft_graph_teamworkTagMember)
|
|
3589
|
-
}).partial().passthrough();
|
|
3590
3562
|
const microsoft_graph_userCollectionResponse = z.object({
|
|
3591
3563
|
"@odata.count": z.number().int().nullable(),
|
|
3592
3564
|
"@odata.nextLink": z.string().nullable(),
|
|
@@ -3947,11 +3919,6 @@ const schemas = {
|
|
|
3947
3919
|
BaseDeltaFunctionResponse,
|
|
3948
3920
|
microsoft_graph_channelCollectionResponse,
|
|
3949
3921
|
microsoft_graph_conversationMemberCollectionResponse,
|
|
3950
|
-
microsoft_graph_teamworkTagType,
|
|
3951
|
-
microsoft_graph_teamworkTagMember,
|
|
3952
|
-
microsoft_graph_teamworkTag,
|
|
3953
|
-
microsoft_graph_teamworkTagCollectionResponse,
|
|
3954
|
-
microsoft_graph_teamworkTagMemberCollectionResponse,
|
|
3955
3922
|
microsoft_graph_userCollectionResponse
|
|
3956
3923
|
};
|
|
3957
3924
|
const endpoints = makeApi([
|
|
@@ -7957,204 +7924,6 @@ To monitor future changes, call the delta API by using the @odata.deltaLink in t
|
|
|
7957
7924
|
],
|
|
7958
7925
|
response: z.void()
|
|
7959
7926
|
},
|
|
7960
|
-
{
|
|
7961
|
-
method: "get",
|
|
7962
|
-
path: "/teams/:teamId/tags",
|
|
7963
|
-
alias: "list-team-tags",
|
|
7964
|
-
description: `Get a list of the tag objects and their properties.`,
|
|
7965
|
-
requestFormat: "json",
|
|
7966
|
-
parameters: [
|
|
7967
|
-
{
|
|
7968
|
-
name: "$top",
|
|
7969
|
-
type: "Query",
|
|
7970
|
-
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
7971
|
-
},
|
|
7972
|
-
{
|
|
7973
|
-
name: "$skip",
|
|
7974
|
-
type: "Query",
|
|
7975
|
-
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
7976
|
-
},
|
|
7977
|
-
{
|
|
7978
|
-
name: "$search",
|
|
7979
|
-
type: "Query",
|
|
7980
|
-
schema: z.string().describe("Search items by search phrases").optional()
|
|
7981
|
-
},
|
|
7982
|
-
{
|
|
7983
|
-
name: "$filter",
|
|
7984
|
-
type: "Query",
|
|
7985
|
-
schema: z.string().describe("Filter items by property values").optional()
|
|
7986
|
-
},
|
|
7987
|
-
{
|
|
7988
|
-
name: "$count",
|
|
7989
|
-
type: "Query",
|
|
7990
|
-
schema: z.boolean().describe("Include count of items").optional()
|
|
7991
|
-
},
|
|
7992
|
-
{
|
|
7993
|
-
name: "$orderby",
|
|
7994
|
-
type: "Query",
|
|
7995
|
-
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
7996
|
-
},
|
|
7997
|
-
{
|
|
7998
|
-
name: "$select",
|
|
7999
|
-
type: "Query",
|
|
8000
|
-
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
8001
|
-
},
|
|
8002
|
-
{
|
|
8003
|
-
name: "$expand",
|
|
8004
|
-
type: "Query",
|
|
8005
|
-
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
8006
|
-
}
|
|
8007
|
-
],
|
|
8008
|
-
response: z.void()
|
|
8009
|
-
},
|
|
8010
|
-
{
|
|
8011
|
-
method: "post",
|
|
8012
|
-
path: "/teams/:teamId/tags",
|
|
8013
|
-
alias: "create-team-tag",
|
|
8014
|
-
description: `Create a standard tag for members in a team.`,
|
|
8015
|
-
requestFormat: "json",
|
|
8016
|
-
parameters: [
|
|
8017
|
-
{
|
|
8018
|
-
name: "body",
|
|
8019
|
-
description: `New navigation property`,
|
|
8020
|
-
type: "Body",
|
|
8021
|
-
schema: microsoft_graph_teamworkTag
|
|
8022
|
-
}
|
|
8023
|
-
],
|
|
8024
|
-
response: z.void()
|
|
8025
|
-
},
|
|
8026
|
-
{
|
|
8027
|
-
method: "get",
|
|
8028
|
-
path: "/teams/:teamId/tags/:teamworkTagId",
|
|
8029
|
-
alias: "get-team-tag",
|
|
8030
|
-
description: `Read the properties and relationships of a tag object.`,
|
|
8031
|
-
requestFormat: "json",
|
|
8032
|
-
parameters: [
|
|
8033
|
-
{
|
|
8034
|
-
name: "$select",
|
|
8035
|
-
type: "Query",
|
|
8036
|
-
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
8037
|
-
},
|
|
8038
|
-
{
|
|
8039
|
-
name: "$expand",
|
|
8040
|
-
type: "Query",
|
|
8041
|
-
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
8042
|
-
}
|
|
8043
|
-
],
|
|
8044
|
-
response: z.void()
|
|
8045
|
-
},
|
|
8046
|
-
{
|
|
8047
|
-
method: "patch",
|
|
8048
|
-
path: "/teams/:teamId/tags/:teamworkTagId",
|
|
8049
|
-
alias: "update-team-tag",
|
|
8050
|
-
description: `Update the properties of a tag object.`,
|
|
8051
|
-
requestFormat: "json",
|
|
8052
|
-
parameters: [
|
|
8053
|
-
{
|
|
8054
|
-
name: "body",
|
|
8055
|
-
description: `New navigation property values`,
|
|
8056
|
-
type: "Body",
|
|
8057
|
-
schema: microsoft_graph_teamworkTag
|
|
8058
|
-
}
|
|
8059
|
-
],
|
|
8060
|
-
response: z.void()
|
|
8061
|
-
},
|
|
8062
|
-
{
|
|
8063
|
-
method: "delete",
|
|
8064
|
-
path: "/teams/:teamId/tags/:teamworkTagId",
|
|
8065
|
-
alias: "delete-team-tag",
|
|
8066
|
-
description: `Delete a tag object permanently.`,
|
|
8067
|
-
requestFormat: "json",
|
|
8068
|
-
parameters: [
|
|
8069
|
-
{
|
|
8070
|
-
name: "If-Match",
|
|
8071
|
-
type: "Header",
|
|
8072
|
-
schema: z.string().describe("ETag").optional()
|
|
8073
|
-
}
|
|
8074
|
-
],
|
|
8075
|
-
response: z.void()
|
|
8076
|
-
},
|
|
8077
|
-
{
|
|
8078
|
-
method: "get",
|
|
8079
|
-
path: "/teams/:teamId/tags/:teamworkTagId/members",
|
|
8080
|
-
alias: "list-team-tag-members",
|
|
8081
|
-
description: `Get a list of the members of a standard tag in a team and their properties.`,
|
|
8082
|
-
requestFormat: "json",
|
|
8083
|
-
parameters: [
|
|
8084
|
-
{
|
|
8085
|
-
name: "$top",
|
|
8086
|
-
type: "Query",
|
|
8087
|
-
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
8088
|
-
},
|
|
8089
|
-
{
|
|
8090
|
-
name: "$skip",
|
|
8091
|
-
type: "Query",
|
|
8092
|
-
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
8093
|
-
},
|
|
8094
|
-
{
|
|
8095
|
-
name: "$search",
|
|
8096
|
-
type: "Query",
|
|
8097
|
-
schema: z.string().describe("Search items by search phrases").optional()
|
|
8098
|
-
},
|
|
8099
|
-
{
|
|
8100
|
-
name: "$filter",
|
|
8101
|
-
type: "Query",
|
|
8102
|
-
schema: z.string().describe("Filter items by property values").optional()
|
|
8103
|
-
},
|
|
8104
|
-
{
|
|
8105
|
-
name: "$count",
|
|
8106
|
-
type: "Query",
|
|
8107
|
-
schema: z.boolean().describe("Include count of items").optional()
|
|
8108
|
-
},
|
|
8109
|
-
{
|
|
8110
|
-
name: "$orderby",
|
|
8111
|
-
type: "Query",
|
|
8112
|
-
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
8113
|
-
},
|
|
8114
|
-
{
|
|
8115
|
-
name: "$select",
|
|
8116
|
-
type: "Query",
|
|
8117
|
-
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
8118
|
-
},
|
|
8119
|
-
{
|
|
8120
|
-
name: "$expand",
|
|
8121
|
-
type: "Query",
|
|
8122
|
-
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
8123
|
-
}
|
|
8124
|
-
],
|
|
8125
|
-
response: z.void()
|
|
8126
|
-
},
|
|
8127
|
-
{
|
|
8128
|
-
method: "post",
|
|
8129
|
-
path: "/teams/:teamId/tags/:teamworkTagId/members",
|
|
8130
|
-
alias: "add-team-tag-member",
|
|
8131
|
-
description: `Create a new teamworkTagMember object in a team.`,
|
|
8132
|
-
requestFormat: "json",
|
|
8133
|
-
parameters: [
|
|
8134
|
-
{
|
|
8135
|
-
name: "body",
|
|
8136
|
-
description: `New navigation property`,
|
|
8137
|
-
type: "Body",
|
|
8138
|
-
schema: microsoft_graph_teamworkTagMember
|
|
8139
|
-
}
|
|
8140
|
-
],
|
|
8141
|
-
response: z.void()
|
|
8142
|
-
},
|
|
8143
|
-
{
|
|
8144
|
-
method: "delete",
|
|
8145
|
-
path: "/teams/:teamId/tags/:teamworkTagId/members/:teamworkTagMemberId",
|
|
8146
|
-
alias: "remove-team-tag-member",
|
|
8147
|
-
description: `Delete a member from a standard tag in a team.`,
|
|
8148
|
-
requestFormat: "json",
|
|
8149
|
-
parameters: [
|
|
8150
|
-
{
|
|
8151
|
-
name: "If-Match",
|
|
8152
|
-
type: "Header",
|
|
8153
|
-
schema: z.string().describe("ETag").optional()
|
|
8154
|
-
}
|
|
8155
|
-
],
|
|
8156
|
-
response: z.void()
|
|
8157
|
-
},
|
|
8158
7927
|
{
|
|
8159
7928
|
method: "get",
|
|
8160
7929
|
path: "/users",
|
package/dist/index.js
CHANGED
|
@@ -69,7 +69,9 @@ async function main() {
|
|
|
69
69
|
await server.initialize(version);
|
|
70
70
|
await server.start();
|
|
71
71
|
} catch (error) {
|
|
72
|
-
|
|
72
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
73
|
+
logger.error(`Startup error: ${message}`);
|
|
74
|
+
console.error(message);
|
|
73
75
|
process.exit(1);
|
|
74
76
|
}
|
|
75
77
|
}
|
package/logs/mcp-server.log
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
2026-03-
|
|
2
|
-
2026-03-
|
|
3
|
-
2026-03-
|
|
4
|
-
2026-03-
|
|
5
|
-
2026-03-
|
|
6
|
-
2026-03-
|
|
7
|
-
2026-03-
|
|
8
|
-
2026-03-
|
|
9
|
-
2026-03-
|
|
10
|
-
2026-03-
|
|
1
|
+
2026-03-26 20:08:18 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
|
|
2
|
+
2026-03-26 20:08:18 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
|
|
3
|
+
2026-03-26 20:08:18 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
|
|
4
|
+
2026-03-26 20:08:18 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me/messages
|
|
5
|
+
2026-03-26 20:08:18 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me/calendar
|
|
6
|
+
2026-03-26 20:08:20 INFO: Using environment variables for secrets
|
|
7
|
+
2026-03-26 20:08:20 INFO: Using environment variables for secrets
|
|
8
|
+
2026-03-26 20:08:20 INFO: Using environment variables for secrets
|
|
9
|
+
2026-03-26 20:08:20 INFO: Using environment variables for secrets
|
|
10
|
+
2026-03-26 20:08:20 INFO: Using environment variables for secrets
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softeria/ms-365-mcp-server",
|
|
3
|
-
"version": "0.47.
|
|
3
|
+
"version": "0.47.3",
|
|
4
4
|
"description": " A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/src/endpoints.json
CHANGED
|
@@ -658,62 +658,6 @@
|
|
|
658
658
|
"toolName": "list-team-members",
|
|
659
659
|
"workScopes": ["TeamMember.Read.All"]
|
|
660
660
|
},
|
|
661
|
-
{
|
|
662
|
-
"pathPattern": "/teams/{team-id}/tags",
|
|
663
|
-
"method": "get",
|
|
664
|
-
"toolName": "list-team-tags",
|
|
665
|
-
"workScopes": ["TeamworkTag.Read.All"],
|
|
666
|
-
"llmTip": "List all tags in a team. Returns tag id, displayName, memberCount, and tagType (standard or scheduled). Use list-joined-teams to find the team ID first."
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
"pathPattern": "/teams/{team-id}/tags",
|
|
670
|
-
"method": "post",
|
|
671
|
-
"toolName": "create-team-tag",
|
|
672
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
673
|
-
"llmTip": "Create a new tag in a team. Body requires displayName (max 40 chars) and an optional members array (max 25 at creation, each with a userId). Use list-team-members to find user IDs. Add more members individually with add-team-tag-member after creation."
|
|
674
|
-
},
|
|
675
|
-
{
|
|
676
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}",
|
|
677
|
-
"method": "get",
|
|
678
|
-
"toolName": "get-team-tag",
|
|
679
|
-
"workScopes": ["TeamworkTag.Read.All"],
|
|
680
|
-
"llmTip": "Get details of a specific tag including displayName, memberCount, and tagType. Use list-team-tags to find the tag ID."
|
|
681
|
-
},
|
|
682
|
-
{
|
|
683
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}",
|
|
684
|
-
"method": "patch",
|
|
685
|
-
"toolName": "update-team-tag",
|
|
686
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
687
|
-
"llmTip": "Update a tag's displayName (max 40 chars). Use list-team-tags to find the tag ID."
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}",
|
|
691
|
-
"method": "delete",
|
|
692
|
-
"toolName": "delete-team-tag",
|
|
693
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
694
|
-
"llmTip": "Permanently delete a tag from a team. This action is irreversible. Use list-team-tags to find the tag ID."
|
|
695
|
-
},
|
|
696
|
-
{
|
|
697
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}/members",
|
|
698
|
-
"method": "get",
|
|
699
|
-
"toolName": "list-team-tag-members",
|
|
700
|
-
"workScopes": ["TeamworkTag.Read.All"],
|
|
701
|
-
"llmTip": "List all members of a specific tag. Returns member id, displayName, tenantId, and userId. Use list-team-tags to find the tag ID."
|
|
702
|
-
},
|
|
703
|
-
{
|
|
704
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}/members",
|
|
705
|
-
"method": "post",
|
|
706
|
-
"toolName": "add-team-tag-member",
|
|
707
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
708
|
-
"llmTip": "Add a member to an existing tag. Body requires userId. Use list-team-members to find the user ID. Max 200 members per tag. Note: this operation requires application permissions (delegated not supported)."
|
|
709
|
-
},
|
|
710
|
-
{
|
|
711
|
-
"pathPattern": "/teams/{team-id}/tags/{teamworkTag-id}/members/{teamworkTagMember-id}",
|
|
712
|
-
"method": "delete",
|
|
713
|
-
"toolName": "remove-team-tag-member",
|
|
714
|
-
"workScopes": ["TeamworkTag.ReadWrite.All"],
|
|
715
|
-
"llmTip": "Remove a member from a tag. Use list-team-tag-members to find the member ID."
|
|
716
|
-
},
|
|
717
661
|
{
|
|
718
662
|
"pathPattern": "/chats/{chat-id}/messages/{chatMessage-id}/replies",
|
|
719
663
|
"method": "get",
|