概述MCP服务器
一个C#模型上下文协议(MCP)服务器,它与Outline API集成,以帮助Cursor使用Outline Wiki中的文档。此服务器是 只读的 专为文档消费而设计。
特性
- 大纲集成:通过REST API连接到大纲
- MCP协议支持:实现与Cursor无缝集成的模型上下文协议
- 只读操作:仅支持读取和搜索文档(无写入操作)
- 基于Web的服务器:在本地主机3001上作为HTTP服务器运行
- 文档访问:检索大纲文档并将其转换为markdown格式
- 搜索功能:使用大纲搜索API搜索大纲文档
- 文件重点:用于搜索和访问文档的专用工具
先决条件
- .NET 8.0 SDK或更高版本
- 具有API访问权限的大纲实例
- 用于身份验证的API令牌
- 游标IDE(用于MCP集成)
设置
1.克隆和构建
git clone
cd OutlineMCP
dotnet build2.环境配置
设置以下环境变量:
# Windows
set OUTLINE_BASE_URL=https://your-outline-instance.com
set OUTLINE_API_TOKEN=your-api-token
# Linux/Mac
export OUTLINE_BASE_URL=https://your-outline-instance.com
export OUTLINE_API_TOKEN=your-api-token备注:对于本地开发,您可以复制 appsettings.json.template 向 appsettings.json 并根据需要修改设置。这 appsettings.json 出于安全原因,git会忽略该文件。
3.获取大纲API令牌
- 转到Outline实例
- 使用您的帐户登录
- 导航到“设置”→ API令牌
- 点击“创建API令牌”
- 为其命名(例如,“MCP服务器”)
- 复制生成的令牌
运行MCP服务器
备注:此MCP服务器在localhost:3001上作为HTTP服务器运行。Cursor通过HTTP连接到它,而不是直接执行服务器。
选项1:开发模式
# Start the server in development mode
dotnet run服务器将启动并监听MCP请求 http://localhost:3001/mcp.
选项2:生产模式
# Build for production
dotnet publish -c Release
# Run the published application
cd bin/Release/net8.0/publish
./OutlineMCP选项3:作为Windows服务
# Install as a Windows service (requires admin privileges)
sc create "OutlineMCP" binPath="C:\path\to\OutlineMCP.exe"
sc start "OutlineMCP"使用MCP服务器配置游标
1.安装Cursor IDE
从下载并安装Cursor https://cursor.sh
2.设置环境变量
在启动MCP服务器之前设置环境变量:
# Windows
set OUTLINE_BASE_URL=https://your-outline-instance.com
set OUTLINE_API_TOKEN=your-api-token
# Linux/Mac
export OUTLINE_BASE_URL=https://your-outline-instance.com
export OUTLINE_API_TOKEN=your-api-token备注:这些环境变量必须在启动MCP服务器时设置,而不是在游标配置中设置。
3.在游标中配置MCP服务器
重要:此MCP服务器使用 HTTP传输 并在localhost:3001上作为web服务器运行。游标通过HTTP连接到它。
- 创建MCP配置文件:
- 项目特定:创建 .cursor/mcp.json 在您的项目目录中 - 全球:创建 ~/.cursor/mcp.json 在您的主目录中
- 添加MCP服务器配置:
{
"mcpServers": {
"OutlineWiki": {
"url": "http://localhost:3001"
}
}
}备注:在配置Cursor之前,请确保MCP服务器在localhost:3001上运行。
4.启动HTTP服务器
MCP服务器作为HTTP服务器运行。在配置Cursor之前,您需要启动它:
- 启动HTTP服务器:
dotnet run服务器将启动并监听MCP请求 http://localhost:3001.
5.重新启动游标
配置MCP服务器后,重新启动Cursor以使更改生效。
6.验证连接
- 确保MCP服务器在localhost:3001上运行
- 打开Cursor,检查MCP服务器是否出现在可用工具中
- 您可以通过询问有关文档的问题来测试连接
在游标中使用MCP服务器
1.验证连接
配置后,您应该在Cursor中看到可用的MCP服务器。您可以通过以下方式进行验证:
- 打开命令面板(
Ctrl+Shift+P) - 键入“MCP”查看可用的MCP命令
- 服务器应显示为“大纲mcp”
2.查询示例
现在,您可以向Cursor询问有关文档的问题:
"Search for installation guides"
"Find configuration documentation"
"Look up troubleshooting steps"
"Search the wiki for best practices"3.光标中的可用工具
MCP服务器提供以下工具:
| 工具 | 说明 | 用法 |
|---|---|---|
search_documents | 在所有文档中进行常规搜索 | “搜索安装指南” |
searchWiki | 在知识库中搜索特定术语 | “在wiki中搜索故障排除” |
search_specific_app | 特定于应用程序的搜索(可选接受collectionId) | “搜索应用程序文档” |
get_document | 按ID获取特定文档 | “获取ID为abc123的文档” |
list_collections | 列出可用集合 | “显示所有文档集合” |
list_documents | 列出收藏中的文档 | “列出收藏中文档” |
MCP协议支持
此服务器实现以下MCP方法:
initialize:处理服务器初始化tools/list:列出可用工具(只读操作)tools/call:执行只读工具resources/list:列出可用资源resources/read:读取资源内容
可用工具
| 工具 | 说明 | 参数 |
|---|---|---|
search_documents | 在知识库中搜索应用程序文档和指南 | query, collectionId (可选), limit (可选) |
searchWiki | 在知识库中搜索所有应用程序文档中的特定术语 | term, limit (可选) |
search_specific_app | 专门搜索应用程序文档和指南 | query, limit (可选) |
get_document | 按ID获取特定的申请文件 | id |
list_collections | 列出可用的应用程序文档集合 | limit (可选) |
list_documents | 列出特定应用程序集合中的文档 | collectionId, limit (可选) |
可用资源
| 资源 | 描述 |
|---|---|
outline://collections | 所有可访问的应用程序文档集合列表 |
outline://recent-documents | 最近更新的应用程序文档和指南 |
outline://starred-documents | 标记为星号的重要应用程序文档 |
配置
服务器使用环境变量进行配置:
| 变量 | 描述 | 必填 |
|---|---|---|
OUTLINE_BASE_URL | 您的Outline实例URL | 是 |
OUTLINE_API_TOKEN | 用于身份验证的API令牌 | 是 |
错误处理
服务器包括全面的错误处理:
- 身份验证错误:API令牌无效
- 网络错误:大纲API的连接问题
- 解析错误:JSON-RPC请求无效
- 资源错误:找不到文档或拒绝访问
发展
项目结构
OutlineMCP/
├── Services/
│ └── OutlineService.cs # Outline API integration (read-only)
├── Models/
│ ├── McpRequest.cs # MCP request model
│ ├── McpResponse.cs # MCP response model
│ ├── McpError.cs # MCP error model
│ ├── ToolCallParams.cs # Tool call parameters model
│ └── ResourceReadParams.cs # Resource read parameters model
├── Program.cs # Web application entry point
├── appsettings.json.template # Configuration template
└── OutlineMCP.csproj # Project file添加新功能
- 新工具:添加到switch语句中
HandleToolsCall - 新资源:添加到switch语句中
HandleResourcesRead - API终点:扩展
OutlineService使用新的只读方法
安全
此服务器旨在 只读的 并且不支持对Outline实例的任何写入操作。这确保了:
- 无法创建、更新或删除任何文档
- 不能修改任何集合
- 服务器在生产环境中使用是安全的
故障排除
常见问题
- 认证失败
- 验证您的API令牌是否正确 - 确保令牌具有必要的读取权限 - 检查大纲URL是否正确
- 服务器未启动
- 检查端口3001是否可用 - 验证环境变量是否设置正确 - 确保。NET 8.0 SDK已安装
- 网络错误
- 检查您的互联网连接 - 验证大纲URL是否正确 - 确保您的防火墙允许HTTPS连接
- 游标MCP集成问题
MCP服务器未出现在光标中:
- 验证MCP服务器是否在localhost:3001上运行 - 检查HTTP服务器是否可在以下位置访问 http://localhost:3001/mcp - 验证游标配置使用了正确的HTTP端点 - 配置更改后重新启动Cursor - 检查Cursor的开发人员控制台是否有错误
游标中的身份验证错误:
- 确保在MCP服务器环境变量中正确设置了API令牌 - 验证令牌是否未过期 - 请检查启动服务器时是否正确配置了环境变量
服务器连接超时:
- 验证服务器是否在localhost:3001上运行 - 检查端口3001是否未被防火墙阻止 - 确保HTTP端点 http://localhost:3001/mcp 可访问 - 使用curl或浏览器手动测试端点
- 工具执行错误
- 检查服务器日志以获取详细的错误消息 - 验证大纲API是否可访问 - 确保搜索查询的格式正确
调试MCP服务器
- 启用详细日志记录:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Information"
}
}
}- 手动测试服务器:
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'- 检查游标日志:
- 打开命令选项板(Ctrl+Shift+P) - 键入“开发人员:切换开发人员工具” - 检查Console选项卡是否存在与MCP相关的错误
日志记录
服务器使用结构化日志记录。在中设置日志级别 appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
}
}
}贡献
- 分叉存储库
- 创建要素分支
- 进行更改(仅限只读操作)
- 如果适用,添加测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
支持
对于问题和疑问:
- 检查故障排除部分
- 查看日志以了解错误详细信息
- 在存储库上打开问题
