对话管理服务器

MCP对话服务器是一个标准化的接口服务,用于通过OpenRouter统一管理多种语言模型的对话交互,支持实时流式响应、对话状态持久化和多模型切换。

  • by bsmi021
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 bsmi021/mcp-conversation-server

使用说明

MCP对话服务器

用于管理与OpenRouter语言模型对话的模型上下文协议(MCP)服务器实现。该服务器为应用程序提供了一个标准化的接口,通过统一的对话管理系统与各种语言模型进行交互。

特性

  • MCP协议支持

    • 完全符合MCP协议
    • 资源管理和发现
    • 基于工具的交互模型
    • 流媒体响应支持
    • 错误处理和恢复
  • OpenRouter集成

    • 支持所有OpenRouter型号
    • 实时流媒体响应
    • 自动令牌计数
    • 模型上下文窗口管理
    • 可用型号包括:
      • 颜色3选项
      • 克劳德三首十四行诗
      • 火焰270b
      • 以及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工具:

  1. 创建对话

    {
        provider: 'openrouter',    // Provider is always 'openrouter'
        model: string,             // OpenRouter model ID (e.g., 'anthropic/claude-3-opus-20240229')
        title?: string;            // Optional conversation title
    }
    
  2. 发送消息

    {
        conversationId: string;  // Conversation ID
        content: string;         // Message content
        stream?: boolean;        // Enable streaming responses
    }
    
  3. 列出对话

    {
        filter?: {
            model?: string;      // Filter by model
            startDate?: string;  // Filter by start date
            endDate?: string;    // Filter by end date
        }
    }
    

资源

服务器提供对多种资源的访问:

  1. 对话://{id}

    • 访问特定对话详细信息
    • 查看消息历史记录
    • 检查对话元数据
  2. 骗局versation://list

    • 列出所有活动对话
    • 按条件筛选对话
    • 按最近的活动排序

发展

建筑

npm run build

运行测试

npm test

调试

服务器提供了几个调试功能:

  1. 错误记录

    • 所有错误都记录在堆栈跟踪中
    • 令牌使用跟踪
    • 速率限制监控
  2. MCP检查员

    npm run inspector
    

    使用MCP检查器:

    • 测试工具执行
    • 查看资源内容
    • 监控消息流
    • 验证协议合规性
  3. 提供商验证

    await server.providerManager.validateProviders();
    

    验证:

    • API密钥有效性
    • 型号可用性
    • 费率限制状态

故障排除

常见问题和解决方案:

  1. OpenRouter连接问题

    • 验证您的API密钥是否有效
    • 检查速率限制 OpenRouter的仪表板
    • 确保型号ID正确
    • 监控信贷使用情况
  2. 消息流错误

    • 验证模型流媒体支持
    • 检查连接稳定性
    • 监控令牌限制
    • 处理超时设置
  3. 文件系统错误

    • 检查目录权限
    • 验证路径配置
    • 监控磁盘空间
    • 处理并发访问

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

ISC许可证