使用说明
LLM MCP服务器
一种模型上下文协议(MCP)服务器,提供LLM聊天功能作为具有强大对话历史管理的工具。此服务器支持Azure OpenAI和Google Gemini提供商。
特性
- 对话历史管理:在多个交流中保持强大的对话环境
- 多个LLM提供商:支持Azure OpenAI和Google Gemini
- 会话管理:创建、管理和清除对话会话
- 工具集成:与MCP客户端无缝集成
- 错误处理:全面的错误处理和记录
- 供应商测试:为LLM提供商提供内置连接测试
安装
- 克隆此存储库:
git clone <repository-url>
cd LLM_MCP_SERVER
- 安装依赖项:
npm install
- 设置环境变量:
cp .env.example .env
-
编辑
.env使用API密钥和配置文件 -
构建项目:
npm run build
配置
创建一个 .env 根目录中的文件,包含以下变量:
Azure OpenAI配置
AZURE_OPENAI_API_KEY=your_azure_openai_api_key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4
Gemini配置
GEMINI_API_KEY=your_gemini_api_key
服务器配置
DEFAULT_LLM_PROVIDER=azure-openai # or 'gemini'
MAX_CONVERSATION_HISTORY=20 # Maximum messages to keep in history
用法
启动服务器
发展:
npm run dev
生产:
npm start
MCP工具
服务器提供以下工具:
1. chat
与具有对话历史支持的LLM聊天。
参数:
message(必填):要发送给LLM的消息sessionId(可选):会话ID用于维护对话历史记录provider(可选):要使用的LLM提供者(“zure-openai”或“gemini”)systemPrompt(可选):系统提示设置对话上下文
例子:
{
"message": "Hello, how are you?",
"sessionId": "my-session",
"provider": "azure-openai",
"systemPrompt": "You are a helpful assistant."
}
2. clear_session
清除对话会话及其历史记录。
参数:
sessionId(必填):要清除的会话ID
3. list_sessions
列出所有活动的对话会话。
参数: 无
4. test_provider
测试与特定LLM提供商的连接。
参数:
provider(必填):LLM提供者进行测试
建筑
src/
├── index.ts # Main MCP server entry point
├── types.ts # TypeScript type definitions
├── config.ts # Configuration management
├── conversation-manager.ts # Conversation history management
├── llm-service.ts # Main LLM service orchestrator
└── providers/
├── azure-openai-provider.ts # Azure OpenAI implementation
└── gemini-provider.ts # Google Gemini implementation
关键组件
- LLMMC服务器:处理协议通信的主MCP服务器类
- LLMS服务:协调LLM提供者和对话管理
- 会话管理器:管理对话会话和历史记录
- 提供商:单个LLM提供者实现
对话历史管理
服务器通过以下功能维护可靠的对话历史记录:
- 基于会话:每个对话都由会话ID隔离
- 自动微调:对话被修剪以保持性能
- 系统消息保存:在修剪过程中保留系统消息
- 时间戳跟踪:所有消息都包含时间戳
- 内存管理:旧对话可以自动清理
错误处理
服务器包括全面的错误处理:
- 特定于提供商的错误消息
- 连接测试能力
- 优美的倒退
- 详细日志记录
发展
脚本
npm run build:构建TypeScript项目npm run dev:在开发模式下运行,并自动重新加载npm start:启动生产服务器npm run clean:清理构建工件
项目结构
该项目遵循模块化架构,关注点明确分离:
- 配置管理集中
- 每个LLM提供者都是隔离的
- 会话管理与提供者无关
- MCP协议处理与业务逻辑分离
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
麻省理工学院
支持
有关问题和支持,请查看文档或在存储库中创建问题。