LOTUS-MCP

LOTUS-MCP

将两个人工智能集成到一个现代化的MCP中,以获得更好的性能。

blue-lotus-org

研究与数据
访问服务器

README

<div align="right"> <sub>公开 | 免费开源</sub> </div>

LOTUS-MCP

FOSS 解决方案

此处概述的 LOTUS-MCP 协议是一种令人印象深刻的模型协调和处理方法,它将 Mistral 和 Gemini 集成到一个结构化的架构中,该架构允许:

  • 模型之间的路由和回退策略。
  • 用于比较输出的共识引擎。
  • 上下文感知处理,提高交互的一致性。
  • 工具集成,使其可扩展到外部 API。
  • 速率限制和安全性,以确保生产稳定性。

Anthropic 为 Claude 开发的模型上下文协议 (MCP) 是一项突破性的开放标准,使 AI 助手能够连接到外部数据源和工具。
作为开发人员或企业,您可能希望拥有自己的协议。本指南专为您而作。

首先了解 Claude 现有的 MCP:

+-------------+     +-------------+     +-------------+
|             |     |             |     |             |
|    用户     |     |     AI      |     |   外部  |
|  界面  |<--->|   模型     |<--->|    工具    |
|             |     |(例如 Claude)|     |  & 数据     |
|             |     |             |     |             |
+-------------+     +-------------+     +-------------+
       ^                   ^                   ^
       |                   |                   |
       |                   |                   |
       v                   v                   v
+--------------------------------------------------+
|                                                  |
|           模型上下文协议                 |
|                   (MCP)                          |
|                                                  |
+--------------------------------------------------+
       ^                   ^                   ^
       |                   |                   |
       |                   |                   |
       v                   v                   v
+-------------+     +-------------+     +-------------+
|             |     |             |     |             |
| 开发 |     |  商业   |     |   内容   |
| 环境 |     |    工具    |     | 仓库|
|             |     |             |     |             |
+-------------+     +-------------+     +-------------+

声明

然后为 MCP 实现一种新的现代化结构。所以首先要考虑的是成本:

| 指标          | Mistral 目标 | Gemini 目标 |
|-----------------|----------------|---------------|
| 延迟         | <800ms         | <1200ms       |
| 准确率        | 95%            | 92%           |
| 每 1k tokens 成本  | $0.15          | $0.25         |

因此,要构建它,我们需要一个架构设计,如下所示:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│             │     │  决策   │     │             │
│   用户      ├────►│  路由器     ├────►│  Mistral    │
│  界面  │     │ (任务类型  │     │   (代码/    │
│             │◄────┤  分析)  │◄────┤   文本)     │
└─────────────┘     └─────────────┘     └─────────────┘
                        ▲   │               ▲   │
                        │   └───────┐       │   └────┐
                        ▼           ▼       ▼        ▼
                    ┌─────────┐ ┌─────────┐ ┌─────────┐
                    │ Gemini  │ │回退 │ │错误    │
                    │(多模  │ │模型    │ │处理 │
                    │ 态)  │ │         │ │系统   │
                    └─────────┘ └─────────┘ └─────────┘

这是 用户输入 → Mistral (代码/文本处理) → Gemini (多模态增强) → 最终输出,在我们的旅程的最后,我们可以构建它。所以开始吧:

开始我们的旅程

现在,一步一步地指导您构建一个统一的 模型上下文协议 (MCP) 系统,用于在一个应用程序中集成 MistralGemini


我们的 MCP 架构设计

┌──────────────┐       ┌───────────────┐       ┌──────────────┐
│              │       │               │       │              │
│  外部    │       │   统一     │       │   外部   │
│   工具      │◄─────►│  MCP 服务器   │◄─────►│   数据       │
│ (APIs, DBs)  │       │ (编排器)│       │  来源     │
└──────▲───────┘       └──────┬───┬────┘       └──────▲───────┘
       │                      │   │                   │
       │                      ▼   ▼                   │
┌──────┴───────┐       ┌───────────────┐       ┌──────┴───────┐
│              │       │               │       │              │
│   Mistral    │       │  MCP 客户端   │       │   Gemini     │
│  接口   │◄─────►│(适配器层)│◄─────►│ 接口    │
│              │       │               │       │              │
└──────────────┘       └───────────────┘       └──────────────┘

1. 协议规范

使用以下核心组件定义您的 MCP 标准:

  • 消息格式 (JSON Schema):
    {
      "request_id": "uuid",
      "model": "mistral|gemini|both",
      "content": {"text": "", "files": []},
      "context": {"session": {}, "tools": []},
      "routing_rules": {"fallback": "auto", "priority": 0-100}
    }
    
  • API 端点:
    • /mcp/process - 主要处理端点
    • /mcp/feedback - 响应优化循环
    • /mcp/context - 会话管理

2. 适配器层实现

创建特定于模型的适配器,将 MCP 协议转换为每个 AI 的 API:

Mistral 适配器:

class MistralMCPAdapter:
    def process(self, mcp_request):
        # 将 MCP 格式转换为 Mistral 的 API 格式
        mistral_prompt = f"CONTEXT: {mcp_request['context']}\nQUERY: {mcp_request['content']}"
        response = mistral.generate(mistral_prompt)
        return self._to_mcp_format(response)

    def _to_mcp_format(self, raw_response):
        return {
            "model": "mistral",
            "content": raw_response.text,
            "metadata": {
                "tokens_used": raw_response.usage,
                "confidence": raw_response.scores
            }
        }

Gemini 适配器:

class GeminiMCPAdapter:
    def process(self, mcp_request):
        # 处理多模态输入
        if mcp_request['content']['files']:
            response = gemini.generate_content(
                [mcp_request['content']['text'], *mcp_request['content']['files']]
            )
        else:
            response = gemini.generate_text(mcp_request['content']['text'])
            
        return {
            "model": "gemini",
            "content": response.text,
            "metadata": {
                "safety_ratings": response.safety_ratings,
                "citation_metadata": response.citation_metadata
            }
        }

3. 统一处理工作流程

def unified_processing(mcp_request):
    # 根据模型选择进行路由
    if mcp_request['model'] == 'both':
        mistral_result = MistralAdapter.process(mcp_request)
        gemini_result = GeminiAdapter.process(mcp_request)
        return consensus_engine(mistral_result, gemini_result)
    
    elif mcp_request['model'] == 'mistral':
        return MistralAdapter.process(mcp_request)
    
    elif mcp_request['model'] == 'gemini':
        return GeminiAdapter.process(mcp_request)
    
    else:
        raise MCPError("Invalid model selection")

4. 上下文管理系统

实现共享上下文处理:

class MCPContextManager:
    def __init__(self):
        self.session_context = {}
        self.tool_context = {
            'database': SQLConnector(),
            'apis': [SlackAPI(), GoogleWorkspace()],
            'filesystem': S3Storage()
        }

    def update_context(self, session_id, new_context):
        # 维护 3 级上下文堆栈
        self.session_context[session_id] = {
            'immediate': new_context,
            'historical': self._rollup_context(session_id),
            'persistent': self._load_persistent_context(session_id)
        }

5. 工具集成层

创建遵循 MCP 标准的可重用连接器:

class MCPToolConnector:
    def __init__(self, tool_type):
        self.tool = self._initialize_tool(tool_type)
        
    def execute(self, action, params):
        try:
            result = self.tool.execute(action, params)
            return self._format_mcp_response(result)
        except ToolError as e:
            return self._format_error(e)

    def _format_mcp_response(self, result):
        return {
            "tool_response": result.data,
            "metadata": {
                "execution_time": result.timing,
                "confidence": result.accuracy_score
            }
        }

6. 安全实施

身份验证流程:

1. 客户端请求 ──► MCP 网关 ──► JWT 验证
2. 令牌验证 ──► 模型访问控制列表
3. 请求日志记录 ──► 加密审计跟踪
4. 响应清理 ──► 内容过滤

速率限制设置:

# 对两个模型使用令牌桶算法
mcp_rate_limiter = RateLimiter(
    limits={
        'mistral': TokenBucket(rate=100/60),  # 100 请求/分钟
        'gemini': TokenBucket(rate=50/60),
        'combined': TokenBucket(rate=75/60)
    }
)

7. 部署策略

推荐堆栈:

services:
  mcp_gateway:
    image: nginx-plus
    config:
      rate_limiting: enabled
      
  core_service:
    image: python:3.11
    components:
      - model_adapter_layer
      - context_manager
      - tool_connectors
      
  monitoring:
    stack: prometheus + grafana
    metrics:
      - model_performance
      - context_hit_rate
      - tool_usage

8. 测试框架

实施 3 级验证:

  1. 单元测试: 单个适配器和连接器
  2. 集成测试: 完整的 MCP 请求流程
  3. 混沌测试: 模型故障模拟

示例测试用例:

def test_cross_model_processing():
    request = {
        "model": "both",
        "content": "Explain quantum computing in simple terms",
        "context": {"user_level": "expert"}
    }
    
    response = unified_processing(request)
    
    assert 'mistral' in response['sources']
    assert 'gemini' in response['sources']
    assert validate_consensus(response['content'])

这种方法的关键优势

  1. 统一接口: 适用于两个模型的单一协议
  2. 上下文共享: 在不同的 AI 系统之间维护会话状态
  3. 工具可重用性: 通用连接器可与 Mistral 和 Gemini 一起使用
  4. 成本优化: 基于模型功能的智能路由
  5. 故障转移支持: 模型之间的自动回退

首先实现适配器层,然后在添加工具集成之前构建上下文管理系统。使用渐进式推出和影子模式(运行两个模型但仅显示一个输出)来比较性能,然后再进行全面部署。

💐 恭喜,您拥有了自己的类 MCP 框架! 🍷


免责声明: 这些代码可能最终不会产生实际结果,这只是一个变通方法。了解路径架构并为 AI 世界的这一运动奠定基础。

许可证: MIT , Apache 2 — 所以请随意使用 & 编辑 & 分发。

致谢: Blue Lotus

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python