内容
# McpGleam: Gleam 编程语言文档 MCP 服务器
`McpGleam` 是一个遵循模型上下文协议(MCP)的服务器,使用 C# (.NET 10.0) 编写,用于从 [The Gleam Tour](https://tour.gleam.run/) 获取并解析 Gleam 编程语言的文档。它允许大型语言模型(LLM)和 MCP 客户端查询可用的文档类别并检索最新的文档内容。
---
## 功能
服务器公开了以下 MCP 工具:
1. **`list_available_docs`**
- **描述**:返回一个 JSON 数组,包含所有可用的文档项、其类别以及获取额外信息的路径/URL。
- **用法**:使用此工具发现 Gleam 概念、语法和库在文档中是否被记录。
2. **`get_item_documentation`**
- **描述**:通过 URL/路径片段(例如 `basics/hello-world`)获取单个文档项的最新文档详细信息。
- **参数**:
- `documentationUrl`(字符串):可以检索文档的 URL 路径片段。
3. **`get_multiple_item_documentation`**
- **描述**:获取一个或多个 URL 的最新文档详细信息。适用于批量请求。
- **参数**:
- `documentationUrl`(字符串数组):URL 路径片段数组。
---
## 项目结构
- **[Program.cs](file:///c:/Users/rg102529/source/repos/McpGleam/McpGleam/Program.cs)**: 主要入口点,设置依赖注入、HTTP 客户端、注册 MCP 工具并启动 Stdio 服务器传输。
- **[Tools/Documentation.cs](file:///c:/Users/rg102529/source/repos/McpGleam/McpGleam/Tools/Documentation.cs)**: 包含 MCP 工具的实现和描述。
- **[Utils/ParserUtil.cs](file:///c:/Users/rg102529/source/repos/McpGleam/McpGleam/Utils/ParserUtil.cs)**: 辅助类,使用正则表达式解析目录并清理 HTML 片段为原始文本文档内容。
- **[Models/DocumentationItem.cs](file:///c:/Users/rg102529/source/repos/McpGleam/McpGleam/Models/DocumentationItem.cs)**: 持有解析项的结构化数据(类别、名称、路径)。
- **[McpGleam.Tests/](file:///c:/Users/rg102529/source/repos/McpGleam/McpGleam.Tests/)**: 验证解析器行为的单元测试。
---
## 先决条件
- [.NET 10.0 SDK](https://dotnet.microsoft.com/download) 或更高版本。
---
## 构建和运行
### 构建项目
要编译项目,请运行:
```bash
dotnet build
```
### 运行测试
要运行单元测试:
```bash
dotnet test
```
### 运行服务器
服务器通过标准输入/输出(Stdio)传输运行:
```bash
dotnet run --project McpGleam/McpGleam.csproj
```
---
## MCP 客户端的配置
要将 `McpGleam` 与 MCP 客户端(例如 Claude Desktop 或 Cursor)集成,请在您的 `claude_desktop_config.json` 或等效的客户端配置文件中添加以下服务器配置:
### 选项 1:通过 `dotnet run` 运行(开发)
```json
{
"mcpServers": {
"gleam-docs": {
"command": "dotnet",
"args": [
"run",
"--project",
"c:/Users/rg102529/source/repos/McpGleam/McpGleam/McpGleam.csproj"
]
}
}
}
```
### 选项 2:运行已发布的执行文件(生产)
首先,发布应用程序:
```bash
dotnet publish McpGleam/McpGleam.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
```
然后配置客户端运行执行文件:
```json
{
"mcpServers": {
"gleam-docs": {
"command": "c:/Users/rg102529/source/repos/McpGleam/McpGleam/bin/Release/net10.0/win-x64/publish/McpGleam.exe"
}
}
}
```
---
## 许可证
本项目根据根目录中包含的许可证文件条款许可。