CognitiveForge.McpCategoryRouting
БесплатноНе проверенCategory-based routing for .NET MCP servers. Expose different subsets of tools, prompts, and resources on different URL paths from a single MCP server.
Описание
Category-based routing for .NET MCP servers. Expose different subsets of tools, prompts, and resources on different URL paths from a single MCP server.
README
Category-based routing for .NET MCP servers. Expose different subsets of tools, prompts, and resources on different URL paths from a single MCP server.
NuGet version codecov License: MIT CodeRabbit Pull Request Reviews
Overview
This library hooks into the Model Context Protocol (MCP) SDK for .NET and filters MCP primitives per HTTP session based on a route parameter. For example, app.MapMcp("/{category}") lets requests to /analytics see only analytics tools while /ops sees only operations tools.
Filtering happens at session connection time via IPostConfigureOptions<HttpServerTransportOptions>, so there is no per-message overhead.
Prerequisites
- .NET 10 SDK or later
Installation
dotnet add package CognitiveForge.McpCategoryRouting
Quick Start
using CognitiveForge.McpCategoryRouting;
using ModelContextProtocol.Server;
using System.ComponentModel;
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddMcpServer()
.WithHttpTransport()
.WithToolsFromAssembly(typeof(Program).Assembly)
.AddCategoryFilters(); // enable category filtering
var app = builder.Build();
app.MapMcp("/{category}"); // standard MapMcp with a route parameter
app.Run();
// Tools categorized as "analytics" — visible at /analytics
[McpServerToolType]
[McpCategory("analytics")]
public static class AnalyticsTools
{
[McpServerTool, Description("Returns a tiny analytics summary.")]
public static string GetSummary() => "Users: 42, ConversionRate: 3.1%";
}
// Tools categorized as "ops" — visible at /ops
[McpServerToolType]
[McpCategory("ops")]
public static class OperationsTools
{
[McpServerTool, Description("Returns a simple health status.")]
public static string GetHealth() => "OK";
}
See the samples/Basic project for a complete working example.
Configuration
Pass an options delegate to AddCategoryFilters():
.AddCategoryFilters(options =>
{
options.RouteValueName = "category";
options.CaseInsensitive = true;
options.UncategorizedBehavior = UncategorizedBehavior.ExcludeAlways;
});
| Property | Default | Description |
|---|---|---|
RouteValueName |
"category" |
ASP.NET Core route parameter name to read |
CaseInsensitive |
true |
Case-insensitive category matching |
DisableFilteringWhenCategoryMissing |
true |
Skip filtering when the route has no category segment (expose all primitives) |
UncategorizedBehavior |
ExcludeAlways |
How to handle primitives with no category (see below) |
FallbackCategory |
"mcp" |
Route value that activates uncategorized primitives when using FallbackRoute behavior |
Category Assignment
Apply [McpCategory] to a class (affects all tools in the class) or to individual methods:
[McpCategory("analytics")]
[McpCategory("reporting")] // multiple categories allowed
public static class MultiCategoryTools { ... }
[System.ComponentModel.Category] is also supported as a fallback when [McpCategory] is not present.
Uncategorized Primitives
The UncategorizedBehavior enum controls visibility of primitives that have no category:
| Value | Behavior |
|---|---|
IncludeAlways |
Always visible on every route |
ExcludeAlways |
Never visible (default) |
FallbackRoute |
Visible only when the route matches FallbackCategory |
Building
dotnet build CognitiveForge.McpCategoryRouting.slnx
Testing
# Run all tests
dotnet test CognitiveForge.McpCategoryRouting.slnx
# Run unit tests only
dotnet test src/CognitiveForge.McpCategoryRouting.Tests
# Run integration tests only
dotnet test src/CognitiveForge.McpCategoryRouting.IntegrationTests
# Run a single test
dotnet test src/CognitiveForge.McpCategoryRouting.Tests --filter "FullyQualifiedName~GetCategories_should_return_empty"
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
from github.com/Cognitive-Forge-AI/CognitiveForge.McpCategoryRouting
Установка CognitiveForge.McpCategoryRouting
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Cognitive-Forge-AI/CognitiveForge.McpCategoryRoutingFAQ
CognitiveForge.McpCategoryRouting MCP бесплатный?
Да, CognitiveForge.McpCategoryRouting MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для CognitiveForge.McpCategoryRouting?
Нет, CognitiveForge.McpCategoryRouting работает без API-ключей и переменных окружения.
CognitiveForge.McpCategoryRouting — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить CognitiveForge.McpCategoryRouting в Claude Desktop, Claude Code или Cursor?
Открой CognitiveForge.McpCategoryRouting на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare CognitiveForge.McpCategoryRouting with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
