课程目录搜索服务

一个基于.NET 9的解决方案,提供可搜索的培训课程目录,支持HTTP API和MCP服务器两种访问方式。

  • by thibaultceulemans
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 Thibaultce/training-mcp

使用说明

培训-MCP(或“培训-多证书计划”,具体翻译取决于MCP在此上下文中的具体含义)

概述

这个存储库提供了一个.NET 9解决方案,该方案通过两种方式暴露一个可搜索的培训课程目录:一种是基于FastEndpoints的HTTP API,另一种是代理运行时可以调用的模型上下文协议(MCP)服务器。内存中的目录随附有真实的种子数据,因此您可以无需外部依赖即可原型化搜索流程。

项目布局

  • src/Training.Api – 使用FastEndpoints的ASP.NET Core主机,集成Serilog日志记录、Swagger以及用于探索的Scalar UI /courses/search.
  • src/Training.McpServer – MCP 标准IO服务器布线 searchCourseCatalog 工具提交至共享目录服务。
  • src/Training.Shared – 领域模型加上 InMemoryCourseCatalog 两个可执行文件都使用了同一个提供者。
  • docs/mcp – 关于MCP(多点控制单元)集成的声明和实施说明。

先决条件

  • .NET SDK 9.0 预览版或更高版本dotnet --version 应当报告 9.0.x)。
  • 可选:一个与MCP兼容的客户端(例如,Claude Desktop测试版)用于端到端的代理测试。

快速入门

# Restore dependencies
dotnet restore

# Run the HTTP API with Swagger & Scalar explorers
dotnet run --project src/Training.Api

# Launch the MCP stdio server (writes protocol to stdout, logs on stderr)
dotnet run --project src/Training.McpServer

导航至 http://localhost:5000/scalar/v1 以交互方式查询目录,或加载 docs/mcp/manifest.json 在您的MCP客户端中使用该工具进行练习。

开发工作流程

  • 保持跨领域的模型更新 Training.Shared 因此,API和MCP服务器保持同步。
  • 使用 dotnet format Training.sln 在决定应用分析器和代码风格规则之前。
  • 在下面添加未来的自动化测试 tests/ 目录并运行 dotnet test 本地。

做出贡献

遵循详细的贡献者指南 AGENTS.md请提供明确的提交主题,在拉取请求中记录行为变更,并在更改请求/响应契约时包含示例API或MCP调用。

MCP规范设置

要通过Codex CLI使用MCP工具,请添加以下服务器条目: ~/.codex/config.toml (更新项目路径以匹配您的本地检出——替换 <repo-path> 带有从(某处)的绝对路径 pwd):

[mcp_servers.training]
command = "dotnet"
args = ["run", "--project", "<repo-path>/src/Training.McpServer"]

编辑配置文件后,重启 Codex 以便新服务器注册。