Work IQ

Microsoft's own MCP server for querying and changing Microsoft 365 mail, meetings, files and Teams

Official · Microsoft C# Remote (hosted) · Streamable HTTPLocal · stdio CommunicationProductivityFiles and storage

84 popularity score ★ 1.1k ↓ 11k/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Its sign-in lets no client register itself: a client signs in only with an app (a client ID) registered with its maker first, so these snippets work only after that step.

Claude CodeTerminal
claude mcp add --transport http work-iq https://workiq.svc.cloud.microsoft/mcp
Claude (desktop and web)Settings → Connectors → Add custom connector
https://workiq.svc.cloud.microsoft/mcp
ChatGPTSettings → Apps → Advanced → Developer mode, then Create app
https://workiq.svc.cloud.microsoft/mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "work-iq": {
      "url": "https://workiq.svc.cloud.microsoft/mcp"
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "work-iq": {
      "type": "http",
      "url": "https://workiq.svc.cloud.microsoft/mcp"
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.work-iq]
url = "https://workiq.svc.cloud.microsoft/mcp"
Gemini CLITerminal
gemini mcp add --scope user --transport http work-iq https://workiq.svc.cloud.microsoft/mcp
Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add work-iq -- npx -y @microsoft/workiq@latest mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "work-iq": {
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/workiq@latest",
        "mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "work-iq": {
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/workiq@latest",
        "mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "work-iq": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/workiq@latest",
        "mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.work-iq]
command = "npx"
args = ["-y", "@microsoft/workiq@latest", "mcp"]
Gemini CLITerminal
gemini mcp add --scope user work-iq npx -- -y @microsoft/workiq@latest mcp

What it does

Work IQ is Microsoft's command-line tool and MCP server for reaching a signed-in user's Microsoft 365 data through the Microsoft 365 Copilot Chat API. Started with `workiq mcp`, it runs over stdio and offers an `ask` tool for questions in plain language (who said what about a proposal, what is on the calendar tomorrow, which documents were edited recently), backed by Copilot's search across email, meetings, documents, Teams messages and people.

Since 1.0.0 the package also carries entity tools for direct, structured reads and writes: fetching items, discovering schemas and paths, and creating, updating, deleting or acting on Microsoft 365 entities. Its changelog states these entity tools do not run locally but pass each request on to Microsoft's remote Work IQ MCP server. Microsoft also serves the same tool surface from a hosted endpoint, `https://workiq.svc.cloud.microsoft/mcp`, which is what its GitHub Copilot CLI plugin now connects to instead of a local process.

A fact the main README leaves out: the admin guide states every user needs a Microsoft 365 Copilot licence on top of a base Microsoft 365 plan, and the tenant must consent to delegated Graph permissions including `Mail.Read`, `Chat.Read`, `ChannelMessage.Read.All`, `Sites.Read.All` and `OnlineMeetingTranscript.Read.All`. The project is marked Public Preview in its README (features and APIs may change), and the npm package is under a Microsoft EULA rather than an open-source licence.

What it needs

To run it yourselfNode.js 18+

Node.js 18 or later for npx. Runs on Windows, Linux and macOS (x64 and arm64). A Microsoft Entra work account with a Microsoft 365 Copilot licence and a base Microsoft 365 plan (E3, E5, Business Premium or similar). A tenant administrator must grant admin consent to the Work IQ app's delegated permissions before first use.

Limits

Marked Public Preview: features and APIs may change. Answers and entity operations go through Microsoft's cloud services, so it does nothing without network access and a licensed, consented tenant. Signs in to the `common` tenant by default; another tenant needs the `-t`/`--tenant-id` option. On the hosted surface, `fetch_blob` returns files up to 4 MB, and `upload_blob` is documented but not yet released. The `get_debug_link` confirmation changes listed under Unreleased in the changelog are not in 1.0.1.

Who it suits

Suits people in an organisation that already pays for Microsoft 365 Copilot and wants an assistant to search and act on their own mail, calendar, files and Teams chats, with Microsoft as the publisher. Those without Copilot licences, or without an admin willing to grant tenant-wide consent, cannot use it at all. Clients that speak remote MCP with OAuth can skip the local process and use the hosted endpoint. Because entity tools can send mail, accept meetings and delete items, it is a poor fit where an assistant should only read.

Tools 9

ask
Answers a plain-language question from the user's Microsoft 365 data via Copilot
fetch
Reads specific Microsoft 365 entities such as messages, events or files
get-schema
Returns the fields and shape of an entity type
search-paths
Discovers the paths that address Microsoft 365 entities
create
Creates an entity, for example an email or calendar event
update
Changes an existing entity, such as marking mail read or moving it
delete
Deletes an entity
do-action
Runs an action on an entity, such as sending, replying or accepting a meeting
call-function
Calls a service function on Microsoft 365 data

Similar servers