DNN API服务器

一个基于.NET C#的DNN平台模型上下文协议服务器,提供与DNN平台API交互的工具。

  • by sachatrauwaen
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 sachatrauwaen/dnn-dotnet-mcp--server

使用说明

DNN API服务器(.NET C#版本)

使用C#编写的DNN平台模型上下文协议(MCP)服务器。网。

概述

该服务器实现了模型上下文协议,以提供通过其API与DNN平台交互的工具。它是使用官方ModelContextProtocol SDK的Node.js实现的C#端口。

特性

  • 使用DNN API进行身份验证
  • 主机管理工具
  • 门户管理工具
  • 支持通过环境变量或JSON文件进行站点配置
  • 使用MCP SDK属性可轻松扩展

需求

  • .NET 7.0或更高版本
  • DNN平台实例

配置

可以使用环境变量配置服务器:

  • DNN_API_URL:DNN安装API的URL(必需)
  • DNN_USERNAME:DNN用户名(如果不使用令牌,则需要)
  • DNN_PASSWORD:DNN密码(如果不使用令牌,则需要)
  • DNN_SITES_FILE:包含站点配置的JSON文件的路径(可选)
  • DNN_SITE:站点文件中要使用的站点配置的名称(可选,默认值:“dnn18”)

站点配置文件格式

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

建立和运行

cd DnnApiServer
dotnet build
dotnet run

可用工具

主机工具

  • get_host:获取DNN主机设置
  • clear_cache:清除DNN缓存

门户工具

  • get_portal:获取门户详细信息
  • list_portals:列出所有门户

添加新工具

要添加新工具,只需向DnnTools类添加新方法:

  1. 打开 Tools/DnnTools.cs
  2. 在适当的区域中添加新方法(或创建新区域)
  3. 用以下方法装饰该方法 [McpServerTool] 和 [Description] 属性
  4. 重建项目

例如:

[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 });
}

许可证

麻省理工学院