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