MCP Conversation Server
一个模型上下文协议服务器实现,它为应用程序提供了一个标准化接口,通过统一的对话管理系统与 OpenRouter 的语言模型进行交互。
README
MCP 对话服务器
一个模型上下文协议 (MCP) 服务器实现,用于管理与 OpenRouter 语言模型的对话。该服务器为应用程序提供了一个标准化的接口,通过统一的对话管理系统与各种语言模型进行交互。
特性
-
MCP 协议支持
- 完全符合 MCP 协议
- 资源管理和发现
- 基于工具的交互模型
- 流式响应支持
- 错误处理和恢复
-
OpenRouter 集成
- 支持所有 OpenRouter 模型
- 实时流式响应
- 自动 Token 计数
- 模型上下文窗口管理
- 可用模型包括:
- Claude 3 Opus
- Claude 3 Sonnet
- Llama 2 70B
- 以及 OpenRouter 目录中的更多模型
-
对话管理
- 创建和管理多个对话
- 支持系统消息
- 消息历史记录跟踪
- Token 使用情况监控
- 对话过滤和搜索
-
流式支持
- 实时消息流式传输
- 分块响应处理
- Token 计数
-
文件系统持久化
- 对话状态持久化
- 可配置的存储位置
- 自动状态管理
安装
npm install mcp-conversation-server
配置
配置
MCP 对话服务器的所有配置现在都通过 YAML 提供。请使用您的设置更新 config/models.yaml 文件。例如:
# MCP 服务器配置
openRouter:
apiKey: "YOUR_OPENROUTER_API_KEY" # 替换为您的实际 OpenRouter API 密钥。
persistence:
path: "./conversations" # 用于存储对话数据的目录。
models:
# 在此处定义您的模型
'provider/model-name':
id: 'provider/model-name'
contextWindow: 123456
streaming: true
temperature: 0.7
description: '模型描述'
# 如果未指定,则使用的默认模型
defaultModel: 'provider/model-name'
服务器配置
MCP 对话服务器现在从 YAML 文件加载其所有配置。在您的应用程序中,您可以按如下方式加载配置:
const config = await loadModelsConfig(); // 从 'config/models.yaml' 加载 openRouter、persistence、models 和 defaultModel 设置
注意:不再需要环境变量,因为所有配置都通过 YAML 文件提供。
用法
基本服务器设置
import { ConversationServer } from 'mcp-conversation-server';
const server = new ConversationServer(config);
server.run().catch(console.error);
可用工具
服务器公开了几个 MCP 工具:
-
create-conversation
{ provider: 'openrouter', // Provider 始终为 'openrouter' model: string, // OpenRouter 模型 ID (例如,'anthropic/claude-3-opus-20240229') title?: string; // 可选的对话标题 } -
send-message
{ conversationId: string; // 对话 ID content: string; // 消息内容 stream?: boolean; // 启用流式响应 } -
list-conversations
{ filter?: { model?: string; // 按模型过滤 startDate?: string; // 按开始日期过滤 endDate?: string; // 按结束日期过滤 } }
资源
服务器提供对以下几个资源的访问:
-
conversation://{id}
- 访问特定对话的详细信息
- 查看消息历史记录
- 检查对话元数据
-
conversation://list
- 列出所有活动对话
- 按条件过滤对话
- 按最近活动排序
开发
构建
npm run build
运行测试
npm test
调试
服务器提供几个调试功能:
-
错误日志记录
- 所有错误都记录有堆栈跟踪
- Token 使用情况跟踪
- 速率限制监控
-
MCP Inspector
npm run inspector使用 MCP Inspector 来:
- 测试工具执行
- 查看资源内容
- 监控消息流
- 验证协议合规性
-
Provider 验证
await server.providerManager.validateProviders();验证:
- API 密钥有效性
- 模型可用性
- 速率限制状态
故障排除
常见问题和解决方案:
-
OpenRouter 连接问题
- 验证您的 API 密钥是否有效
- 检查 OpenRouter 仪表板 上的速率限制
- 确保模型 ID 正确
- 监控信用使用情况
-
消息流式传输错误
- 验证模型流式传输支持
- 检查连接稳定性
- 监控 Token 限制
- 处理超时设置
-
文件系统错误
- 检查目录权限
- 验证路径配置
- 监控磁盘空间
- 处理并发访问
贡献
- Fork 存储库
- 创建一个功能分支
- 提交您的更改
- 推送到分支
- 创建一个 Pull Request
许可证
ISC 许可证
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。