msteams-mcp 0.3.2 → 0.3.4

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/README.md CHANGED
@@ -10,7 +10,7 @@ This server calls Microsoft's internal Teams APIs directly (Substrate, chatsvc,
10
10
  1. Run `teams_login` to open a browser and log in
11
11
  2. OAuth tokens are extracted and cached
12
12
  3. All operations use cached tokens directly (no browser needed)
13
- 4. When tokens expire (~1 hour), run `teams_login` again
13
+ 4. Automatic token refresh (~1 hour)
14
14
 
15
15
  ## Installation
16
16
 
@@ -111,17 +111,17 @@ The search supports Teams' native operators:
111
111
 
112
112
  ```
113
113
  from:sarah@company.com # Messages from person
114
- sent:today # Messages from today
115
- sent:lastweek # Messages from last week
114
+ sent:2026-01-20 # Messages from specific date
115
+ sent:>=2026-01-15 # Messages since date
116
116
  in:project-alpha # Messages in channel
117
117
  "Rob Smith" # Find @mentions (name in quotes)
118
118
  hasattachment:true # Messages with files
119
119
  NOT from:email@co.com # Exclude results
120
120
  ```
121
121
 
122
- Combine operators: `from:sarah@co.com sent:lastweek hasattachment:true`
122
+ Combine operators: `from:sarah@co.com sent:>=2026-01-18 hasattachment:true`
123
123
 
124
- **Note:** `@me`, `from:me`, `to:me` do NOT work. Use `teams_get_me` first to get your email/displayName, then use those values.
124
+ **Note:** `@me`, `from:me`, `to:me` do NOT work. Use `teams_get_me` first to get your email/displayName. Also `sent:lastweek`, `sent:today`, `sent:thisweek` do NOT work - use explicit dates or omit (results are sorted by recency).
125
125
 
126
126
  ## MCP Resources
127
127
 
@@ -176,7 +176,7 @@ npm run test:mcp -- unread # Check unread counts
176
176
  ## Limitations
177
177
 
178
178
  - **Login required** - Run `teams_login` to authenticate (opens browser)
179
- - **Token expiry** - Tokens expire after ~1 hour; run `teams_login` again when needed
179
+ - **Token expiry** - Tokens expire after ~1 hour; headless refresh is attempted or run `teams_login` again when needed
180
180
  - **Undocumented APIs** - Uses Microsoft's internal APIs which may change without notice
181
181
  - **Search limitations** - Full-text search only; thread replies not matching search terms won't appear (use `teams_get_thread` for full context)
182
182
  - **Own messages only** - Edit/delete only works on your own messages
@@ -28,13 +28,13 @@ export const FindChannelInputSchema = z.object({
28
28
  // ─────────────────────────────────────────────────────────────────────────────
29
29
  const searchToolDefinition = {
30
30
  name: 'teams_search',
31
- description: 'Search for messages in Microsoft Teams. Returns matching messages with sender, timestamp, content, conversationId (for replies), and pagination info. Supports search operators: from:email, sent:today/lastweek, in:channel, hasattachment:true, "Name" for @mentions. Combine with NOT to exclude (e.g., NOT from:rob@co.com).',
31
+ description: 'Search for messages in Microsoft Teams. Returns matching messages with sender, timestamp, content, conversationId (for replies), and pagination info. Supports search operators: from:email, sent:YYYY-MM-DD, in:channel, hasattachment:true, "Name" for @mentions. Combine with NOT to exclude (e.g., NOT from:rob@co.com). Results are sorted by recency.',
32
32
  inputSchema: {
33
33
  type: 'object',
34
34
  properties: {
35
35
  query: {
36
36
  type: 'string',
37
- description: 'Search query with optional operators. Examples: "budget report", "from:sarah@co.com sent:lastweek", "\"Rob Smith\" NOT from:rob@co.com" (find @mentions of Rob). IMPORTANT: "@me", "from:me", "to:me" do NOT work - use teams_get_me first to get actual email/displayName, then use those values.',
37
+ description: 'Search query with optional operators. Examples: "budget report", "from:sarah@co.com", "\"Rob Smith\" NOT from:rob@co.com" (find @mentions of Rob). For date filtering use sent:YYYY-MM-DD or sent:>=YYYY-MM-DD (e.g., sent:>=2026-01-20). IMPORTANT: "@me", "from:me", "to:me" do NOT work - use teams_get_me first to get actual email/displayName. Also "sent:lastweek" and "sent:today" do NOT work - use explicit dates or omit (results are sorted by recency).',
38
38
  },
39
39
  maxResults: {
40
40
  type: 'number',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "msteams-mcp",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "MCP server for Microsoft Teams - search messages, send replies, manage favourites",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",