CSharpToJsonSchema 3.10.4

CSharpToJsonSchema

Nuget package dotnet License: MIT Discord

Features 🔥

  • Source generator to define functions natively through C# interfaces and individual methods
  • Doesn't use Reflection
  • All modern .NET features - nullability, trimming, NativeAOT, etc.
  • Tested for compatibility with OpenAI/Ollama/Anthropic/LangChain/Gemini

Usage

Interface

using CSharpToJsonSchema;

public enum Unit
{
    Celsius,
    Fahrenheit,
}

public class Weather
{
    public string Location { get; set; } = string.Empty;
    public double Temperature { get; set; }
    public Unit Unit { get; set; }
    public string Description { get; set; } = string.Empty;
}

[GenerateJsonSchema(Strict = true)] // false by default. You can't use parameters with default values in Strict mode.
public interface IWeatherFunctions
{
    [Description("Get the current weather in a given location")]
    public Task<Weather> GetCurrentWeatherAsync(
        [Description("The city and state, e.g. San Francisco, CA")] string location,
        Unit unit,
        CancellationToken cancellationToken = default);
}

public class WeatherService : IWeatherFunctions
{
    public Task<Weather> GetCurrentWeatherAsync(string location, Unit unit = Unit.Celsius, CancellationToken cancellationToken = default)
    {
        return Task.FromResult(new Weather
        {
            Location = location,
            Temperature = 22.0,
            Unit = unit,
            Description = "Sunny",
        });
    }
}

var tools = service.AsTools();

Methods


[FunctionTool]
public Task<Weather> GetCurrentWeatherAsync(string location, Unit unit = Unit.Celsius, CancellationToken cancellationToken = default)
{
    return Task.FromResult(new Weather
    {
        Location = location,
        Temperature = 22.0,
        Unit = unit,
        Description = "Sunny",
    });
}

var tools = new Tools([GetCurrentWeatherAsync])

//Access list of CSharpToJsonSchema.Tool
var myTools = tools.AvailableTools

//Implicit Conversion to list of CSharpToJsonSchema.Tool
List<Tool> myTools = tools

Support

Priority place for bugs: https://github.com/tryAGI/CSharpToJsonSchema/issues
Priority place for ideas and general questions: https://github.com/tryAGI/CSharpToJsonSchema/discussions
Discord: https://discord.gg/Ca2xhfBf3v

Acknowledgments

JetBrains logo

This project is supported by JetBrains through the Open Source Support Program.

Showing the top 20 packages that depend on CSharpToJsonSchema.

Packages Downloads
Anthropic
Generated C# SDK based on official Anthropic OpenAPI specification.
8

Version Downloads Last updated
3.10.4 4 05/04/2026
3.10.2-dev.106 8 03/21/2026
3.10.2-dev.105 8 03/21/2026
3.10.2-dev.104 8 03/21/2026
3.10.2-dev.103 8 03/21/2026
3.10.2-dev.102 8 03/21/2026
3.10.2-dev.101 8 03/21/2026
3.10.2-dev.100 8 03/21/2026
3.10.2-dev.99 8 03/21/2026
3.10.2-dev.97 8 03/21/2026
3.10.2-dev.96 8 03/21/2026
3.10.2-dev.90 8 03/19/2026
3.10.2-dev.89 8 03/19/2026
3.10.2-dev.88 8 03/19/2026
3.10.2-dev.85 8 03/17/2026
3.10.2-dev.84 8 03/17/2026
3.10.2-dev.83 8 03/17/2026
3.10.2-dev.82 8 03/17/2026
3.10.2-dev.80 8 03/17/2026
3.10.2-dev.69 8 03/06/2026
3.10.2-dev.39 8 03/06/2026
3.10.2-dev.34 8 03/06/2026
3.10.2-dev.32 8 03/06/2026
3.10.2-dev.31 8 03/06/2026
3.10.2-dev.29 8 03/06/2026
3.10.2-dev.28 8 03/06/2026
3.10.2-dev.26 8 03/06/2026
3.10.2-dev.25 8 03/06/2026
3.10.2-dev.22 8 03/06/2026
3.10.2-dev.21 8 03/06/2026
3.10.2-dev.18 8 03/06/2026
3.10.2-dev.16 8 03/06/2026
3.10.1 8 03/06/2026
3.9.2-dev.3 8 03/06/2026
3.9.2-dev.2 8 03/06/2026
3.9.1 8 03/06/2026
3.9.0 8 03/06/2026
3.8.2-dev.13 8 03/06/2026
3.8.2-dev.10 8 03/06/2026
3.8.2-dev.9 8 03/06/2026
0.0.0-dev.1 8 03/06/2026