Rob1997.CereBro
1.0.6
dotnet add package Rob1997.CereBro --version 1.0.6
NuGet\Install-Package Rob1997.CereBro -Version 1.0.6
<PackageReference Include="Rob1997.CereBro" Version="1.0.6" />
<PackageVersion Include="Rob1997.CereBro" Version="1.0.6" />
<PackageReference Include="Rob1997.CereBro" />
paket add Rob1997.CereBro --version 1.0.6
#r "nuget: Rob1997.CereBro, 1.0.6"
#addin nuget:?package=Rob1997.CereBro&version=1.0.6
#tool nuget:?package=Rob1997.CereBro&version=1.0.6
CereBro
CereBro is a model-agnostic AI Agent Wrapper for .Net. Now with 🔥 Model Context Protocol 🔥 , based on the Official C# SDK, you can write Tools that can be used with different AI models without changing the code.
Models
Below is a list of supported and planned models for CereBro.
Supported:
Planned:
Installation
You can install the package from NuGet using the following command:
dotnet add package Rob1997.CereBro
dotnet add package Rob1997.CereBro.Open-AI
Usage
Step 1: Create a servers.json
file
This file will contain the configuration for the MCP servers you want to use. Below is an example of the servers.json
file.
[
{
"Id": "everything-server",
"Name": "Everything",
"TransportType": "stdio",
"TransportOptions": {
"command": "npx",
"arguments": "-y @modelcontextprotocol/server-everything"
}
}
]
You can check out more servers here.
Step 2: Add your OpenAI API Key to your environment variables
export OPEN_AI_API_KEY="your-api-key"
$env:OPEN_AI_API_KEY="your-api-key"
If you want this to be permanent, you can add it to your .bashrc
or .bash_profile
file in linux or use the following command in PowerShell.
[Environment]::SetEnvironmentVariable("OPEN_AI_API_KEY", "your-api-key", "User")
Step 3: Add the following code to your Program.cs
(Entry Point)
public static async Task Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
builder.Services.UseOpenAI(Environment.GetEnvironmentVariable("OPEN_AI_API_KEY"), "gpt-4o-mini");
IHost cereBro = builder.BuildCereBro(new CereBroConfig{ ServersFilePath = "./servers.json" });
await cereBro.RunAsync();
}
CereBro uses the Console as a chat dispatcher. You can create your own dispatcher by implementing the IChatDispatcher
interface and use builder.BuildCereBro<IChatDispatcher>(config)
to build CereBro's host.
Step 4: Run your application
dotnet run
Adding a new Model
Currently, CereBro only supports OpenAI's models. To add a new model you'll need to Implement Microsoft.Extensions.AI.IChatClient
, unless it already exists, Microsoft already has implementations for some models like OpenAI and Ollama.
Once you've done that you can create a Placeholder Type that implements Microsoft.Extensions.AI.FunctionInvokingChatClient
something like this.
Finally, you can use the UseChatClient<T>(this IServiceCollection services, IChatClient chatClient) where T : FunctionInvokingChatClient
extension method to add your model to the service collection.
⚠️ Note ⚠️
At the moment CereBro doesn't support multiple models at the same time, so you'll have to remove the UseOpenAI
method from the Program.cs
file to use another model.
CereBro.Unity
CereBro.Unity is a Unity package that allows you to use CereBro in Unity. README.
Contributing
If you'd like to contribute to the project, you can fork the repository and create a pull request. You can also create an issue if you find any bugs or have any feature requests.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0-preview.2.25163.2)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0-preview.2.25163.2)
- Microsoft.Extensions.Hosting (>= 10.0.0-preview.2.25163.2)
- ModelContextProtocol (>= 0.1.0-preview.2)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Rob1997.CereBro:
Package | Downloads |
---|---|
Rob1997.CereBro.Open-AI
Open-AI Implementation for CereBro |
|
Rob1997.CereBro.Server
CereBro's MCP Server |
|
Rob1997.CereBro.Server.Unity
Used as an intermediary MCP Server to relay data between the MCP Client and CereBro.Unity |
GitHub repositories
This package is not used by any popular GitHub repositories.