LLM对话服务器

一个提供LLM聊天功能的模型上下文协议(MCP)服务器,支持Azure OpenAI和Google Gemini提供商,具有强大的对话历史管理功能。

  • by UtkarshSinghShorthillsAI
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 utkarshsinghshorthillsai/llm_mcp_server

使用说明

LLM MCP服务器

一种模型上下文协议(MCP)服务器,提供LLM聊天功能作为具有强大对话历史管理的工具。此服务器支持Azure OpenAI和Google Gemini提供商。

特性

  • 对话历史管理:在多个交流中保持强大的对话环境
  • 多个LLM提供商:支持Azure OpenAI和Google Gemini
  • 会话管理:创建、管理和清除对话会话
  • 工具集成:与MCP客户端无缝集成
  • 错误处理:全面的错误处理和记录
  • 供应商测试:为LLM提供商提供内置连接测试

安装

  1. 克隆此存储库:
git clone <repository-url>
cd LLM_MCP_SERVER
  1. 安装依赖项:
npm install
  1. 设置环境变量:
cp .env.example .env
  1. 编辑 .env 使用API密钥和配置文件

  2. 构建项目:

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协议处理与业务逻辑分离

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

麻省理工学院

支持

有关问题和支持,请查看文档或在存储库中创建问题。