Publish workiq 2.0 with full read+write tool surface#147
Merged
Conversation
Promote the workiq-preview plugin content to the released workiq plugin, giving it the complete entity tool surface (fetch, create, update, delete, do-action, call-function, schema discovery, blob upload/download) alongside the existing semantic ask tool. Changes: - Replace workiq plugin contents with workiq-preview functionality - Switch MCP server from local npx to hosted HTTP endpoint - Add all 15 reference docs for entity tools - Bump version to 2.0.0 - Update marketplace.json, AGENTS.md, and PLUGINS.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR promotes the workiq-preview capability set into the released workiq plugin, switching it to a hosted MCP endpoint and expanding the documentation to cover the full entity-tool workflow (read + write) alongside semantic ask.
Changes:
- Replace
workiqskill/docs to match the full WorkIQ entity tool surface (fetch/create/update/delete/actions/functions/schema/path discovery). - Switch
workiqMCP configuration from localnpxserver startup to a hosted HTTP endpoint with OAuth settings. - Update plugin metadata/catalog docs and bump the released plugin to
2.0.0.
Show a summary per file
| File | Description |
|---|---|
| plugins/workiq/skills/workiq/SKILL.md | Main skill guidance expanded to cover semantic ask + entity tools, routing rules, and hosted endpoint prerequisites |
| plugins/workiq/skills/workiq/references/ask-work-iq.md | Reference doc for ask usage and constraints |
| plugins/workiq/skills/workiq/references/fetch-work-iq.md | Reference doc for fetch including paging and URL encoding guidance |
| plugins/workiq/skills/workiq/references/search-paths-work-iq.md | Reference doc for search_paths discovery workflow |
| plugins/workiq/skills/workiq/references/get-schema-work-iq.md | Reference doc for get_schema operationType routing |
| plugins/workiq/skills/workiq/references/create-entity-work-iq.md | Reference doc for create_entity (POST) writes |
| plugins/workiq/skills/workiq/references/update-entity-work-iq.md | Reference doc for update_entity (PATCH) writes and common failures |
| plugins/workiq/skills/workiq/references/delete-entity-work-iq.md | Reference doc for delete_entity (DELETE) writes |
| plugins/workiq/skills/workiq/references/do-action-work-iq.md | Reference doc for do_action action-verb POSTs (send/copy/move/presence/etc.) |
| plugins/workiq/skills/workiq/references/call-function-work-iq.md | Reference doc for call_function (OData functions like delta/reminderView) |
| plugins/workiq/skills/workiq/references/mail-work-iq.md | Mail-specific routing and patterns ($search vs $filter, delta guidance) |
| plugins/workiq/skills/workiq/references/teams-work-iq.md | Teams routing guidance (chat vs channel) and canonical paths |
| plugins/workiq/skills/workiq/references/tasks-work-iq.md | Planner task routing guidance and canonical paths |
| plugins/workiq/skills/workiq/references/troubleshooting.md | Troubleshooting guidance for common tool-call failures |
| plugins/workiq/skills/workiq/references/fetch-blob-work-iq.md | Future-reference doc for binary download (not released per skill docs) |
| plugins/workiq/skills/workiq/references/upload-blob-work-iq.md | Future-reference doc for binary upload (not released per skill docs) |
| plugins/workiq/README.md | Plugin README updated for hosted endpoint + expanded usage examples |
| plugins/workiq/.mcp.json | MCP server config switched to hosted HTTP endpoint + OAuth settings |
| plugins/workiq/.github/plugin/plugin.json | Plugin manifest bumped to 2.0.0 and description updated |
| plugins/workiq/.codex-plugin/plugin.json | Codex plugin manifest bumped to 2.0.0 and description updated |
| plugins/workiq/.claude-plugin/plugin.json | Claude plugin manifest bumped to 2.0.0 and description updated |
| PLUGINS.md | Plugin catalog entry updated to reflect full WorkIQ surface |
| marketplace.json | Marketplace registry updated with 2.0.0 metadata/description |
| AGENTS.md | Repository agent context updated for hosted workiq MCP server + expanded tool list |
| .claude-plugin/marketplace.json | Claude marketplace registry updated with 2.0.0 metadata/description |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 25/25 changed files
- Comments generated: 13
Comment on lines
+19
to
+22
| ❌ **DO NOT** derive a prefix from this skill's name or folder. | ||
| ❌ **DO NOT** call `ask` verbatim and assume it will work. | ||
| ✅ **DO** scan your available tools list for an entry whose name **ends with** `ask` and call that exact name. In Copilot CLI this will be `workiq-ask`. | ||
|
|
Comment on lines
+243
to
+246
| ### 🛑 Binary file content is not yet released — `fetch_blob` and `upload_blob` are not callable today | ||
|
|
||
| `fetch_blob` and `upload_blob` are documented for future reference, but **they are not part of the current WorkIQ MCP surface**. Attempting to call them returns `tool does not exist`. Do not call them, do not search for them in your tool list, do not invent them from a similar name (e.g. `download_file`, `get_blob`, `put_file`). | ||
|
|
Comment on lines
+9
to
+12
| **Cause:** Your MCP host exposes the tool under a prefixed name derived from the **MCP server name** (`workiq`), not the logical name documented in the skill. | ||
|
|
||
| **Fix:** Scan your available-tools list for an entry whose name **ends with** the logical name (e.g., `ask`). In Copilot CLI the prefixed form is `workiq-ask`; in Claude Desktop it's `mcp__workiq__ask`. Call the exact prefixed name your host requires. | ||
|
|
Comment on lines
96
to
99
| | Server | Tools | | ||
| |--------|-------| | ||
| | `@microsoft/workiq` | `ask_work_iq`, `accept_eula`, `get_debug_link` | | ||
| | `workiq` (hosted) | `ask_work_iq`, `fetch_work_iq`, `fetch_blob_work_iq`, `get_schema_work_iq`, `search_paths_work_iq`, `create_entity_work_iq`, `update_entity_work_iq`, `delete_entity_work_iq`, `do_action_work_iq`, `call_function_work_iq`, `upload_blob_work_iq`, `accept_eula`, `get_debug_link` | | ||
|
|
Comment on lines
+53
to
+54
| ### Structured reads (`fetch`, `search_paths`, `get_schema`, `fetch_blob`) | ||
|
|
Comment on lines
+3
to
5
| "version": "2.0.0", | ||
| "description": "Full WorkIQ tool surface — agentic queries via ask plus direct reads and writes (create, update, delete, send, upload) across emails, meetings, calendar, Planner tasks, documents, Teams, people and contacts, OneDrive, and SharePoint.", | ||
| "skills": "./skills/" |
Comment on lines
+3
to
5
| "version": "2.0.0", | ||
| "description": "Full WorkIQ tool surface — agentic queries via ask plus direct reads and writes (create, update, delete, send, upload) across emails, meetings, calendar, Planner tasks, documents, Teams, people and contacts, OneDrive, and SharePoint.", | ||
| "skills": "./skills/" |
Comment on lines
+166
to
+168
| Throughout this skill (and its `references/*.md`), MCP tools are referred to by their **logical names** — for example `ask`, `fetch`, `search_paths`, etc. | ||
|
|
||
| ## Common Use Cases | ||
| > **⚠️ Common pitfall:** Tool prefixes come from the **MCP server name** (`workiq`) — never from the name of this skill or its containing folder. Do not construct a prefix from the skill name. |
Comment on lines
+178
to
+182
| **Before invoking any tool referenced in this skill:** | ||
|
|
||
| | Tool | Parameters | | ||
| |------|------------| | ||
| | `ask` | `{ "question": "Who is the expert on authentication in our team?" }` | | ||
| | `ask` | `{ "question": "Who should I talk to about the billing system?" }` | | ||
| | `ask` | `{ "question": "Who worked on the checkout feature?" }` | | ||
| 1. Scan your available tools list for an entry whose name **ends with** (or equals) the logical name from this doc (e.g., `ask`). | ||
| 2. If multiple candidates match, prefer the one whose prefix identifies the WorkIQ **MCP server** (always `workiq` for this skill). | ||
| 3. Call the tool using whatever exact name your host requires — do not assume the unprefixed form will work, and do not derive the prefix from this skill's name or folder. |
Comment on lines
+70
to
+72
| - **workiq** — Full WorkIQ tool surface for Microsoft 365 (read + write). Bundles: | ||
| - `workiq` skill — Guides usage of `ask` for semantic questions plus the entity tools for fast, structured M365 reads and writes | ||
| - Hosted MCP server (`workiq`) with tools: `ask_work_iq`, `fetch_work_iq`, `fetch_blob_work_iq`, `get_schema_work_iq`, `search_paths_work_iq`, `create_entity_work_iq`, `update_entity_work_iq`, `delete_entity_work_iq`, `do_action_work_iq`, `call_function_work_iq`, `upload_blob_work_iq`, `accept_eula`, `get_debug_link` |
tolgaki
approved these changes
Jun 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promote the workiq-preview plugin content to the released workiq plugin, giving it the complete entity tool surface (fetch, create, update, delete, do-action, call-function, schema discovery, blob upload/download) alongside the existing semantic ask tool.
Changes
Notes