共享内存服务器

MCP共享内存服务器是一个基于Windows系统的进程间通信工具,提供线程安全的共享内存管理和MCP协议兼容性。

  • by bivex
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 bivex/MCP-Shared-Memory

使用说明

MCP共享内存服务器用户指南

前言部分

文件标题: MCP共享内存服务器用户指南
文件版本: 1.0.0
文件日期: 2025年12月
文档状态: 发布
产品名称: MCP共享内存服务器
产品版本: 1.0.0
目标受众: 软件开发人员、系统管理员、MCP客户端用户
目的: 本指南提供了在Windows系统上通过共享内存安装、配置和使用MCP共享内存服务器进行进程间通信的说明。

版权声明:
©2025 MCP共享内存服务器项目。保留所有权利。
本文件按“原样”提供,不提供任何形式的保证。

文件惯例:

  • 粗体 表示用户界面元素或强调。
  • Monospace text 表示代码、命令或文件名。
  • ⚠️ 警告 表示潜在的数据丢失或安全风险。
  • ℹ️ 备注 提供了更多信息。
  • 📋 程序 表示分步说明。

目录

前言部分

  • 文档标题、版本和状态。1.
  • 版权声明。1.
  • 文件惯例。1.

1.导言。2.

  • 1.1目的和范围。2.
  • 1.2目标受众。2.
  • 1.3产品概述。3.
  • 1.4相关文件。3.

2.作战概念。4.

  • 2.1系统架构。4.
  • 2.2操作模式。7.
  • 2.3数据流。7.

3.程序。8.

  • 3.1系统要求。8.
  • 3.2安装程序。8.
  • 3.3配置程序。.......................... 10
  • 3.4启动程序。................................ 10
  • 3.5正常操作程序。...................... 11
    • 3.5.1基本内存操作。...................... 11
    • 3.5.2类型化数据操作。........................ 12
  • 3.6停机程序。............................... 13

4.卸载信息。..................... 14

  • 4.1卸载程序。......................... 14
  • 4.2卸载后注意事项。............... 14

5.故障排除。................................... 15

  • 5.1常见问题及解决方法。...................... 15
  • 5.2错误消息和含义。...................... 16
  • 5.3诊断程序。............................ 16

6.术语表。........................................... 17

7.索引。.............................................. 19

附录。............................................ 23

  • 附录A:MCP工具参考。....................... 23
  • 附录B:示例应用程序。....................... 24

1.导言

1.1目的和范围

本用户指南介绍了MCP共享内存服务器,这是一个实现模型上下文协议(MCP)的软件组件,用于管理Windows系统上的共享内存操作。本指南涵盖了服务器的安装、配置、操作和故障排除。

范围包括:

  • 系统要求和先决条件
  • 安装和设置程序
  • 基本和高级使用场景
  • 维护与故障排除
  • 卸载程序

1.2目标受众

本指南适用于:

  • 软件开发人员 需要将共享内存功能集成到其应用程序中的用户
  • 系统管理员 负责部署和维护MCP服务器
  • 最终用户 MCP兼容客户端应用程序(例如,Claude Desktop、VS Code)

1.3产品概述

MCP共享内存服务器是模型上下文协议(MCP)服务器的高级实现,为Windows应用程序提供全面的共享内存管理功能。该服务器使用官方的MCP C#SDK构建,通过内存映射文件实现安全高效的进程间通信。

主要特点:

  • 线程安全共享内存操作
  • 类型化数据处理(系统状态、消息、度量)
  • MCP协议合规性
  • JSON-RPC 2.0通信
  • 全面的错误处理和记录

1.4相关文件


2.作战概念

2.1系统架构

MCP共享内存服务器使用模型上下文协议在客户端-服务器架构内运行。该系统由三个主要部分组成:

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│ SharedMemoryApp │───▶│  Global Shared   │◀───│ McpSharedServer │
│   (Writer)      │    │    Memory        │    │   (MCP Server)  │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌──────────────┐
                       │ MCP Clients  │
                       │ (Claude, VS  │
                       │  Code, etc.) │
                       └──────────────┘

共享内存应用程序: A.NET控制台应用程序,将数据写入共享内存。
McpSharedServer: 通过MCP工具公开共享内存操作的MCP服务器。
全局共享内存: 用于进程间通信的Windows内存映射文件。
MCP客户端: 可以调用服务器工具的兼容应用程序。

2.2操作模式

服务器支持两种主要操作模式:

  1. 独立模式: 服务器独立运行,管理共享内存操作。
  2. 集成模式: 服务器与MCP兼容的客户端应用程序集成,以增强功能。

2.3数据流

  1. SharedMemory应用程序将数据写入Windows共享内存。
  2. McpSharedServer监视和管理共享内存。
  3. MCP客户端连接到服务器并调用工具读取/写入数据。
  4. 所有操作都是线程安全的,并具有适当的同步。

3.程序

3.1系统要求

硬件要求:

  • Windows操作系统(建议使用Windows 10/11)
  • 最低4 GB RAM
  • 100 MB可用磁盘空间

软件要求:

  • .NET 8.0 SDK或更高版本
  • 管理员权限(用于全局共享内存访问)
  • MCP兼容客户端应用程序

3.2安装程序

📋 步骤:安装MCP共享内存服务器

  1. 下载源代码:

    git clone <repository-url>
    cd MCP-Shared-Memory
    
  2. 安装所需的软件包:

    dotnet add package ModelContextProtocol --prerelease
    dotnet add package Microsoft.Extensions.Hosting
    
  3. 构建解决方案:

    dotnet build
    
  4. 验证安装:

    dotnet run --project SharedMemoryApp/SharedMemoryApp.csproj
    

    预期结果:应用程序启动并提供交互式菜单。

3.3配置程序

服务器使用默认配置。对于高级场景:

  1. 审查 SharedMemoryTools.cs 内存大小限制。
  2. 修改 MaxMemorySize 如果需要,则为常量(默认值:1MB)。
  3. 确保全局共享内存名称匹配: Global\MCP_SharedMemory.

3.4启动程序

📋 步骤:启动MCP共享内存服务器

  1. 启动共享内存写入程序(测试时可选):

.net运行--项目SharedMemory应用程序/SharedMemory应用文件.csproj


2. **Start the MCP server:**
   ```bash
   dotnet run --project McpSharedServer/McpSharedServer.csproj
  1. 验证服务器是否正在运行:
    • 服务器应显示启动消息
    • 不应出现错误消息

3.5正常操作程序

3.5.1基本内存操作

读取数据:

var result = await client.CallToolAsync("get_shared_memory");

写入数据:

await client.CallToolAsync("write_shared_memory", new()
{
    ["json_data"] = "{\"status\": \"active\"}"
});

3.5.2类型化数据操作

创建系统状态:

await client.CallToolAsync("create_system_status", new()
{
    ["status"] = "healthy",
    ["cpu_usage"] = 45,
    ["memory_usage"] = 2048576000L
});

发送消息:

await client.CallToolAsync("create_message", new()
{
    ["content"] = "Hello from MCP client!",
    ["sender"] = "MCP_Client_1"
});

3.6停机程序

📋 步骤:关闭服务器

  1. 停止MCP客户端 连接到服务器。

  2. 终止MCP服务器进程:

    • 按 Ctrl+C 在运行服务器的终端中
    • 或关闭终端窗口
  3. 停止共享内存应用程序 (如果正在运行):

    • 按 Ctrl+C 或关闭应用程序

4.卸载信息

4.1卸载程序

📋 步骤:卸载MCP共享内存服务器

  1. 停止所有正在运行的进程:

    • 终止任何正在运行的实例 McpSharedServer
    • 终止任何正在运行的实例 SharedMemoryApp
  2. 删除共享内存资源:

    • 进程退出时,Windows会自动清理内存映射文件
    • 无需手动清理
  3. 删除项目文件:

    # Navigate to project directory
    cd MCP-Shared-Memory
    
    # Remove build artifacts
    dotnet clean
    
    # Remove entire directory (optional)
    cd ..
    rm -rf MCP-Shared-Memory
    
  4. 删除NuGet包 (如果全局安装):

    dotnet nuget locals all --clear
    

4.2卸载后注意事项

  • 共享内存资源由Windows自动释放
  • 未修改任何系统注册表项
  • 未安装Windows服务
  • 项目可以安全删除,没有残留文件

5.故障排除

5.1常见问题及解决方法

问题:启动应用程序时“拒绝访问”
解决方案: 以管理员身份运行应用程序。全局共享内存需要提升权限。

问题:“找不到共享内存”错误
解决方案: 确保SharedMemory App已至少运行一次以创建共享内存段。

问题:服务器无法启动
解决方案: 核实。NET 8.0 SDK已安装,所有依赖项都可用。

问题:超出内存大小限制
解决方案: 减小数据大小或修改 MaxMemorySize 源代码中的常量。

5.2错误信息和含义

  • "Invalid data size: X" -读取的数据超出预期限制
  • "Memory manager is in read-only mode" -在管理器为只读时尝试写入
  • "Operation failed after all retries" -重试尝试后出现网络或系统错误

5.3诊断程序

📋 步骤:收集诊断信息

  1. 检查服务器日志:

    • 查看控制台输出中的错误消息
    • 查找启动确认消息
  2. 验证共享内存状态:

    var info = await client.CallToolAsync("get_shared_memory_info");
    
  3. 测试基本连接:

    var tools = await client.ListToolsAsync();
    

6.术语表

MCP(模型上下文协议): 一种开放协议,规范了应用程序如何为大型语言模型提供上下文。

共享内存: 一种可由多个进程访问的内存段,实现进程间通信。

内存映射文件: 一种将文件或内存区域映射到进程地址空间的机制。

JSON-RPC 2.0: 一种用JSON编码的无状态、轻量级远程过程调用协议。

全局共享内存: 在Windows上可在系统范围内访问的共享内存段(需要管理员权限)。

螺纹安全: 允许其在多线程环境中正确运行的代码属性。


7.指标

A.

  • 访问控制:第3.5节,附录A
  • 管理员权限:第3.1节、第5.1节
  • 附录:第8节
  • 架构:第2.1节
  • 受众,目标:第1.2节

B

  • 基本内存操作:附录A第3.5.1节

C

  • 客户集成:第3.5节
  • 常见问题:第5.1节
  • 作战概念:第2节
  • 配置:第3.3节
  • 公约、文件:前沿问题
  • 版权所有:Front Matter
  • CPU使用率:第3.5.2节

D

  • 数据流:第2.3节
  • 数据类型,类型:第3.5.2节,附录A
  • 诊断程序:第5.3节
  • 文件惯例:前线事务

E

  • 错误消息:第5.2节
  • 错误处理:第5节

F

  • 功能,关键:第1.3节
  • 前体:前体

G

  • 术语表:第6节
  • 全局共享内存:第2.1节,第6节

H

  • 硬件要求:第3.1节

一、

  • 索引:第7节
  • 安装:第3.2节
  • 集成模式:第2.2节
  • 引言:第1节

J

  • JSON-RPC 2.0:第2.3节,第6节

L

  • 许可证:附录B(隐含)

M

  • MCP客户:第2.1节
  • MCP协议:第1.3节、第6节
  • MCP工具:第3.5节,附录A
  • 内存配置:第3.3节
  • 内存大小限制:附录A第3.5节
  • 内存映射文件:第6节
  • 绩效指标:附录A第3.5.2节

N

  • 正常运行:第3.5节

哦

  • 操作模式:第2.2节
  • 概述,产品:第1.3节

P

  • 绩效指标:第3.5.2节
  • 先决条件:第3.1节
  • 程序:第3节
  • 产品概述:第1.3节
  • 目的和范围:第1.1节

R

  • 相关文件:第1.4节
  • 要求、系统:第3.1节

S

  • 示例应用程序:附录B
  • 范围:第1.1节
  • 共享内存:第2.3节,第6节
  • 停机程序:第3.6节
  • 软件要求:第3.1节
  • 独立模式:第2.2节
  • 启动程序:第3.4节
  • 状态、系统:第3.5.2节,附录A
  • 系统管理员:第1.2节
  • 系统架构:第2.1节
  • 系统要求:第3.1节

T

  • 目录:目录
  • 目标受众:第1.2节
  • 螺纹安全:第1.3节、第6节
  • 工具,MCP:第3.5节,附录A
  • 故障排除:第5节
  • 类型化数据操作:附录A第3.5.2节

U

  • 卸载:第4节
  • 使用场景:第1.1节

五、

  • 版本、文件:前件
  • 版本,产品:Front Matter

附录

附录A:MCP工具参考

基本内存操作:

  • get_shared_memory -从共享内存读取JSON数据
  • write_shared_memory -将JSON数据写入共享内存
  • clear_shared_memory -清除共享内存中的所有数据
  • get_shared_memory_info -返回内存状态信息

类型化数据操作:

  • create_system_status -创建系统状态数据
  • create_message -创建消息数据
  • create_metrics -创建性能指标数据
  • write_typed_data / read_typed_data -类型化数据操作

附录B:示例应用程序

这 samples/McpSharedMemoryClient/ 该目录包含一个显示JSON-RPC协议模式的演示应用程序。

运行示例:

dotnet run --project samples/McpSharedMemoryClient/McpSharedMemoryClient.csproj

文档结束