DNN API Server (.NET C# Version)

by sachatrauwaen

290 downloads Not rated yet MIT license

About

# DNN API Server (.NET C# Version) A Model Context Protocol (MCP) server for DNN Platform written in C# using .NET. ## Overview This server implements the Model Context Protocol to provide tools for interacting with DNN Platform through its APIs. It's a C# port of the Node.js implementation using the official…

Details

License
MIT license

Explore

- Authentication with DNN API
- Host management tools
- Portal management tools
- Support for site configuration via environment variables or JSON file
- Easily extensible using MCP SDK attributes

- .NET 7.0 or higher
- DNN Platform instance

{
  "sites": {
    "dnn18": {
      "url": "https://your-dnn-site.com",
      "token": "your-jwt-token",
      "expires": "2025-12-31"
    }
  }
}
cd DnnApiServer
dotnet build
dotnet run

get_host

Get DNN host settings

clear_cache

Clear DNN cache

get_portal

Get portal details

list_portals

List all portals

- get_host: Get DNN host settings
- clear_cache: Clear DNN cache

- get_portal: Get portal details
- list_portals: List all portals

To add new tools, simply add new methods to the DnnTools class:

1. Open Tools/DnnTools.cs
2. Add a new method in the appropriate region (or create a new region)
3. Decorate the method with the [McpServerTool] and [Description] attributes
4. Rebuild the project

For example:

[McpServerTool]
[Description("Get page details")]
public async Task<string> GetPage(int pageId, int portalId)
{
    var data = await ExecuteCommandAsync(portalId, $"get-page --id {pageId}");
    return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true });
}

A Model Context Protocol (MCP) server for DNN Platform written in C# using .NET.

Overview

This server implements the Model Context Protocol to provide tools for interacting with DNN Platform through its APIs. It's a C# port of the Node.js implementation using the official ModelContextProtocol SDK.

Features

- Authentication with DNN API
- Host management tools
- Portal management tools
- Support for site configuration via environment variables or JSON file
- Easily extensible using MCP SDK attributes

Requirements

- .NET 7.0 or higher
- DNN Platform instance

Configuration

The server can be configured using environment variables:

- DNN_API_URL: URL to your DNN installation API (required)
- DNN_USERNAME: DNN username (required if not using a token)
- DNN_PASSWORD: DNN password (required if not using a token)
- DNN_SITES_FILE: Path to a JSON file containing site configurations (optional)
- DNN_SITE: Name of the site configuration to use from the sites file (optional, default: "dnn18")

Site Configuration File Format

{
  "sites": {
    "dnn18": {
      "url": "https://your-dnn-site.com",
      "token": "your-jwt-token",
      "expires": "2025-12-31"
    }
  }
}

Building and Running

cd DnnApiServer
dotnet build
dotnet run

Available Tools

Host Tools

- get_host: Get DNN host settings - clear_cache: Clear DNN cache

Portal Tools

- get_portal: Get portal details - list_portals: List all portals

Adding New Tools

To add new tools, simply add new methods to the DnnTools class:

1. Open Tools/DnnTools.cs
2. Add a new method in the appropriate region (or create a new region)
3. Decorate the method with the [McpServerTool] and [Description] attributes
4. Rebuild the project

For example:

[McpServerTool]
[Description("Get page details")]
public async Task<string> GetPage(int pageId, int portalId)
{
    var data = await ExecuteCommandAsync(portalId, $"get-page --id {pageId}");
    return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true });
}

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.