     
chat-anything
A terminal-based, highly modular chatbot leveraging MCP to connect to any API.
Explore the docs »
Report Bug · Request Feature
______________________________________________________________________
目录
______________________________________________________________________
关于项目
聊什么都行 是一个模块化和灵活的终端聊天机器人框架。其核心思想是提供一种使用以下方式连接到任意API(或本地模块)的方法 主控程序 (模型上下文协议)。
该项目旨在使交换或添加新的LLM后端(如OpenAI、自定义LLM、第三方API)和第三方MCP服务器变得容易,而无需每次重写整个项目。
动机
- 为聊天机器人实验构建一个干净、可扩展的架构
- 将“前端”(终端接口)与“后端”(LLM、API服务)解耦
- 支持MCP级别的自定义配置、链接、路由和逻辑
构建于
使用的一些主要工具、框架和语言:
- Types/JavaScript
- Node.js
- MCP(作为模块化抽象层)
- dotenv(用于环境变量)
- JSON配置文件
______________________________________________________________________
入门指南
先决条件
您需要:
- Git
- Node.js(22.16或更高版本)
- npm(10.9.2或更高版本)
安装
- 克隆存储库:
git clone https://github.com/LucyJuza/chat-anything.git- 切换到项目源目录:
cd chat-anything/src/chat-anything- 根据您的操作系统安装项目依赖项:
# macOS / Linux
chmod +x install.sh
./install.sh
# Windows
.\install.bat配置
在运行之前,您应该设置环境变量和配置文件。
.env 文件
创建一个 .env 根目录中的文件(如果不存在),并包含以下密钥:
OPENAI_KEY=your_openai_api_key
LLM=the_model_you_want_to_useMCPConfig.json src/聊天生活/MCPconfig.json
此文件定义了聊天机器人可以连接的MCP服务器。示例结构:
{
"servers": [
{
"name": "MCP Server 1 Name",
"URL": "URL of the distant MCP server",
"headers": {
"Authorization": "Bearer yourtoken"
}
},
{
"name": "MCP Server 2 Name",
"command": "command to be executed",
"args": ["arg1", "arg2"],
"env": {
"KEY1": "Value or Placeholder",
"KEY2": "Value or Placeholder"
}
}
]
}- 如果
URL它使用HTTP传输。 - 否则,它将在本地执行命令(stdin/stdout),传递args和env变量。
您可以覆盖 env 命令行中的变量;env中的变量被系统环境变量覆盖。
系统提示模板
您可以通过文件自定义系统提示 src/聊天任何东西/SYSTEM_PROMPT_BASE.txt.
用法
用一个简单的命令在任何地方启动程序:
chat-anything运行后,您首先选择要连接的服务器,然后键入消息,聊天机器人会在需要时使用MCP工具进行应答。
特性
- 模块化架构:独立的接口和后端
- 支持多个MCP服务器
- 能够使用简单的环境变量在不同的LLM后端之间进行链接或切换
- 通过JSON+.env轻松配置和定制
- 可定制的系统提示,以满足您的特定需求
- 简单的终端界面(轻量级)
路线图
以下是未来改进的一些想法:
- 添加图形用户界面(网络或桌面)
- (UX)支持逐个令牌输出流式令牌
- 使用MCP支持的oAuth标准在MCP客户端中添加身份验证
- 更好的错误处理、回退策略
如果你愿意,你可以在存储库中看到未解决的问题和功能请求。
贡献
欢迎投稿!贡献:
- 分叉项目
- 创建功能分支(
git checkout -b feature/YourFeature) - 提交您的更改(
git commit -m 'Add some feature') - 推到您的分支(
git push origin feature/YourFeature) - 打开拉取请求
请确保您的贡献包括测试(如适用)和需要时的文档更新。
许可证
该项目已获得麻省理工学院许可。
联系
露西·朱赞/露西·朱萨:https://github.com/LucyJuza
