Mcp Server Memo

Mcp Server Memo

🚀 MCP 服务器

MCP 服务器是一款基于模型上下文协议(Model Context Protocol, MCP)的实用工具,主要用于管理会话数据。它具备丰富的功能,例如会话历史记录管理、内容追加以及元数据修改等,能有效提升会话数据的管理效率。

🚀 快速开始

MCP 服务器的使用十分便捷,按以下步骤操作即可快速开启服务。首先安装依赖,然后进行必要的配置,最后运行启动命令。

✨ 主要特性

  • 提供会话历史记录功能,方便查看会话的所有历史版本。
  • 支持向现有会话追加内容,生成新版本,便于持续更新会话信息。
  • 允许修改会话的元数据,如标题、标签等。

📦 安装指南

安装依赖

运行以下命令安装所需依赖:

npm install @modelcontextprotocol/sdk client dist/index.js

📚 详细文档

配置选项

  • SUMMARIES_DIR:此配置项用于指定存储会话文件的目录,默认值为 "summaries"。
  • 其他详细配置项请参考 src/config.ts

运行命令

使用以下命令启动 MCP 服务器:

npm start

MCP 工具说明

工具列表

  1. appendSummary
    • 描述:向现有会话追加内容,并生成新版本。
    • 参数
      • sessionId:会话的唯一标识符。
      • content:需要追加到会话中的内容。
      • 可选参数title(会话标题)、tags(会话标签)。
  2. getSessionHistory
    • 描述:获取指定会话的所有历史记录。
    • 参数
      • sessionId:会话的唯一标识符。
  3. 其他工具的详细信息请参考 src/tools.ts

💻 使用示例

基础用法

以下是客户端使用 MCP 服务器的基础代码示例:

import { v4 as uuidv4 } from 'uuid';
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

// 初始化客户端
const transport = new StdioClientTransport({
command: 'node',
args: ['dist/index.js'],
cwd: process.cwd()
});

const client = new Client({
name: 'example-client',
version: '1.0.0'
});

await client.connect(transport);

// 创建新会话 ID
function createNewSession() {
return uuidv4();
}

// 追加内容到现有会话
async function appendToSession(sessionId, newContent) {
return client.callTool({
name: "appendSummary",
arguments: {
sessionId,
content: newContent,
title: "Example Session",
tags: ["example", "demo"]
}
});
}

// 获取会话历史记录
async function getSessionHistory(sessionId) {
const response = await client.callTool({
name: "getSessionHistory",
arguments: { sessionId }
});

const result = JSON.parse(response.content[0].text);
if (result.success) {
return result.history;
}

throw new Error(result.error || "Failed to get session history");
}

// 示例用法
const sessionId = createNewSession();

// 添加初始内容
await appendToSession(sessionId, "Initial conversation data");

// 后续追加内容
await appendToSession(sessionId, "Second part of the conversation");
await appendToSession(sessionId, "Final part of the conversation");

// 获取历史记录
const history = await getSessionHistory(sessionId);
console.log(`Session ${sessionId} has ${history.length} versions`);

🔧 技术细节

项目结构

mcp-server-memo/
├── dist/                 # 编译后的 JavaScript 输出
├── src/                  # TypeScript 源代码
│   ├── config.ts         # 服务器配置
│   ├── index.ts          # 入口文件
│   ├── storage.ts        # 文件存储工具
│   ├── tools.ts          # MCP 工具实现
│   └── types.ts          # TypeScript 类型定义
├── summaries/            # 存储会话数据的目录
│   └── .gitkeep          # 确保目录被 Git 包括
├── package.json          # 项目元数据和依赖项
├── tsconfig.json         # TypeScript 配置文件
└── README.md             # 项目说明文档

📄 许可证

本项目采用 麻省理工学院许可协议


如需更多信息,请参考 MCP 协议文档

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-20 14:21

相似服务问题