MCP_Modularity 项目 README
- other
About
What is MCP_Modularity?
MCP_Modularity 是一个用于与多个大语言模型(LLM)进行交互的客户端项目,支持 OpenAI、OpenRouter、DeepSeek、Siliconflow、Ollama、Claude 等多种 LLM 服务,提供统一的接口处理用户查询和工具调用。它适合需要在不同 LLM 之间灵活切换并调用预定义工具的开发者或应用场景。
How to use MCP_Modularity?
安装 Python 3.x 及依赖(requests、asyncio、mcp 等),在 start_client.py 中配置 MCP 服务器 URL、LLM API 地址、密钥和模型名称,然后运行 python start_client.py 启动客户端,在命令行中输入查询语句,输入 exit 退出。
Key features of MCP_Modularity
- 支持 OpenAI、DeepSeek、Ollama 等多种大语言模型。
- 允许模型调用预定义工具解决用户问题。
- 流式响应提供实时交互体验。
- 可通过配置文件或代码设置基本 URL、API 密钥、模型名称等。
Use cases of MCP_Modularity
- 在命令行中与多个 LLM 对话,并调用工具完成复杂任务。
- 测试不同 LLM 对同一工具调用的支持情况。
- 构建多模型兼容的 AI 助手原型。
FAQ from MCP_Modularity
MCP_Modularity 支持哪些 LLM 模型?
支持 OpenAI 兼容系列(OpenAI、OpenRouter、DeepSeek、Siliconflow、Ollama、Claude 等)以及本地部署的 Ollama。
如何配置 LLM 的 API 密钥和 URL?
在 start_client.py 的 config 字典中设置 llm_api_url、llm_api_key 和 llm_model 即可。
是否所有模型都支持工具调用?
不是,某些模型可能不支持工具调用,客户端会在日志中输出相应错误信息。
MCP_Modularity 的启动方式是什么?
直接运行 python start_client.py,启动后可在命令行输入查询。
项目是否开源?如何反馈问题?
项目在 GitHub 上开源,可通过提交 issue 或 pull request 反馈问题或贡献代码。
Details
- Author
- kirintea
- GitHub stars
- 1
- Category
- other
- Repository
- kirintea/mcp_modularity
MCP_Modularity 项目 README
项目概述
MCP_Modularity 是一个用于与多个大语言模型(LLM)进行交互的客户端项目。该项目支持多种 LLM 服务,包括 OpenAI、OpenRouter、DeepSeek、Siliconflow、Ollama、Claude 等,提供了统一的接口来处理用户查询和工具调用。功能特性
- 多模型支持:支持多种大语言模型,如 OpenAI、OpenRouter、DeepSeek 等。 - 工具调用:允许模型调用预定义的工具来解决用户的问题。 - 流式响应:支持流式响应,提供实时交互体验。 - 配置管理:可以通过配置文件或代码设置模型的基本 URL、API 密钥、模型名称等参数。目录结构
MCP_Modularity/
├── client/
│ ├── __init__.py
│ ├── base.py
│ ├── openai.py
│ ├── deepseek.py
│ ├── siliconflow.py
│ ├── ollama.py
│ ├── claude.py
│ └── ...
├── server/
│ ├── tools/
│ │ ├── __init__.py
│ │ ├── common.py
│ │ ├── common_tools.py
│ │ └── modifier_tools.py
├── test/
│ └── test_llm_api.py
├── __init__.py
├── start_client.py
└── logger.py
安装依赖
确保你已经安装了 Python 3.x,然后使用以下命令安装项目依赖:pip install -r requirements.txt
由于没有提供 requirements.txt 文件,你需要根据代码中的 import 语句手动安装依赖,主要依赖包括:
- requests
- asyncio
- dataclasses
- json
- re
- queue
- threading
- contextlib
- mcp(需要确保该库已正确安装)
配置信息
在start_client.py 文件中,你可以配置客户端连接参数:
config = {
"mcp_url": "http://localhost:45677/sse", # MCP服务器的URL
"llm_api_url": LLM_QUESTION_URL_CONFIG, # LLM的API URL
"llm_api_key": API_KEY, # LLM的API密钥
"llm_model": MODEL_NAME, # LLM的模型名称
"llm_stream": True # 是否启用流式传输
}
启动客户端
运行以下命令启动客户端:python start_client.py
启动后,你可以在命令行中输入查询语句,输入 exit 退出程序。
代码说明
客户端类
-MCPClientBase:所有客户端类的基类,提供了基本的客户端功能,如连接服务器、处理查询、调用工具等。
- MCPClientOpenAI:与 OpenAI 兼容的客户端类,继承自 MCPClientBase。
- MCPClientDeepSeek、MCPClientSiliconflow、MCPClientLocalOllama、MCPClientClaude、MCPClientOpenRouter:分别是与 DeepSeek、Siliconflow、Ollama、Claude、OpenRouter 对应的客户端类,继承自 MCPClientOpenAI。
工具包
-ModifierTools:修改器工具包,继承自 ToolsPackageBase。
测试代码
-test_llm_api.py:包含一个简单的测试函数 chat_completions,用于测试 LLM 的聊天完成功能。