plugins/workiq-productivity/skills/site-explorer/SKILL.md
Browse and discover SharePoint sites, lists, document libraries, and file contents — navigate your SharePoint world without leaving the CLI.
npx skillsauth add microsoft/work-iq site-explorerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Navigate your SharePoint environment interactively. Search for sites, browse their lists and document libraries, inspect list schemas and items, preview files, and drill into folder structures — all from the command line.
workiq-ask (
question: "What is my profile information including display name and email address?"
)
Search by name:
workiq-ask (
question: "Search for SharePoint sites matching '<site name or partial name>'. For each site return the site name and URL."
)
Browse top sites (no specific name):
workiq-ask (
question: "What SharePoint sites do I have access to? List each site's name and URL."
)
Present discovered sites:
🌐 SHAREPOINT SITES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Site Name URL
1 HR Hiring Portal contoso.sharepoint.com/sites/HRHiring
2 Marketing Hub contoso.sharepoint.com/sites/Marketing
3 Project Alpha contoso.sharepoint.com/sites/ProjectAlpha
4 Engineering Wiki contoso.sharepoint.com/sites/EngWiki
Which site would you like to explore?
Retrieve all lists and document libraries on the selected site:
workiq-ask (
question: "What lists and document libraries are on the '<site name>' SharePoint site? For each list include the name, item count, and last modified date. For each document library include the name and file count."
)
Display:
📁 SITE: {Site Name}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 LISTS ({count})
# List Name Items Last Modified
1 Job Openings 24 Feb 25, 2026
2 Candidate Feedback 156 Feb 27, 2026
3 Interview Schedule 42 Feb 28, 2026
📚 DOCUMENT LIBRARIES ({count})
# Library Name Files
4 Shared Documents 87
5 Templates 12
6 Meeting Notes 34
🛠️ ACTIONS
"show list #1" — view list items
"show columns in #2" — inspect list schema
"browse #4" — explore document library
"show subsites" — list child sites
View column definitions for a list:
workiq-ask (
question: "What are the columns in the '<list name>' list on the '<site name>' SharePoint site? For each column include the name, data type, whether it is required, and description."
)
Display:
📋 LIST SCHEMA: {List Name}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Column Name Type Required Description
Title Text ✅ Job title
Department Choice ❌ HR, Eng, Marketing, Sales
Status Choice ✅ Open, Closed, On Hold
Hiring Manager Person ❌ —
Target Start Date DateTime ❌ —
Salary Range Text ❌ —
🛠️ ACTIONS
"show items" — view list data
"show items where Status = Open" — filtered view
Retrieve list items:
workiq-ask (
question: "Show me the items in the '<list name>' list on the '<site name>' SharePoint site. Include all columns for each item."
)
Display items in a table format, using column names as headers. Show the first 20 items; note if more exist.
📋 LIST: {List Name} — {N} items
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Title Department Status Hiring Manager Target Start
1 Sr. Engineer Eng Open Firstname1 Lastname1 Mar 15
2 Product Designer Design Open Firstname2 Lastname2 Apr 1
3 Data Analyst Analytics Closed Firstname3 Lastname3 —
...
🛠️ ACTIONS
"show item #1 details" — full item view
"filter by Status = Open" — narrow down
"export to Word" — save as document
Browse a library's contents:
workiq-ask (
question: "Show me the files and folders in the '<library name>' document library on the '<site name>' SharePoint site. For each item include the name, type (file or folder), size, and last modified date."
)
Display:
📚 DOCUMENT LIBRARY: {Library Name}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Name Type Size Modified
📁 Contracts Folder — Feb 20
📁 Templates Folder — Feb 15
📄 Q1 Budget.xlsx File 245 KB Feb 27
📄 Team Roster.docx File 82 KB Feb 25
📄 README.md File 4 KB Feb 10
🛠️ ACTIONS
"open Contracts" — browse into folder
"read README.md" — preview file contents
"show details Q1 Budget" — file metadata
"search for 'invoice'" — find files by name
workiq-ask (
question: "Show me the contents of the '<folder name>' folder in the '<library name>' document library on the '<site name>' SharePoint site. Include file name, type, size, and last modified date."
)
For text file contents:
workiq-ask (
question: "Show me the contents of the file '<file name>' in the '<library name>' document library on the '<site name>' SharePoint site."
)
For metadata only:
workiq-ask (
question: "What are the metadata details for the file '<file name>' in the '<library name>' document library on the '<site name>' SharePoint site? Include size, type, created date, modified date, and author."
)
workiq-ask (
question: "Search for files matching '<file name or keyword>' across my SharePoint sites. Include the file name, site, library, size, and last modified date for each result."
)
workiq-ask (
question: "What are the subsites under the '<site name>' SharePoint site? Include each subsite's name and URL."
)
| Parameter | Required | Default | Description | |-----------|----------|---------|-------------| | Site | No | Browse all | Site name or URL to explore | | View | No | Overview | "lists", "libraries", "all" | | List/Library | No | — | Specific list or library to drill into |
| MCP Server | Tool | Purpose |
|---|---|---|
| workiq (Local WorkIQ CLI) | ask | Site discovery, list/library browsing, schema inspection, item retrieval, file preview, and file search |
"What SharePoint sites do I have access to?"
Claude queries your accessible sites via ask, then presents them in a numbered table. You can select any site by number or name to continue exploring.
"Show me the columns and items in the Vendor Tracker list on the Procurement site."
ask."Open the Shared Documents library on the Project Alpha site and show me what's in the Contracts folder."
ask.ask.Symptom: ask returns no results for a site name search.
Resolution:
Symptom: ask indicates a permission or access error when querying a site, list, library, or file.
Resolution:
Symptom: ask returns lists but the expected list is missing, or no libraries are reported.
Resolution:
Symptom: ask cannot return the contents of a large file.
Resolution:
Symptom: ask returns fewer site results than expected.
Resolution:
business
Generates a Microsoft Planner status report for one plan, using task status, owners, dates, priorities, buckets, risks, wins, progress, upcoming commitments, and milestones.
tools
Adds Microsoft Entra SSO (single sign-on, no OBO) to a Microsoft 365 Copilot declarative agent whose tools are served by an MCP server — for BOTH widget standards: (1) the MCP Apps standard (from create-mcp-app / the MCP Apps SDK): a plugin manifest such as readiness_plugin.json (or another *_plugin.json with a runtimes[] block) and an EXPRESS-based MCP server; and (2) the OpenAI Apps (OAI Apps) layout from the ui-widget-developer skill: appPackage/mcpPlugin.json and a raw-http MCP server. When the layout is ambiguous, DEFAULT to the MCP Apps standard (most projects use it). The skill auto-detects the layout, reuses the existing named devtunnel + env/.env.local (never creates a second tunnel), registers the Entra app + ATK OAuth (MicrosoftEntra), patches the plugin manifest's runtimes[] auth to OAuthPluginVault, injects a minimal JWKS bearer-token guard into the existing server (an EXPRESS middleware for MCP Apps, or a raw-http guard WITHOUT rewriting to Express for OAI Apps), validates, sideloads, and prints an app-registration summary. SSO only — no OBO. Triggered by: "add sso to my mcp server", "wire entra sso for my copilot agent", "setup sso for mcp apps", "add sso after create-mcp-app", "add sso after ui-widget-developer", "add entra auth to my express mcp server", "configure only sso no obo"
tools
WorkIQ - Microsoft 365 tool surface for agents. Use for any workplace question or write action where data lives in M365. Supports semantic `ask` plus tools (`fetch`, create/update/delete, actions, functions, fetch_blob, path/schema discovery) for mail, meetings/calendar, documents/files, Teams chats/channels, OneDrive/SharePoint, and people. Read triggers, "what did [person] say", priorities/top of mind, meeting decisions/action items, summarize thread/chat, find emails/docs, list meetings/messages/files/channels, project status/updates, "what changed since", download file content. Write triggers, send/reply/forward email, create/update/accept/decline meetings, mark read, delete drafts/items, send/post/reply/react in Teams, set presence. Discovery triggers, available endpoints/paths, fields, request body, schema/data model. Prefer `ask` for synthesis; use entity tools for exact reads/writes.
tools
WorkIQ tools for Microsoft 365 workplace data and actions. Use for email, calendar events and meetings, files, SharePoint, OneDrive, Teams, people, Planner, and other M365 requests. Triggers include cancel meeting or event, accept or decline meetings, create or update events, create an upload session or replace an existing OneDrive file, find or summarize workplace content, send or reply to mail, manage or download files, manage tasks, and discover M365 paths or schemas. Prefer `ask` for synthesis and structured entity tools for exact reads, writes, and binary downloads with `fetch_blob`.