Skip to content

.NET [Breaking]: Remove old MCP skill functionality - #9655

Merged
SergeyMenshykh merged 6 commits into
feature-mcp-skills-nextfrom
sergeymenshykh-remove-skill-index-loading
Oct 23, 2026
Merged

SergeyMenshykh merged 6 commits into
feature-mcp-skills-nextfrom
sergeymenshykh-remove-skill-index-loading

Conversation

@SergeyMenshykh

@SergeyMenshykh SergeyMenshykh commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

Simplify the MCP skills implementation by removing the old discovery path and consolidating the remaining code. The refactoring introduces no behavioral changes to the retained skills/list functionality.

Description

  • Remove skill://index.json skill loading, archive extraction, and archive-specific options.
  • Remove obsolete index and archive tests.
  • Move source and test files out of the Listed folders and remove Listed from class and file names.
  • Move skill discovery into AgentMcpSkillsSource and caching into McpSkillsLoader.
  • Preserve the retained skills/list logic, comments, and style without behavior changes.

semenshi-m (semenshi) and others added 4 commits October 23, 2026 16:32
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 16:31 — with GitHub Actions Active
@SergeyMenshykh SergeyMenshykh self-assigned this Oct 23, 2026
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 16:32 — with GitHub Actions Active
@agent-framework-automation agent-framework-automation Bot added .NET Usage: [Issues, PRs], Target: .Net breaking change Usage: [PRs], Target: all PRs that introduce changes that are not backward compatible labels Oct 23, 2026
@SergeyMenshykh SergeyMenshykh changed the title [BREAKING] .NET: Remove legacy MCP skill index loading .NET [Breaking]: Remove old MCP skill functionality Oct 23, 2026
@SergeyMenshykh
SergeyMenshykh marked this pull request as ready for review October 23, 2026 16:33
Copilot AI balanced review requested due to automatic review settings October 23, 2026 16:33
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 16:33 — with GitHub Actions Active
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 16:35 — with GitHub Actions Active
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 16:35 — with GitHub Actions Active
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 16:36 — with GitHub Actions Active

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Removal of public options and legacy discovery needs maintainer confirmation of migration impact and passing MCP regression tests.

No open issues 🎉

What changed in this PR

This PR simplifies .NET MCP skill support in Agent Framework by removing legacy index and archive discovery and consolidating the retained skills/list implementation.

Changes:

  • Remove skill://index.json loading, archive extraction, archive options, and obsolete tests.
  • Move discovery into AgentMcpSkillsSource, caching into McpSkillsLoader, and retained types out of Listed folders.
  • Update documentation and tests for extension-required discovery while preserving resource validation and cache behavior.
File Description
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​McpSkillsLoaderTests.cs Rename cache tests for the consolidated loader.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillTests.cs Update resource-access tests to renamed types.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillsTests.Ttl.cs Exercise expiration, concurrency, and disposal through the source.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillsTests.cs Adapt discovery tests and verify no legacy fallback.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillsSourceTests.cs Remove obsolete index-based tests.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillsSourceArchiveTests.cs Remove archive-loading and extraction tests.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillsSerializationTests.cs Update serialization tests to renamed models.
dotnet/​tests/​Microsoft.Agents.AI.Mcp.UnitTests/​Skills/​AgentMcpSkillsDiscoverySelectionTests.cs Verify absent extensions cause no discovery requests.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpSkillsSnapshot.cs Rename the cached catalog snapshot.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpSkillsPageLifetime.cs Rename the page-lifetime model.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpSkillsLoader.cs Retain expiration-based caching under the loader name.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpSkillsListResult.cs Remove Listed from discovery model names.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpSkillsJsonContext.cs Update generated serialization registrations.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpSkillIndex.cs Remove legacy index models.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​McpJsonContext.cs Remove legacy index serialization context.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Loaders/​SkillMdEntryLoader.cs Remove index-based Markdown loading.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Loaders/​IMcpSkillEntryLoader.cs Remove the index-entry loader abstraction.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Loaders/​ArchiveFormat.cs Remove archive format definitions.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Loaders/​ArchiveEntryLoader.cs Remove archive download and reconciliation.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Loaders/​AgentMcpSkillArchiveExtractor.cs Remove local archive extraction.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Listed/​McpListedSkillsLoader.cs Remove discovery implementation relocated into the source.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Listed/​AgentMcpListedSkillResource.cs Remove the old location of the retained resource implementation.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​Listed/​AgentMcpListedSkill.cs Remove the old location of the retained skill implementation.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​AgentSkillsProviderBuilderMcpExtensions.cs Document extension-only discovery and updated security considerations.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​AgentMcpSkillsSourceOptions.cs Remove public archive-specific options.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​AgentMcpSkillsSource.cs Own discovery and validation; remove index fallback.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​AgentMcpSkillResource.cs Adopt the retained verified-resource implementation.
dotnet/​src/​Microsoft.Agents.AI.Mcp/​Skills/​AgentMcpSkill.cs Adopt the retained manifest-bound skill implementation.

Review effort: Balanced

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MAF Automated Review — Iteration 1

Result: Findings reported
Scope: full PR (5 commit(s)): dc7c91926148, e7340a8b5a89, 83c1749ce856, 2eb91b86da35, f4cd0be1d4f4
Model: gpt-5.6-sol

Overview

The refactor cleanly consolidates the retained skills/list path and preserves strong pagination, integrity, path-safety, caching, cancellation, and ownership guardrails. One compatibility gap remains: the new extension-only selection disables the repository's documented Foundry Toolbox integration unless the first-party endpoint and callers are migrated in lockstep.

Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
1 verified finding remained after source verification (1 medium) across 1 file. Details are attached to the affected lines below.

Affected areas: dotnet/src/Microsoft.Agents.AI.Mcp/Skills/AgentMcpSkillsSource.cs

Comment thread dotnet/src/Microsoft.Agents.AI.Mcp/Skills/AgentMcpSkillsSource.cs
@github-code-quality

github-code-quality Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Code coverage overview

Languages: C#

C# / code-coverage/dotnet

feature-mcp-skills-n... 9c8a351 sergeymenshykh-remov... b5642d5 +/-
86% 85% -1%
View coverage of the 10 most impacted files.
File feature-mcp-skills-n... 9c8a351 sergeymenshykh-remov... b5642d5 +/-
/home/runner/wo...toryProvider.cs 95% 31% -64%
/home/runner/wo...SessionStore.cs 100% 53% -47%
/home/runner/wo...hellExecutor.cs 90% 73% -17%
/home/runner/wo...ostedService.cs 79% 71% -8%
/home/runner/wo...SkillsSource.cs 89% 83% -6%
/home/runner/wo...ctionVisitor.cs 81% 75% -6%
/home/runner/wo...CopilotAgent.cs 72% 76% +4%
/home/runner/wo...SkillsSource.cs 69% 100% +31%
/home/runner/wo...SkillsLoader.cs 0% 100% +100%
/home/runner/wo...ueExtensions.cs 0% 100% +100%

ℹ️ Calculations represent line coverage. Results may change as calculations are updated.


Updated October 23, 2026 18:19 UTC

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@SergeyMenshykh
SergeyMenshykh deployed to github-app-auth October 23, 2026 18:11 — with GitHub Actions Active
@agent-framework-automation agent-framework-automation Bot added the documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs label Oct 23, 2026
@SergeyMenshykh
SergeyMenshykh merged commit ca397a3 into feature-mcp-skills-next Oct 23, 2026
16 checks passed
@SergeyMenshykh
SergeyMenshykh deleted the sergeymenshykh-remove-skill-index-loading branch October 23, 2026 18:32

This branch was successfully deployed

2 active deployments
github-app-auth — b5642d5b Deployed Oct 23, 2026 by SergeyMenshykh via add_label #26054
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change Usage: [PRs], Target: all PRs that introduce changes that are not backward compatible documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs .NET Usage: [Issues, PRs], Target: .Net

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants