Skip to content

Copilot: MCP servers, skills, AGENTS.md, Fusion and tool images - #417

Merged
hendrikmennen merged 4 commits into
mainfrom
feature/copilot-connectors-skills
Oct 30, 2026
Merged

hendrikmennen merged 4 commits into
mainfrom
feature/copilot-connectors-skills

Conversation

@hendrikmennen

@hendrikmennen hendrikmennen commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Extends the Copilot chat integration with MCP connectors, skills and AGENTS.md support. Also changes how tools are handled and how the focused file is tracked.

MCP servers

  • IDE-wide MCP servers for GitHub Copilot and OneWare Agents, managed in Settings › AI Chat › Connectors and from the chat's ⋯ menu (Manage MCP Servers…).
  • OneWare owns its own <AppData>/Copilot/mcp.json (Copilot CLI mcpServers format plus id, disabled, secretEnv, secretHeaders). The file can be edited by hand and is watched for changes. A broken file is reported and never overwritten.
  • Secrets (marked env vars/headers, OAuth client secret) are kept out of the file: one ISecretStore entry per server (new shared store in OneWare.Essentials, implemented in Core). OAuth tokens are kept persistently by the runtime.
  • Servers are passed to each chat as session MCP servers with their secrets filled in, never through the CLI process environment. When the list changes, open chats only start, restart or stop the servers that changed.
  • Servers from the Copilot CLI's ~/.copilot/mcp-config.json are disabled in OneWare chats and offered for import.
  • UI: compact list with status, toggle, sign-in and ⋯ menu; the editor fills its form from a pasted snippet (e.g. a README), has Test Connection and an Advanced OAuth section. The chat's ⋯ menu lists the servers of the current chat with per-chat toggles and sign-in; a warning dot shows failed or signed-out servers.
  • An untrusted project with its own .mcp.json gets a one-time offer to trust the folder and start its servers.
  • The login shell is resolved more reliably ($SHELL looked up on PATH, then /etc/passwd), so stdio servers can find npx and similar tools installed through nvm.

Skills, AGENTS.md, projects

  • Skills are loaded from user directories and from open projects. AGENTS.md is recognized.
  • Works with several open projects at once.

Tools

  • Tool search is enabled, so large MCP servers (hundreds of tools) no longer fill up the context. Core OneWare tools (readFile, editFile, runTerminalCommand, …) are flagged IOneWareAiFunction.AlwaysLoaded and never deferred. Read-only agents (Ask/Plan) allow MCP tools marked read-only.
  • The compaction_static_context_blocked warning now shows in the chat instead of the generic "No response was returned".
  • Removed getFocusedFile; file attachments replace it.

Focused file tracking

  • If a CurrentDocument change handler throws, the error is logged and tracking keeps working.
  • Files in floating windows are tracked when focused.
  • After closing a tab, focus falls back to a sensible document.
  • A dismissed active-file chip comes back when you switch files.

Copilot Fusion

  • GitHub.Copilot.SDK 1.0.21 → 1.0.28, Copilot CLI 1.0.97 → 1.0.105.
  • Auto model routing offers the tiers available to the account (read from the runtime), including HydraFusion; the active tier is shown with a Fusion badge.
  • Fusion review phases are shown as sub-agent blocks in the chat.

Images from tools

  • New ChatImageEvent in OneWare.Essentials (additive). The Copilot chats raise it for images in tool results: inline contents, binary results and session.binary_asset references (e.g. MCP screenshots, images read by readFile).
  • Images are shown inline (also inside sub-agent blocks), open on click and can be saved or shown in the folder. They are stored under <AppData>/Chat/Images/<sessionId>/, restored with the chat and deleted when the chat is pruned or history is cleared. Images over 20 MB are skipped.
  • No image generation.

Other

  • Cloud login refresh tokens now use ISecretStore. Tokens from the old Windows .bin files are moved over the next time they are used.
  • Docs: docs/PluginDevelopment.md has a new Connectors section.

Testing

  • Added CopilotAutoTiersTests, CopilotToolImageTests and ChatImageStoreTests.
  • Added ConnectorTests (store, hub, import, secrets), CopilotSessionConfigurationTests and ProjectWorkspaceTests. The Copilot (72) and Chat (60) unit tests and 4 Dock headless tests pass.
  • Full solution builds.
  • Desktop studio builds.
  • Checked with probes against the real Copilot CLI: secrets reach only their own server, tool search keeps the context small, and core tools stay loaded.
  • Reworked MCP UI and live updates validated manually in the running app.

hendrikmennen and others added 2 commits October 29, 2026 11:23
- IDE-wide MCP connectors under Settings > AI Chat > Connectors, stored in
  ~/.copilot/mcp-config.json, secrets in a shared ISecretStore, OAuth sign-in
- Per-connector secret delivery via session config (no env leakage)
- Load skills and AGENTS.md from user directories and open projects
- Tool search enabled, core OneWare tools always loaded; surface
  context-blocked warnings in chat
- Resolve login shell robustly for PATH (nvm/npx)
- Remove getFocusedFile (replaced by attachments) and make focused-document
  tracking robust (floating windows, tab close, throwing handlers)
- Cloud login refresh tokens moved to ISecretStore
…dates, new UI)

- McpConnectorHub owns <AppData>/Copilot/mcp.json (Copilot CLI format plus id,
  disabled, secretEnv, secretHeaders); secrets are one ISecretStore entry per
  server. The file is watched, can be edited by hand and is never overwritten
  when broken.
- Chats get the enabled servers as session MCP servers; changes only start,
  restart or stop the servers that changed. Copilot CLI user servers are
  disabled in OneWare chats and offered for import.
- Settings list with status, toggle, sign-in and overflow menu; editor that
  fills from a pasted snippet, with Test and Advanced OAuth options.
- Per-chat MCP server list in the chat's overflow menu (GitHub Copilot and
  OneWare Agents), with a warning dot for failed or signed-out servers.
- IOneWareAiFunction.AlwaysLoaded keeps core IDE tools out of tool search
  deferral; read-only agents allow MCP tools marked read-only.
- Tests and plugin docs updated.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@hendrikmennen hendrikmennen changed the title Copilot: MCP connectors, skills, AGENTS.md and project context Copilot: MCP servers, skills, AGENTS.md and project context Oct 29, 2026
- Bump GitHub.Copilot.SDK to 1.0.28 and Copilot CLI to 1.0.105
- Offer account-specific auto routing tiers incl. HydraFusion, show Fusion review phases as sub-agent blocks
- Add ChatImageEvent and render images returned by tools (MCP, readFile) in the chat, stored per session

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@hendrikmennen hendrikmennen changed the title Copilot: MCP servers, skills, AGENTS.md and project context Copilot: MCP servers, skills, AGENTS.md, Fusion and tool images Oct 29, 2026
# Conflicts:
#	docs/PluginDevelopment.md
@hendrikmennen
hendrikmennen merged commit 9e69cba into main Oct 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant