项目简介

Onlysaid 旨在提供一个易于使用的集成平台,让用户及其团队仅通过自然语言即可完成各项任务。其核心是一个代理助手栈,其中包含了多个基于 Model Context Protocol (MCP) 构建的独立后端服务。

主要功能点

  • 在统一的聊天室中,使用自然语言与团队成员和代理助手共同完成任务。
  • 提供即插即用的代理到代理 (A2A) 和 MCP 代理助手栈,支持高度配置和扩展。
  • 具备智能的计划和执行系统,完全支持自然语言指令。
  • 提供工作台界面,用于文件管理、工作流管理和技能学习。
  • 代理助手通过完成任务不断积累知识。
  • 支持多种语言。
  • 包含多种预置的 MCP 服务器,提供不同的功能(如文件读写、网络访问、绘图、系统监控等)。

安装步骤

本项目是一个包含前端、后端API、MCP客户端和多个MCP服务器的复杂系统,需要多个组件协同工作。

  1. 获取代码: 克隆 GitHub 仓库。
  2. 环境准备: 需要安装 Node.js、Python、PostgreSQL 数据库、Redis 和 Qdrant 矢量数据库。
  3. 配置环境变量: 配置数据库连接、API密钥(如 OpenAI, Tavily, Polygon, Zabbix 等)以及 MCP 服务器脚本路径等必要的环境变量。
  4. 安装依赖: 分别安装前端(使用 npm 或 yarn)和后端服务的依赖。
  5. 构建运行: 通常需要构建前端应用,然后启动后端API服务、MCP客户端服务以及每个独立的 MCP 服务器进程。具体启动方式请参考仓库文档或脚本。

服务器配置

本项目包含多个独立的 MCP 服务器,例如:'graph_plotter', 'fileio', 'onlysaid_admin', 'pyaudit', 'stock_agent', 'web_surfer', 'msft_office_professional', 'zabbix'。

MCP客户端需要通过 JSON 格式的配置文件来连接这些服务器。配置应包含一个顶层键(例如 'mcpServers'),其值为一个对象。该对象的键是 MCP 服务器的逻辑名称(例如 'graph_plotter'),值是该服务器的连接参数。

连接参数对象通常包含以下信息:

  • 'name': MCP 服务器在协议中声明的唯一名称(例如,在 'graph_plotter.py' 中声明为 '"graph_plotter"')。
  • 'command': 启动该服务器进程的命令(对于 Python 实现的服务器,通常是 'python')。
  • 'args': 传递给启动命令的参数列表,其中必须包含该服务器的脚本文件路径(例如,对于 'graph_plotter' 服务器,参数列表可能包含 'mcp/servers/graph_plotter.py')。
  • 'description': 对服务器功能的简要描述(客户端可能会使用此信息)。

MCP客户端会根据此配置启动相应的进程,并通过 Stdio 协议与每个服务器进程建立连接并进行通信。

例如,配置中可能包含类似以下描述的服务器条目:

  • 服务器名称: 'graph_plotter'
    • 启动命令: 'python'
    • 参数: '["path/to/your/repo/mcp/servers/graph_plotter.py"]'
  • 服务器名称: 'fileio'
    • 启动命令: 'python'
    • 参数: '["path/to/your/repo/mcp/servers/fileio.py"]'
  • 服务器名称: 'zabbix'
    • 启动命令: 'python'
    • 参数: '["path/to/your/repo/mcp/servers/zabbix.py"]'
  • ... (其他服务器配置类似)

请注意,实际的 'path/to/your/repo/' 需要替换为你的仓库在文件系统中的实际路径。

基本使用方法

作为 Onlysaid 平台的一部分,这些 MCP 服务器由 MCP 客户端('mcp/client' 模块)管理和调用。用户主要通过 Onlysaid 的前端界面与系统交互。

  1. 用户在聊天室中输入自然语言指令或请求代理完成任务。
  2. MCP 客户端(作为核心协调者)接收请求。
  3. MCP 客户端根据用户请求和内部逻辑,决定需要调用哪些 MCP 服务器的哪些工具。
  4. MCP 客户端通过 MCP 协议向对应的 MCP 服务器发送 JSON-RPC 请求,调用其暴露的工具函数(例如,调用 'fileio' 服务器的 'write_text_to_file' 工具)。
  5. MCP 服务器执行工具功能,并将结果通过 MCP 协议返回给 MCP 客户端。
  6. MCP 客户端处理工具执行结果,可能更新任务状态、生成回复或调用其他工具,最终将信息反馈给用户界面。

用户通常无需直接与 MCP 服务器进程交互,所有交互都通过 Onlysaid 平台统一管理。开发者可以通过添加新的 Python 或 Node.js 脚本到 'mcp/servers' 目录,并使用 'FastMCP' 或类似的库实现 MCP 协议,从而轻松扩展平台的功能。

信息

分类

开发者工具