Skip to content

Modernize MCP integration and manage MCP servers via @package - #2847

Merged
Hillary Mutisya (hillary-mutisya) merged 4 commits into
microsoft:mainfrom
hillary-mutisya:mcpUpdates
Aug 12, 2026
Merged

Modernize MCP integration and manage MCP servers via @package#2847
Hillary Mutisya (hillary-mutisya) merged 4 commits into
microsoft:mainfrom
hillary-mutisya:mcpUpdates

Conversation

@hillary-mutisya

Copy link
Copy Markdown
Collaborator

Overhaul how TypeAgent connects to and manages MCP servers.

Connectivity and fidelity:

  • Move to the v2 MCP client with protocol negotiation.
  • Support generic stdio servers (command/env/cwd/headers/timeout), not just bundled .js/.py scripts.
  • Convert each advertised tool independently so one unsupported tool no longer fails the whole server; skipped tools are reported as diagnostics.
  • Map tool results to TypeAgent results, including text/image/audio/embedded content and error results.

Configuration:

  • Add a normalized MCP server config model (transport, args, env, cwd, enabled tools, trust, scope) with secrets held as credential references, not values.
  • Import .mcp.json, .github/mcp.json, and .vscode/mcp.json config files, normalizing them into that model.

Dynamic lifecycle:

  • Add/remove/update user-managed MCP servers at runtime and propagate the change to every connected session without a restart.
  • Persist user-managed servers; keep shipped servers as seeded configuration.

Extension management:

  • Discover MCP servers from a local MCP config file through Ryan D (@Package).
  • Manage native agents and MCP servers from one command surface, tagged by extension kind, with @package available --type agent|mcp|all to filter.

Fully covered by offline unit tests; build and local suite green.

Overhaul how TypeAgent connects to and manages MCP servers.
Connectivity and fidelity:
- Move to the v2 MCP client with protocol negotiation.
- Support generic stdio servers (command/env/cwd/headers/timeout), not just bundled .js/.py scripts.
- Convert each advertised tool independently so one unsupported tool no longer fails the whole server; skipped tools are reported as diagnostics.
- Map tool results to TypeAgent results, including text/image/audio/embedded content and error results.
Configuration:
- Add a normalized MCP server config model (transport, args, env, cwd, enabled tools, trust, scope) with secrets held as credential references, not values.
- Import .mcp.json, .github/mcp.json, and .vscode/mcp.json config files, normalizing them into that model.
Dynamic lifecycle:
- Add/remove/update user-managed MCP servers at runtime and propagate the change to every connected session without a restart.
- Persist user-managed servers; keep shipped servers as seeded configuration.
Extension management:
- Discover MCP servers from a local MCP config file through @Package.
- Manage native agents and MCP servers from one command surface, tagged by extension kind, with `@package available --type agent|mcp|all` to filter.
Fully covered by offline unit tests; build and local suite green.
@github-merge-queue
github-merge-queueBot removed this pull request from the merge queue due to failed status checks Aug 12, 2026
@github-merge-queue
github-merge-queueBot removed this pull request from the merge queue due to failed status checks Aug 12, 2026
Merged via the queue into microsoft:main with commit c73f40dAug 12, 2026
41 of 45 checks passed
Dominic Nguyen (datduyng) added a commit that referenced this pull request Aug 13, 2026
Realtime scanning of checkout, pnpm, and test output is a known
multi-minute tax on GitHub-hosted and ADO Windows agents. The same
suites still run on every required cell.
Also record the #2847 required-check span (65.90 min) and the 46.13 min
30% target in the measurements note.
Dominic Nguyen (datduyng) added a commit that referenced this pull request Aug 13, 2026
- Skip live_linux on PullRequest. continueOnError already meant a live
failure did not fail the gate, but the parent TypeAgent Smoke Tests
check stayed queued until live finished (~13 min past Windows smoke on
7e4135e). main and merge-queue still run test:live.
- Smoke agents build only agent-shell|agent-cli (with deps) and install
Playwright chromium only. playwright.config.ts has one project;
shell:smoke launches Electron. Full monorepo build stays on live and
build_ts.
- On 7e4135e the required span was 36.78 min (ratio 0.558 vs #2847).
Live was the pole; Windows smoke setup was 15.5 min of build+browsers
for a 1.3 min suite.
Sign up for freeto 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.

2 participants

@hillary-mutisya@jebrans