FnMCP。纽带
F#中的MCP(模型上下文协议)服务器实现,它将上下文库作为资源公开,并提供工具和投影。
概述
此MCP服务器提供对包含有关应用程序和框架的文档的上下文库的访问。它实现了MCP协议版本2024-11-05,并通过stdio上的JSON-RPC进行通信。
特性
- 资源:将上下文库中的markdown文件作为MCP资源公开
- 协议:标准MCP JSON-RPC通过标准输入
- 内容提供者:基于文件系统的文档内容提供商
当前能力
resources/list-列出所有可用的文档资源resources/read-按URI读取特定资源内容tools/list-用于未来工具实施的占位符prompts/list-占位符用于未来的快速实现
构建服务器
dotnet build src/FnMCP.Nexus/FnMCP.Nexus.fsproj运行服务器
服务器接受上下文库路径的可选命令行参数:
dotnet run --project src/FnMCP.Nexus [context-library-path]如果没有提供路径,则默认为 context-library 在项目根中。
MCP客户端配置
克劳德桌面/Junie
服务器已在中配置 ~/.config/Claude/claude_desktop_config.json (Linux):
{
"mcpServers": {
"FnMCP.Nexus": {
"command": "dotnet",
"args": [
"run",
"--project",
"/home/linux/RiderProjects/FnMCP.IvanTheGeek/src/FnMCP.Nexus"
],
"env": {}
}
}
}备注:更新配置后,重新启动Claude Desktop以使更改生效。
其他MCP客户端
对于其他MCP兼容客户端,请将其配置为运行:
- 命令:
dotnet - 参数:
run --project - 沟通:stdio(JSON-RPC)
上下文库结构
上下文库的组织方式如下:
context-library/
├── apps/
│ └── laundrylog/
│ └── overview.md
└── framework/
└── overview.md每个markdown文件都成为可通过其URI路径访问的MCP资源。
发展
项目结构
src/FnMCP.Nexus/-主要源代码
- McpServer.fs -核心MCP服务器实现 - Program.fs -入口点和JSON-RPC消息循环 - Types.fs -MCP协议类型 - ContentProvider.fs -内容提供者界面 - FileSystemProvider.fs -基于文件系统的提供者 - Resources.fs -资源管理 - Tools.fs -工具注册表和处理程序 - Prompts.fs -提示注册表和处理程序
需求
- .NET 9.0 SDK
- F#编译器
协议细节
服务器实现MCP协议版本 2024-11-05 使用JSON-RPC 2.0:
- 输入:通过stdin发出JSON-RPC请求
- 输出:通过stdout的JSON-RPC响应
- 日志记录:通过stderr记录诊断日志
状态
✅ 生产部署处于活动状态
服务器部署在VPS上,可通过HTTP/SSE传输访问:
- 端点: http://66.179.208.238:18080/sse
- 运输:具有承载令牌身份验证的SSE(服务器发送事件)
- 状态自2025年至2019年开始运营
可以通过MCP协议访问上下文库中的资源和工具。
远程访问
HTTP/SSE传输(推荐)
服务器支持通过HTTP和SSE传输进行远程访问:
终点:
- 健康:
http://66.179.208.238:18080/ - SSE活动:
http://66.179.208.238:18080/sse/events - Websocket:
ws://66.179.208.238:18080/ws
身份验证: 所有端点(健康检查除外)都需要承载令牌身份验证。生成API密钥:
docker exec -i nexus-mcp ./FnMCP.Nexus /data/event-store generate-api-key \
--scope full_access \
--description "Your description"Claude桌面配置:
{
"mcpServers": {
"nexus-vps": {
"url": "http://66.179.208.238:18080/sse",
"transport": {
"type": "sse",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
}当地标准运输(发展)
对于本地开发,您还可以在stdio模式下运行服务器:
./bin/local/FnMCP.Nexus /path/to/event-store