![]() |
VOOZH | about |
dotnet add package CrestApps.AgentSkills.Mcp --version 1.0.0-preview-0009
NuGet\Install-Package CrestApps.AgentSkills.Mcp -Version 1.0.0-preview-0009
<PackageReference Include="CrestApps.AgentSkills.Mcp" Version="1.0.0-preview-0009" />
<PackageVersion Include="CrestApps.AgentSkills.Mcp" Version="1.0.0-preview-0009" />Directory.Packages.props
<PackageReference Include="CrestApps.AgentSkills.Mcp" />Project file
paket add CrestApps.AgentSkills.Mcp --version 1.0.0-preview-0009
#r "nuget: CrestApps.AgentSkills.Mcp, 1.0.0-preview-0009"
#:package CrestApps.AgentSkills.Mcp@1.0.0-preview-0009
#addin nuget:?package=CrestApps.AgentSkills.Mcp&version=1.0.0-preview-0009&prereleaseInstall as a Cake Addin
#tool nuget:?package=CrestApps.AgentSkills.Mcp&version=1.0.0-preview-0009&prereleaseInstall as a Cake Tool
A generic, reusable MCP (Model Context Protocol) engine that discovers and exposes Agent Skills as MCP Prompts and Resources. Built on the MCP C# SDK.
For Orchard Core–specific skills, see the companion package , which builds on top of this project and bundles both the framework-only Orchard Core skills and the CrestApps OrchardCore module skills.
dotnet add package CrestApps.AgentSkills.Mcp
builder.Services.AddMcpServer(mcp =>
{
mcp.AddAgentSkills();
});
To register the skill services in DI without eagerly loading them:
builder.Services.AddAgentSkillServices();
The consumer is then responsible for resolving IMcpPromptProvider and IMcpResourceProvider and attaching them to the MCP server.
builder.Services.AddMcpServer(mcp =>
{
mcp.AddAgentSkills(options =>
{
options.Path = "./my-skills";
});
});
The file store and providers are registered as singletons and can be injected:
public sealed class MyService
{
private readonly IMcpPromptProvider _promptProvider;
private readonly IMcpResourceProvider _resourceProvider;
public MyService(
IMcpPromptProvider promptProvider,
IMcpResourceProvider resourceProvider)
{
_promptProvider = promptProvider;
_resourceProvider = resourceProvider;
}
public async Task ListPromptsAsync()
{
var prompts = await _promptProvider.GetPromptsAsync();
// ...
}
}
Skills are discovered from subdirectories under the configured skills path. Each skill directory must contain one of the following skill definition files:
.md)A SKILL.md file with YAML front-matter:
---
name: my-skill
description: A description of my skill.
---
# Prompt content
This is the body that becomes the MCP prompt.
.yaml / .yml)A SKILL.yaml or SKILL.yml file:
name: my-skill
description: A description of my skill.
body: |
# Prompt content
This is the body that becomes the MCP prompt.
Both formats require:
| Field | Description |
|---|---|
name |
Unique skill identifier |
description |
Human-readable description |
The body field (or Markdown body after front-matter) provides the prompt content.
Each skill directory may include a references/ subdirectory containing additional .md files. These are exposed as MCP Resources:
.agents/skills/
my-skill/
SKILL.md (or SKILL.yaml / SKILL.yml)
references/
example1.md
example2.md
| MCP Type | Source | Description |
|---|---|---|
| Prompts | Skill file body content | Prompt templates from SKILL.md body or SKILL.yaml body field |
| Resources | Skill files | Full skill file content (metadata + body) |
| Resources | references/*.md files |
Additional reference documents for each skill |
| Service | Lifetime | Purpose |
|---|---|---|
IAgentSkillFilesStore |
Singleton | Abstraction for skill file access |
IMcpPromptProvider |
Singleton | Reads skill files → cached McpServerPrompt instances |
IMcpResourceProvider |
Singleton | Reads skill + reference files → cached McpServerResource instances |
| Parser | Formats | Purpose |
|---|---|---|
SkillFrontMatterParser |
.md |
Parses YAML front-matter from Markdown files |
SkillYamlParser |
.yaml, .yml |
Parses YAML skill definitions |
SkillFileParser |
All | Unified parser that detects format and delegates |
.agents/skills/ (or a custom path).SKILL.md, SKILL.yaml, or SKILL.yml file.AddAgentSkills() registers IAgentSkillFilesStore, IMcpPromptProvider, and IMcpResourceProvider as singletons.dotnet build
dotnet test
Place your skill files in a directory and use the test infrastructure:
var fileStore = new PhysicalSkillFileStore("/path/to/skills");
var provider = new SkillPromptProvider(fileStore, NullLogger<SkillPromptProvider>.Instance);
var prompts = await provider.GetPromptsAsync();
CrestApps.AgentSkills.Mcp ← Generic, reusable MCP engine (this package)
This is the base package that other skill distribution packages can build upon.
ModelContextProtocol NuGet package)ModelContextProtocol.AspNetCore)This project is licensed under the .
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 2 NuGet packages that depend on CrestApps.AgentSkills.Mcp:
| Package | Downloads |
|---|---|
|
CrestApps.AgentSkills.Mcp.OrchardCore
Exposes Orchard Core agent skills to MCP servers at runtime. Loads skills from the package output and registers them as MCP prompts and resources. Built on top of CrestApps.AgentSkills.Mcp. |
|
|
CrestApps.OrchardCore.AgentSkills.Mcp
Exposes Orchard Core agent skills to MCP servers at runtime. Loads skills from the package output and registers them as MCP prompts and resources. Built on top of CrestApps.AgentSkills.Mcp. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview-0009 | 506 | 5/28/2026 |
| 1.0.0-preview-0008 | 177 | 5/22/2026 |
| 1.0.0-preview-0007 | 68 | 5/19/2026 |
| 1.0.0-preview-0006 | 59 | 5/19/2026 |
| 1.0.0-preview-0005 | 224 | 5/6/2026 |
| 1.0.0-preview-0004 | 1,043 | 3/23/2026 |
| 1.0.0-preview-0003 | 88 | 3/22/2026 |
| 1.0.0-preview-0002 | 243 | 3/15/2026 |
| 1.0.0-preview-0001 | 858 | 2/19/2026 |
| 1.0.0-preview.91 | 57 | 5/22/2026 |
| 1.0.0-preview.11 | 59 | 5/22/2026 |
| 1.0.0-preview.10 | 121 | 5/19/2026 |
| 1.0.0-preview.9 | 64 | 5/22/2026 |
| 1.0.0-preview.8 | 60 | 5/19/2026 |
| 1.0.0-preiew-0002 | 70 | 2/19/2026 |
| 1.0.0-preiew-0001 | 77 | 2/19/2026 |
| 1.0.0-beta-0010 | 92 | 2/18/2026 |
| 1.0.0-beta-0009 | 66 | 2/18/2026 |
| 1.0.0-beta-0008 | 68 | 2/17/2026 |
| 1.0.0-beta-0007 | 180 | 2/12/2026 |