MCP 服务器是一款基于模型上下文协议(Model Context Protocol, MCP)的实用工具,主要用于管理会话数据。它具备丰富的功能,例如会话历史记录管理、内容追加以及元数据修改等,能有效提升会话数据的管理效率。
MCP 服务器的使用十分便捷,按以下步骤操作即可快速开启服务。首先安装依赖,然后进行必要的配置,最后运行启动命令。
运行以下命令安装所需依赖:
npm install @modelcontextprotocol/sdk client dist/index.js
SUMMARIES_DIR
:此配置项用于指定存储会话文件的目录,默认值为 "summaries"。src/config.ts
。使用以下命令启动 MCP 服务器:
npm start
sessionId
:会话的唯一标识符。content
:需要追加到会话中的内容。title
(会话标题)、tags
(会话标签)。sessionId
:会话的唯一标识符。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 协议文档。