microsoft / microsoft/work-iq

Copilot CLI: ask_work_iq silently hangs due to EULA gate + auth tokens not persisting across MCP restarts

Open
#116 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PowerShell
Stars
1k
Forks
132
Avg merge
5d 19h
Merged PRs (30d)
6

Description

Description

When the WorkIQ MCP server is spawned by GitHub Copilot CLI (via the plugin marketplace config), two issues prevent ask_work_iq from working:

  1. EULA gate causes silent hang. If accept_eula has not been called in the current MCP session, calling ask_work_iq hangs indefinitely with no error response. The Copilot CLI has no way to know it needs to call accept_eula first — the tool is listed alongside ask_work_iq in tools/list with no indication that it's a prerequisite.

  2. Auth tokens are not cached across MCP server restarts. Each time the Copilot CLI spawns the MCP server process, a new browser sign-in prompt is triggered. When the CLI spawns the server as a background process, this prompt may not be visible to the user, causing the ask_work_iq call to hang or fail silently. Tokens obtained via workiq ask (interactive CLI) are not reused by workiq mcp (server mode).

Related Issues

  • #87 — workiq does not cache identity (same root cause, VS Code context)
  • #114 — Authentication as MCP Server in VS Code not working (same root cause, VS Code context)

Steps to Reproduce

  1. Install WorkIQ via Copilot CLI plugin marketplace (/plugin install workiq@work-iq)
  2. Restart Copilot CLI
  3. Ask a question that triggers ask_work_iq (e.g., "What meetings do I have today?")
  4. Observe: the tool call returns Tool 'ask_work_iq' does not exist or hangs
Manual MCP verification (proves the server works)
npx -y @microsoft/workiq mcp
# Send JSON-RPC initialize -> works
# Send tools/list -> returns accept_eula, ask_work_iq, get_debug_link
# Send accept_eula -> works
# Send ask_work_iq (after completing browser sign-in) -> works

Expected Behavior

  • accept_eula state should persist across MCP server restarts (or EULA acceptance should be handled during plugin install)
  • Auth tokens should be cached and reused between workiq ask (CLI) and workiq mcp (server) sessions
  • If auth or EULA is required, ask_work_iq should return a clear error message instead of hanging silently

Environment

  • WorkIQ version: 0.4.1
  • Node.js: v24.13.0
  • OS: Windows 11
  • Client: GitHub Copilot CLI v1.0.41
  • MCP config: npx -y @microsoft/workiq mcp (stdio transport)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the workiq mcp and workiq ask entry points, focusing on accept_eula, ask_work_iq, and authentication initialization across MCP restarts. Reproduce the Copilot CLI flow with npx -y @microsoft/workiq mcp; done means cached EULA and auth state are reused and missing prerequisites return clear errors instead of hanging.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, node.js
Domain
api, authentication, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.