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类添加新方法:
- 打开
Tools/DnnTools.cs - 在适当的区域中添加新方法(或创建新区域)
- 用以下方法装饰该方法
[McpServerTool]和[Description]属性 - 重建项目
例如:
[McpServerTool]
[Description("Get page details")]
public async Task GetPage(int pageId, int portalId)
{
var data = await ExecuteCommandAsync(portalId, $"get-page --id {pageId}");
return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true });
}许可证
麻省理工学院
