About JD.SemanticKernel.Extensions.Plugins
JD.SemanticKernel.Extensions.Plugins is an MCP server published by JerrettDavis in the Blockchain category: load Claude Code .claude-plugin directories into Semantic Kernel. Orchestrates skill, hook, and MCP server loading from plugin manifests with dependency resolution.
The repository has 1 stars and 0 forks, with the last commit 7 days ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/JerrettDavis/JD.SemanticKernel.ExtensionsThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about JD.SemanticKernel.Extensions.Plugins
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
JD.SemanticKernel.Extensions
An extensible toolkit for Microsoft Semantic Kernel that bridges Claude Code skills, plugins, and hooks into SK applications, and adds context management primitives (compaction, semantic memory) for building production-grade AI agents.
Features
- 📝 Skills — Parse
SKILL.mdfiles (YAML frontmatter + markdown) intoKernelFunctionorPromptTemplate - 🔗 Hooks — Map Claude Code lifecycle events (
PreToolUse,PostToolUse, etc.) to SK'sIFunctionInvocationFilterandIPromptRenderFilter - 📦 Plugins — Load
.claude-plugin/directories with skills, hooks, and MCP configs - 🗜️ Compaction — Transparent context window management with configurable triggers and hierarchical summarization
- 🧠 Memory — Semantic memory with MMR reranking, temporal decay scoring, and query expansion
- 💾 Memory.Sqlite — SQLite-backed persistent memory storage
- 🎯 Fluent API —
UseSkills(),UseHooks(),UsePlugins(),AddCompaction(),AddSemanticMemory()extension methods
Packages
Quick Start
dotnet add package JD.SemanticKernel.Extensions
Load Skills
using JD.SemanticKernel.Extensions.Skills;
var kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4o", apiKey)
.UseSkills("./skills/") // Scans for SKILL.md files
.Build();
A SKILL.md file follows the Claude Code / AgentSkills.io format:
---
name: code-reviewer
description: Reviews code for quality issues
allowed-tools: [Read, Grep, Glob]
---
# Code Reviewer
Review the provided code for:
1. Bug risks
2. Security vulnerabilities
3. Performance issues
Input: $ARGUMENTS
Configure Hooks
using JD.SemanticKernel.Extensions.Hooks;
var kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4o", apiKey)
.UseHooks(hooks =>
{
hooks.OnFunctionInvoking("Bash|Execute", async ctx =>
{
Console.WriteLine($"Validating: {ctx.Function.Name}");
});
hooks.OnFunctionInvoked("Write|Edit", async ctx =>
{
Console.WriteLine($"Post-edit hook: {ctx.Function.Name}");
});
hooks.OnPromptRendering(async ctx =>
{
Console.WriteLine("Prompt is about to render...");
});
})
.Build();
Load Plugins
using JD.SemanticKernel.Extensions.Plugins;
var kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4o", apiKey)
.UsePlugins("./my-plugin/") // Single plugin directory
.UseAllPlugins("./plugins/") // All plugins in directory
.Build();
Plugin directories follow the .claude-plugin/ convention:
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Manifest
├── skills/
│ └── reviewer/SKILL.md # Skills
├── hooks/
│ └── hooks.json # Hooks
└── .mcp.json # MCP servers (future)
Meta-Package (All-in-One)
using JD.SemanticKernel.Extensions;
var kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4o", apiKey)
.AddClaudeCodeSkills("./skills/")
.AddClaudeCodePlugin("./my-plugin/")
.AddClaudeCodeHooks(hooks => hooks.OnFunctionInvoking(".*", _ => Task.CompletedTask))
.Build();
Context Compaction
Automatically compress chat history when it grows too large, preserving key context while staying within token limits.
using JD.SemanticKernel.Extensions.Compaction;
var kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion("gpt-4o", apiKey)
.Build();
// Register compaction as transparent middleware
kernel.Services.AddCompaction(options =>
{
options.TriggerMode = CompactionTriggerMode.ContextPercentage;
options.Threshold = 0.70; // Compact at 70% of context window
options.MaxContextWindowTokens = 128_000; // Model's context limit
options.PreserveLastMessages = 10; // Always keep recent messages
options.MinMessagesBeforeCompaction = 5; // Don't compact short conversations
});
Trigger modes:
TokenThreshold— Compact when estimated tokens exceed an absolute countContextPercentage— Compact when usage exceeds a percentage of the context window
Token estimation:
var tokens = TokenEstimator.EstimateTokens("Hello world"); // ~2 tokens
var historyTokens = TokenEstimator.EstimateTokens(chatHistory); // Includes overhead
Semantic Memory
Store, search, and retrieve context-relevant information with embedding-based similarity, MMR diversity reranking, and temporal decay scoring.
using JD.SemanticKernel.Extensions.Memory;
// Register with in-memory backend
kernel.Services.AddSemanticMemory(options =>
{
options.DefaultSearchOptions = new MemorySearchOptions
{
TopK = 10,
MinRelevanceScore = 0.7,
UseMmrReranking = true,
MmrLambda = 0.7, // Balance relevance vs diversity
UseTemporalDecay = true,
TemporalDecayRate = 0.01,
};
});
SQLite persistence:
using JD.SemanticKernel.Extensions.Memory.Sqlite;
kernel.Services.AddSqliteMemoryBackend("Data Source=memory.db");
Key capabilities:
- MMR reranking — Maximal Marginal Relevance for diverse search results
- Temporal decay — Recent memories rank higher with configurable decay rate
- Query expansion — Automatically generate alternative queries for broader recall
- Pluggable backends —
InMemoryBackend(default),SqliteMemoryBackend, or implementIMemoryBackend
Hook Event Mapping
| Claude Code Event | SK Filter |
|---|---|
PreToolUse |
IFunctionInvocationFilter.OnFunctionInvokingAsync |
PostToolUse |
IFunctionInvocationFilter.OnFunctionInvokedAsync |
UserPromptSubmit |
IPromptRenderFilter.OnPromptRenderingAsync |
Stop / SubagentStop |
IAutoFunctionInvocationFilter |
SessionStart / SessionEnd |
IExtensionEventBus (custom) |
PreCompact / Notification |
IExtensionEventBus (custom) |
Related Projects
| Project | Description |
|---|---|
| JD.SemanticKernel.Connectors.ClaudeCode | Claude Code authentication provider for SK |
| JD.SemanticKernel.Connectors.GitHubCopilot | GitHub Copilot authentication provider for SK |
Building
dotnet restore
dotnet build
dotnet test
License
MIT © JD
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.