OneDrive (Microsoft Graph) MCP Pack - Requires OAuth connection — gateway injects credentials via _context.microsoft. The OAuth provider is named "microsoft", so creds arrive under _context.microsoft.accessToken. Tools: list files, search files, get file metadata, read text content, list shared, get drive profile. All operations are read-only GETs against Microsoft Graph v1.0.
Server has 6 well-named, read-only tools with complete input schemas and solid descriptions (avg 180 chars). All tools follow verb_noun pattern (list_, search_, get_). Schemas include type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling returns structured {error, message} objects but lacks recovery guidance or categorization. No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions are adequate but lack format constraints (e.g., 'top' should specify min/max bounds). Missing documentation of response fields and pagination behavior.
Get full metadata for a single OneDrive (Microsoft 365) file or folder by its item id. Returns id, name, size, folder/file info, created and last-modified times, web URL, and parent reference. Use after listing or searching to inspect one document.
Download and return the text content of a OneDrive (Microsoft 365) file by its item id. Best for plain-text, Markdown, and CSV files; binary formats (Office docs, PDFs, images) will return unreadable bytes. Content is capped at ~100,000 characters and flagged when truncated.
Get the user's OneDrive (Microsoft 365) drive profile: drive type, storage quota used and total (in bytes), and the owner display name. Use to report storage usage or confirm the connected account.
List files and folders in a OneDrive (Microsoft 365) folder. Pass a folder path relative to the drive root (e.g. "Documents" or "Documents/Reports"); omit to list the root. Returns each item's id, name, size, whether it is a folder, last-modified time, and web URL. Use to browse a user's OneDrive documents.
List files and folders that have been shared with the user in OneDrive / Microsoft 365 ("Shared with me"). Returns each item's name, web URL, and who shared it. Use to find documents shared by colleagues.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream tool chaining or data extraction. E.g., onedrive_list_files returns mapped items but structure is inferred from mapItem() function, not declared in tool definition.
Numeric parameters lack bounds. 'top' parameter has no minItems/maxItems in schema; description mentions 'default 50, max 200' but schema does not enforce. LLMs may pass invalid values (0, negative, >200).
Error responses lack recovery guidance. gFetch() returns {error, message} but does not categorize errors as retryable, user-fixable, or fatal. E.g., 'connection_required' should suggest 'Connect your Microsoft account' (already present) but HTTP errors (401, 403, 404) return raw status codes with no actionable next step.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Search a user's OneDrive (Microsoft 365) for files and folders matching a query string across file names and content. Returns matching items with id, name, size, folder flag, last-modified time, and web URL. Use to find documents by keyword.
No tool annotations. Tools lack readOnlyHint, idempotentHint, or destructiveHint metadata. All 6 tools are read-only and idempotent, declaring this via annotations helps agents reason about safety and retry logic.
Pagination not fully documented. onedrive_list_files and onedrive_search_files accept 'top' but do not return a total count, next_cursor, or has_more flag. LLMs cannot determine if results are complete or if pagination is needed.