MCP 对话服务器
一个模型上下文协议 (MCP) 服务器实现,用于管理与 OpenRouter 语言模型的对话。该服务器为应用程序提供了一个标准化接口,使其能够通过统一的对话管理系统与各种语言模型进行交互。
特征
- MCP 协议支持
- 完全符合 MCP 协议
- 资源管理和发现
- 基于工具的交互模型
- 流式响应支持
- 错误处理和恢复
- OpenRouter 集成
- 支持所有 OpenRouter 型号
- 实时流式响应
- 自动计数令牌
- 模型上下文窗口管理
- 可用的型号包括:
- 克劳德3号作品
- 克劳德3首十四行诗
- 骆驼 2 70B
- OpenRouter 目录中还有更多内容
- 对话管理
- 创建和管理多个对话
- 支持系统消息
- 消息历史追踪
- 代币使用情况监控
- 对话过滤和搜索
- 流媒体支持
- 文件系统持久性
安装
npm install mcp-conversation-server
配置
配置
MCP 对话服务器的所有配置现在均通过 YAML 提供。请使用您的设置更新config/models.yaml
文件。例如:
# MCP Server Configuration
openRouter:
apiKey: "YOUR_OPENROUTER_API_KEY" # Replace with your actual OpenRouter API key.
persistence:
path: "./conversations" # Directory for storing conversation data.
models:
# Define your models here
'provider/model-name':
id: 'provider/model-name'
contextWindow: 123456
streaming: true
temperature: 0.7
description: 'Model description'
# Default model to use if none specified
defaultModel: 'provider/model-name'
服务器配置
MCP 对话服务器现在从 YAML 文件加载其所有配置。在您的应用程序中,您可以按如下方式加载配置:
const config = await loadModelsConfig(); // Loads openRouter, persistence, models, and defaultModel settings from 'config/models.yaml'
注意:不再需要环境变量,因为所有配置都是通过 YAML 文件提供的。
用法
基本服务器设置
import { ConversationServer } from 'mcp-conversation-server';
const server = new ConversationServer(config);
server.run().catch(console.error);
可用工具
该服务器公开了几个 MCP 工具:
- 创建对话
{
provider: 'openrouter', // Provider is always 'openrouter'
model: string, // OpenRouter model ID (e.g., 'anthropic/claude-3-opus-20240229')
title?: string; // Optional conversation title
}
- 发送消息
{
conversationId: string; // Conversation ID
content: string; // Message content
stream?: boolean; // Enable streaming responses
}
- 列表对话
{
filter?: {
model?: string; // Filter by model
startDate?: string; // Filter by start date
endDate?: string; // Filter by end date
}
}
资源
该服务器提供对多种资源的访问:
- 对话://{id}
- 访问特定对话详细信息
- 查看消息历史记录
- 检查对话元数据
- 对话://列表
发展
建筑
运行测试
调试
该服务器提供了多种调试功能:
- 错误日志
- 所有错误都通过堆栈跟踪记录
- 代币使用情况追踪
- 速率限制监控
- MCP 检查器使用 MCP 检查器可以:
- 提供商验证
await server.providerManager.validateProviders();
验证:
故障排除
常见问题及解决方案:
- OpenRouter连接问题
- 消息流错误
- 验证模型流支持
- 检查连接稳定性
- 监控令牌限制
- 处理超时设置
- 文件系统错误
贡献
- 分叉存储库
- 创建功能分支
- 提交你的更改
- 推送到分支
- 创建拉取请求
执照
ISC 许可证