{
  "name": "Rystem Framework Agent",
  "description": "Rystem Framework Model Context Protocol - Tools, Resources, and Prompts for developers",
  "url": "https://rystem.cloud/a2a",
  "version": "0.0.1",
  "documentationUrl": "https://rystem.cloud/mcp",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text",
    "data"
  ],
  "defaultOutputModes": [
    "text"
  ],
  "skills": [
    {
      "id": "get-rystem-docs",
      "name": "Get Rystem Docs",
      "description": "Retrieve specific Rystem Framework documentation by category (id) and topic (value).\n\nAvailable categories and their topics:\n\n**auth**: social-blazor, social-server, social-typescript\n  - auth + social-blazor: Social Authentication - Blazor Client - Add Google, Microsoft, Facebook, GitHub social login buttons to your Blazor Server/WASM app with automatic token management and routing protection\n  - auth + social-server: Social Authentication - Server Setup - Configure Google, Microsoft, Facebook, GitHub, LinkedIn, X, Instagram, Pinterest social login with automatic token management and user provider integration for your REST API\n  - auth + social-typescript: Social Authentication - TypeScript/React Client - Add Google, Microsoft, Facebook, GitHub social login to your React/Vue/Angular app with automatic JWT token management and user context hooks\n\n**content**: repository-blob, repository-file, repository-inmemory, repository-sharepoint, repository, content-abstractions, content-infrastructure-azure-storage-blob, content-infrastructure-azure-storage-file, content-infrastructure-inmemory, content-infrastructure-m365-sharepoint\n  - content + repository-blob: Content Repository - Azure Blob Storage - Store files in Azure Blob Storage with Content Repository - perfect for large files, CDN integration, and public access with metadata and tags support\n  - content + repository-file: Content Repository - Azure File Storage - Store files in Azure File Storage with Content Repository - perfect for SMB shares, legacy applications, and enterprise file sharing with metadata support\n  - content + repository-inmemory: Content Repository - In-Memory Storage - Store files in memory with Content Repository - perfect for unit testing, caching, and development without external dependencies\n  - content + repository-sharepoint: Content Repository - SharePoint Online - Store files in SharePoint Online with Content Repository - perfect for document collaboration, Office 365 integration, and enterprise content management with metadata support\n  - content + repository: Content Repository Pattern - Unified interface for file storage across multiple providers - upload, download, delete files with metadata and tags support for Azure Blob Storage, Azure File Storage, SharePoint, and In-Memory storage\n  - content + content-abstractions: Rystem.Content.Abstractions - Rystem.Content.Abstractions contains the shared content API, the registration builder, and the cross-provider migration service.\n  - content + content-infrastructure-azure-storage-blob: Rystem.Content.Infrastructure.Storage.Blob - This provider adds Azure Blob Storage support to the Content framework.\n  - content + content-infrastructure-azure-storage-file: Rystem.Content.Infrastructure.Storage.File - This provider adds Azure File Share support to the Content framework.\n  - content + content-infrastructure-inmemory: Rystem.Content.Infrastructure.InMemory - This provider adds an in-memory content store for tests, local development, and simple non-persistent scenarios.\n  - content + content-infrastructure-m365-sharepoint: Rystem.Content.Infrastructure.M365.Sharepoint - This provider adds SharePoint Online support to the Content framework through Microsoft Graph.\n\n**ddd**: multi-domain, single-domain, single\n  - ddd + multi-domain: DDD Multi-Domain - Domain-Driven Design for enterprise applications with multiple bounded contexts - complete domain isolation, event-driven communication, and microservices support\n  - ddd + single-domain: DDD Single Domain - Domain-Driven Design for small applications with unified domain - flat structure with domains, business, infrastructures layers\n  - ddd + single: DDD Single Domain - Domain-Driven Design for small applications with unified domain - flat structure with domains, business, infrastructures layers\n\n**install**: rystem\n  - install + rystem: Install Rystem Packages - Quick guide to install Rystem NuGet packages with correct versions - includes core packages, repository framework, authentication, and infrastructure components\n\n**repository**: api-client-dotnet, api-client-typescript, api-server, setup, repositoryframework-abstractions, repositoryframework-api-client, repositoryframework-api-client-authentication-blazorserver, repositoryframework-api-client-authentication-blazorwasm, repositoryframework-api-server, repositoryframework-cache, repositoryframework-cache-azure-storage-blob, repositoryframework-infrastructure-inmemory, repositoryframework-infrastructure-azure-cosmos-sql, repositoryframework-infrastructure-azure-storage-blob, repositoryframework-infrastructure-azure-storage-table, repositoryframework-infrastructure-dynamics-dataverse, repositoryframework-infrastructure-entityframework, repositoryframework-infrastructure-mssql, repositoryframework-migrationtools, repositoryframework-tools-typescriptgenerator, repositoryframework-web-components\n  - repository + api-client-dotnet: Repository API Client - .NET - Consume Repository APIs from .NET/C# apps using same IRepository interface as backend - supports Blazor Server, Blazor WASM, MAUI, WPF, and Console apps\n  - repository + api-client-typescript: Repository API Client - TypeScript - Consume Repository APIs from TypeScript/JavaScript apps with type-safe access, automatic authentication, and retry logic for React, Next.js, and Node.js\n  - repository + api-server: Repository API Server - Auto-generate REST APIs from repositories without writing controllers - includes authentication, LINQ queries, and Swagger documentation\n  - repository + setup: Repository Pattern Setup - Configure data access with Rystem.RepositoryFramework - CQRS, multiple storage backends, business logic injection, and Factory pattern support\n  - repository + repositoryframework-abstractions: Rystem.RepositoryFramework.Abstractions - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Abstractions)(https://www.nuget.org/packages/Rystem.RepositoryFramework.Abstractions)\n  - repository + repositoryframework-api-client: Rystem.RepositoryFramework.Api.Client - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Api.Client)(https://www.nuget.org/packages/Rystem.RepositoryFramework.Api.Client)\n  - repository + repositoryframework-api-client-authentication-blazorserver: Rystem.RepositoryFramework.Api.Client.Authentication.BlazorServer - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Api.Client.Authentication.BlazorServer)(https://www.nuget.org/packages/Rystem.RepositoryFramewo\n  - repository + repositoryframework-api-client-authentication-blazorwasm: Rystem.RepositoryFramework.Api.Client.Authentication.BlazorWasm - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Api.Client.Authentication.BlazorWasm)(https://www.nuget.org/packages/Rystem.RepositoryFramework\n  - repository + repositoryframework-api-server: Rystem.RepositoryFramework.Api.Server - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Api.Server)(https://www.nuget.org/packages/Rystem.RepositoryFramework.Api.Server)\n  - repository + repositoryframework-cache: repository/repositoryframework-cache - Rystem.RepositoryFramework.Cache adds cache decorators on top of Repository Framework registrations. You keep resolving the same IRepository<T, TKey>, IQuery<T,\n  - repository + repositoryframework-cache-azure-storage-blob: repository/repositoryframework-cache-azure-storage-blob - Rystem.RepositoryFramework.Cache.Azure.Storage.Blob adds a Blob Storage-backed distributed cache adapter for Repository Framework decorators.\n  - repository + repositoryframework-infrastructure-inmemory: Rystem.RepositoryFramework.Infrastructure.InMemory - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Infrastructure.InMemory)(https://www.nuget.org/packages/Rystem.RepositoryFramework.Infrastructu\n  - repository + repositoryframework-infrastructure-azure-cosmos-sql: repository/repositoryframework-infrastructure-azure-cosmos-sql - Rystem.RepositoryFramework.Infrastructure.Azure.Cosmos.Sql adds a Cosmos DB SQL API adapter for Repository Framework.\n  - repository + repositoryframework-infrastructure-azure-storage-blob: repository/repositoryframework-infrastructure-azure-storage-blob - Rystem.RepositoryFramework.Infrastructure.Azure.Storage.Blob adds an Azure Blob Storage adapter for Repository Framework.\n  - repository + repositoryframework-infrastructure-azure-storage-table: repository/repositoryframework-infrastructure-azure-storage-table - Rystem.RepositoryFramework.Infrastructure.Azure.Storage.Table adds an Azure Table Storage adapter for Repository Framework.\n  - repository + repositoryframework-infrastructure-dynamics-dataverse: repository/repositoryframework-infrastructure-dynamics-dataverse - Rystem.RepositoryFramework.Infrastructure.Dynamics.Dataverse adds a Microsoft Dataverse adapter for Repository Framework.\n  - repository + repositoryframework-infrastructure-entityframework: Rystem.RepositoryFramework.Infrastructure.EntityFramework - !NuGet(https://img.shields.io/nuget/v/Rystem.RepositoryFramework.Infrastructure.EntityFramework)(https://www.nuget.org/packages/Rystem.RepositoryFramework.Infra\n  - repository + repositoryframework-infrastructure-mssql: repository/repositoryframework-infrastructure-mssql - Rystem.RepositoryFramework.Infrastructure.MsSql adds a lightweight SQL Server adapter for Repository Framework.\n  - repository + repositoryframework-migrationtools: repository/repositoryframework-migrationtools - Rystem.RepositoryFramework.MigrationTools adds IMigrationManager<T, TKey> for moving data from one Repository Framework registration to another.\n  - repository + repositoryframework-tools-typescriptgenerator: global - Rystem.RepositoryFramework.TypescriptGenerator is a .NET CLI tool that inspects C# Repository Framework models and emits a TypeScript client layer for rystem.re\n  - repository + repositoryframework-web-components: repository/repositoryframework-web-components - Rystem.RepositoryFramework.Web.Components provides a server-side Blazor admin UI on top of Repository Framework registrations.\n\n**rystem**: async-lock, backgroundjob, concurrent-list, csv, dependencyinjection-factory, discriminated-union, json-extensions, linq-serializer, queue, race-condition, reflection, stopwatch, task-extensions, test-xunit, text-extensions\n  - rystem + async-lock: Async Lock - Prevent race conditions in async code with key-based locking - execute async methods sequentially by resource ID, user ID, or any custom key with in-memory or Redis distributed locks\n  - rystem + backgroundjob: Background Jobs - Schedule recurring tasks with CRON expressions - run automated jobs, data sync, cleanup tasks, notifications, and periodic processing in your .NET application\n  - rystem + concurrent-list: ConcurrentList - Thread-safe List implementation with automatic locking for concurrent access - provides all List<T> operations with built-in concurrency control\n  - rystem + csv: CSV and Minimization - Serialize any IEnumerable to CSV with ToCsv() or use minimization for compact binary-like serialization with ToMinimize() and FromMinimization() - smaller than JSON with type safety\n  - rystem + dependencyinjection-factory: Dependency Injection Factory Pattern - Advanced factory pattern for Rystem.DependencyInjection - register multiple named services with AddFactory(), use IFactory<T> for runtime service resolution, decorators, fallbacks, and automatic assembly scanning\n  - rystem + discriminated-union: Discriminated Union with AnyOf - Implement type-safe discriminated unions in C# with AnyOf - supports up to 8 types, automatic JSON serialization/deserialization with intelligent type detection, pattern matching, and selector attributes\n  - rystem + json-extensions: JSON Extensions - Simple JSON serialization and deserialization with ToJson() and FromJson<T>() - no more JsonSerializer.Serialize boilerplate\n  - rystem + linq-serializer: LINQ Expression Serializer - Serialize and deserialize LINQ expressions as strings - enables dynamic queries, expression storage in database, and runtime expression compilation with Serialize(), Deserialize(), and DeserializeAsDynamic()\n  - rystem + queue: In-Memory Queue - Buffer operations in-memory and process in batches - collect items until buffer size or time limit is reached, then execute batch processing with FIFO/LIFO support\n  - rystem + race-condition: Race Condition - Allow only the first request to execute within a time window - block duplicate operations with key-based race condition prevention for purchases, payments, submissions\n  - rystem + reflection: Reflection Utilities - Advanced reflection helpers for C# - includes NameOfCallingClass(), FetchProperties() caching, IsTheSameTypeOrASon() type checking, CreateInstance() mocking for abstracts/interfaces, and IsNullable() for nullability detection\n  - rystem + stopwatch: Stopwatch Utilities - Monitor execution time of methods, tasks, and actions with Rystem's Stopwatch helpers - includes Start/Stop, Monitor, and MonitorAsync with automatic time tracking\n  - rystem + task-extensions: Task Extensions - Task utilities including NoContext() for ConfigureAwait(false), ToResult() for synchronous execution, and TaskManager for concurrent task execution with WhenAll() and WhenAtLeast()\n  - rystem + test-xunit: Rystem.Test.XUnit - XUnit Integration Testing Framework - Complete guide to Rystem.Test.XUnit with Dependency Injection and ASP.NET Core Test Host support for integration testing\n  - rystem + text-extensions: Text Extensions - Fast text and stream utilities - includes ToByteArray(), ToStream(), ReadLinesAsync(), ToUpperCaseFirst(), ContainsAtLeast() for efficient string/byte/stream conversions\n\n**ai**: playframework, playframework-adapters, playframework-adapters-foundrylocal\n  - ai + playframework: Rystem.PlayFramework - Rystem.PlayFramework is the orchestration core of the AI area.\n  - ai + playframework-adapters: Rystem.PlayFramework.Adapters - Rystem.PlayFramework.Adapters is the Azure OpenAI adapter package for Rystem.PlayFramework.\n  - ai + playframework-adapters-foundrylocal: Rystem.PlayFramework.Adapters.FoundryLocal - Rystem.PlayFramework.Adapters.FoundryLocal registers local-model adapters for Rystem.PlayFramework through Microsoft Foundry Local.\n\n**api**: api-client-authentication-blazorserver, api-client-authentication-blazorwasm, api, api-client, api-server\n  - api + api-client-authentication-blazorserver: Rystem.Api.Client.Authentication.BlazorServer - Rystem.Api.Client.Authentication.BlazorServer adds token-based request enhancers for Rystem.Api.Client in Blazor Server applications.\n  - api + api-client-authentication-blazorwasm: Rystem.Api.Client.Authentication.BlazorWasm - Rystem.Api.Client.Authentication.BlazorWasm adds bearer-token request enhancers for generated Rystem.Api.Client proxies in Blazor WebAssembly applications.\n  - api + api: Rystem.Api - Rystem.Api is the shared metadata package behind the Api area.\n  - api + api-client: Rystem.Api.Client - Rystem.Api.Client is the runtime client layer for Rystem.Api.\n  - api + api-server: Rystem.Api.Server - Rystem.Api.Server is the ASP.NET Core runtime layer for Rystem.Api.\n\n**authentication**: authentication-social, authentication-social-abstractions, authentication-social-blazor\n  - authentication + authentication-social: Rystem.Authentication.Social - Rystem.Authentication.Social is the server-side social-login package in the Authentication area.\n  - authentication + authentication-social-abstractions: Rystem.Authentication.Social.Abstractions - Rystem.Authentication.Social.Abstractions contains the shared contracts and models used by the Authentication/Social packages.\n  - authentication + authentication-social-blazor: Rystem.Authentication.Social.Blazor - Rystem.Authentication.Social.Blazor is the Blazor-side companion to Rystem.Authentication.Social.\n\n**core**: rystem, dependencyinjection, dependencyinjection-web\n  - core + rystem: core/rystem - Rystem is the core utilities package of the Rystem ecosystem.\n  - core + dependencyinjection: core/dependencyinjection - Rystem.DependencyInjection extends Microsoft.Extensions.DependencyInjection with a set of practical modules built around the default .NET container.\n  - core + dependencyinjection-web: core/dependencyinjection-web - Rystem.DependencyInjection.Web adds a runtime-rebuild layer on top of Rystem.DependencyInjection for ASP.NET Core applications.\n\n**extensions**: backgroundjob, concurrency, concurrency-redis, localization-multiple, queue, web-components\n  - extensions + backgroundjob: extensions/backgroundjob - Rystem.BackgroundJob adds CRON-based recurring jobs on top of the Rystem DI stack.\n  - extensions + concurrency: extensions/concurrency - Rystem.Concurrency adds two small async concurrency primitives on top of the Rystem DI stack:\n  - extensions + concurrency-redis: extensions/concurrency-redis - Rystem.Concurrency.Redis swaps the default in-memory ILockable from Rystem.Concurrency with a Redis-backed distributed implementation.\n  - extensions + localization-multiple: extensions/localization-multiple - Rystem.Localization.Multiple extends the default ASP.NET Core localization model so multiple assemblies can participate as independent resource sources at the s\n  - extensions + queue: extensions/queue - Rystem.Queue is a batching queue library built on top of Rystem.BackgroundJob.\n  - extensions + web-components: extensions/web-components - Rystem.Web.Components is a Blazor component library centered on Bootstrap-flavored layout helpers, a fluent CSS-class builder, a small set of UI services, and s\n\n**localization**: localization\n  - localization + localization: Rystem.Localization - Rystem.Localization is a strongly typed localization layer built on top of RepositoryFramework.\n\nUsage example: get-rystem-docs(id=\"auth\", value=\"blazor\")",
      "tags": [
        "docs",
        "rystem",
        "framework"
      ],
      "inputModes": [
        "text",
        "data"
      ],
      "outputModes": [
        "text"
      ],
      "examples": [
        "{ \"skill\": \"get-rystem-docs\", \"args\": { id: Documentation category. Available: auth, content, ddd, install, repository, rystem | value: Specific topic within the category. Use \"get-rystem-docs-list\" to see all available topics per category. } }"
      ]
    },
    {
      "id": "get-rystem-docs-list",
      "name": "List Get Rystem Docs",
      "description": "List all available categories and topics for get-rystem-docs. Optionally filter by category id.",
      "tags": [
        "docs",
        "rystem",
        "list"
      ],
      "inputModes": [
        "text",
        "data"
      ],
      "outputModes": [
        "text"
      ],
      "examples": [
        "{ \"skill\": \"get-rystem-docs-list\", \"args\": {} }",
        "{ \"skill\": \"get-rystem-docs-list\", \"args\": { \"id\": \"auth\" } }"
      ]
    },
    {
      "id": "get-rystem-docs-search",
      "name": "Search Get Rystem Docs",
      "description": "Search documentation by keyword with progressive disambiguation.",
      "tags": [
        "docs",
        "rystem",
        "search"
      ],
      "inputModes": [
        "text",
        "data"
      ],
      "outputModes": [
        "text"
      ],
      "examples": [
        "{ \"skill\": \"get-rystem-docs-search\", \"args\": { \"query\": \"dependency injection\" } }"
      ]
    }
  ]
}