DotnetFastMCP MCP 服务器框架
使用说明(Markdown 格式)
-
项目简介 DotnetFastMCP 是一个面向 Model Context Protocol 的企业级 MCP 服务器框架,使用 ASP.NET Core 构建,提供标准化的 JSON-RPC 2.0 通信、工具与资源注册、Prompts 定义和渲染、以及面向 LLM 的多种集成能力(如 OpenTelemetry、认证、LLM 提供商等)。
-
主要功能点
- 组件化声明:通过 [McpTool]、[McpResource]、[McpPrompt] 等属性对工具、资源、Prompts 进行自动发现和注册。
- JSON-RPC 2.0 协议:完整的请求/响应处理、错误码和通知支持。
- 资源、工具、Prompts 的统一发现与调用:支持本地工具、动态工具(如 OpenAPI 代理)以及 OpenAPI 转 MCP 工具。
- 安全与认证:内置 OAuth 代理、Bearer Token 验证、策略与 MFA 支持,且可扩展多种身份提供商。
- 原生客户端库与传输分离:提供 C# 客户端库,传输支持 Stdio、SSE、HTTP/WebSocket 等。
- LLM 集成:内置多家提供商(OpenAI、Anthropic、Gemini、Cohere、HuggingFace、Deepseek、Ollama、DeepSeek 等)的对接能力,具备流式输出与分步模型调用。
- Observability:OpenTelemetry 集成,自动化 metrics 与 tracing,零开销选项。
- 服务组合与中间件:中间件管线、SSE 控制、背景任务队列、存储抽象、上下文注入等。
-
安装步骤
- 克隆并构建:git clone <仓库地址>,进入项目根目录执行 dotnet build
- 运行示例服务器(基础示例,无认证):
- 进入示例目录并启动:dotnet run(或在需要标准输出模式时使用 dotnet run -- --stdio)
- 运行客户端进行测试时,可参考仓库中的集成测试与示例客户端代码。
-
服务器配置(给 MCP 客户端的配置示例,JSON 格式,含 server name、command、args 字段) { "serverName": "My MCP Server", "command": "dotnet", "args": ["run", "--project", "examples/BasicServer", "--", "--stdio"] } 说明:
- serverName: MCP 服务器在客户端显示的名称,建议与实际部署的一致。
- command: 启动服务器的命令(此处为 .NET 项目启动命令)。
- args: 启动命令的参数,包含项目路径和传输模式(示例为 --stdio,即使用标准输入/输出传输,与 MCP 客户端的 Stdio 客户端传输配合)。
- 备注:若使用其他传输模式(如 SSE/WebSocket),请在实际连接时按客户端要求提供相应启动参数。
-
基本使用方法
- 启动服务器:按照上述启动方式启动 MCP 服务器(示例为基本服务器 BasicServer),确保服务在默认端口可用。
- 注册组件:在服务器代码中通过被 [McpTool]/[McpResource]/[McpPrompt] 修饰的静态方法,框架会自动发现并暴露工具、资源、Prompts。
- LLM 调用与资源读取:客户端通过 JSON-RPC 调用工具、资源或 prompts,MCP 服务器会进行参数绑定、鉴权、调用执行并返回结果。
- 观察与诊断:可启用 OpenTelemetry、日志记录及其他中间件,以实现对请求/响应的跟踪与分析。
-
备注
- 该仓库包含服务器核心实现、中间件、认证代理、注册与调用逻辑,以及多种传输、观测和安全特性的实现,符合 MCP 服务器的核心要素。