项目文档服务器

一个基于Model Context Protocol(MCP)的服务器,通过标准协议提供项目文档和资源访问,支持静态内容、动态文件访问、项目统计和进度报告操作。

  • by wullemsb
  • C#
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 wullemsb/ProjectDocsServer

使用说明

# ProjectDocs服务器

一种模型上下文协议(MCP)服务器,通过标准化协议公开项目文档和资源。此服务器演示如何使用创建MCP服务器。NET 9和C#,提供各种类型的资源,包括静态内容、动态文件访问、项目统计和进度报告操作。

什么是MCP?

模型上下文协议(MCP)是一个开放协议,它规范了应用程序如何向大型语言模型(LLM)提供上下文。此项目实现了一个MCP服务器,该服务器公开了MCP客户端可以使用的与项目相关的资源。

特性

此MCP服务器公开以下资源:

  • project://readme -返回项目README内容
  • project://config -以JSON格式返回项目配置
  • project://file/{path} -返回指定路径下的文件内容(有安全限制)
  • project://logs/{date} -返回特定日期的应用程序日志(yyyy-MM-dd格式)
  • project://files/list -返回项目中所有文件的列表
  • project://stats -返回项目统计信息(文件计数、大小、时间戳)
  • project://analyze -通过进度报告对项目进行深入分析
  • project://diagram -返回项目架构图(PNG图像)

技术栈

  • .NET 9.0 -目标框架
  • C#13.0 -程序设计语言
  • 模型上下文协议 (v0.4.1-preview.1)-核心MCP协议实现
  • 模型上下文协议。AspNetCore (v0.4.1-preview.1)-ASP。NET核心集成
  • 微软。扩展。托管 -主机构建器和依赖注入

项目结构

ProjectDocsServer/
├── Program.cs              # Entry point and MCP server configuration
├── ProjectResource.cs      # Resource implementations
├── ProjectDocsServer.csproj # Project file
└── README.md              # This file

建设项目

dotnet build

运行服务器

dotnet run

服务器使用STDIO传输运行,这意味着它通过标准输入/输出进行通信。所有日志记录都指向stderr,以避免干扰MCP协议通信。

使用模型上下文检查器进行测试

这 模型上下文检查器 是一个用于测试和调试MCP服务器的开发工具。以下是测试此服务器的方法:

安装

全局安装模型上下文检查器:

npm install -g @modelcontextprotocol/inspector

测试服务器

  1. 启动检查器:
npx @modelcontextprotocol/inspector dotnet run
  1. 配置服务器连接:

在Inspector UI中,添加服务器配置:

{
  "command": "dotnet",
  "args": ["run", "--project", "path/to/ProjectDocsServer/ProjectDocsServer.csproj"]
}

或者,如果您已经构建了项目:

{
  "command": "dotnet",
  "args": ["path/to/ProjectDocsServer/bin/Debug/net9.0/ProjectDocsServer.dll"]
}
  1. 连接到服务器:

在检查器界面中单击“连接”。您应该看到服务器初始化和列出的可用资源。

测试资源

连接后,您可以测试每个资源:

测试静态资源

  • 自述文件:请求 project://readme 获取项目文档
  • 配置:请求 project://config 获取配置JSON
  • 统计:请求 project://stats 获取项目统计数据

测试动态资源

  • 文件访问:请求 project://file/Program.cs 读取Program.cs文件
  • 日志:请求 project://logs/2024-01-15 获取2024年1月15日的日志
  • 文件列表:请求 project://files/list 查看所有项目文件