使用说明
项目简介
本项目是 Tiny Smart Workers (TSW) 项目的一部分,提供了一个基于 Model Context Protocol (MCP) 的服务器实现,专注于知识库 (Knowledge Base) 资源的托管和访问。通过此服务器,LLM 客户端可以方便地查询和获取知识库中的条目,从而为 LLM 应用提供结构化的上下文信息。
主要功能点
- 资源托管与访问: 通过 MCP 协议提供对知识库资源的标准化访问接口。
- 知识库条目检索: 允许客户端通过 MCP 请求检索和获取知识库条目。
- 快速部署: 基于 'fastmcp' 框架,易于配置和启动。
安装步骤
- 环境配置: 参考仓库根目录 'README.md' 文件中的 "How to Run" -> "1. configure your environment" 进行环境配置,例如配置 Python 虚拟环境和必要的依赖。
- 安装开发依赖: 根据 'README.md' 中 "MCP Server" -> "prerequisites" 部分的说明,执行以下命令安装开发依赖:
这些命令将安装项目自身作为开发依赖,并构建和同步环境。uv add --dev . uv build uv sync
服务器配置
MCP 客户端需要以下配置信息来连接到 TSW 知识库 MCP 服务器。请将以下 JSON 配置添加到您的 MCP 客户端配置中。
{ "serverName": "My-KB", "command": "python", "args": [ "-m", "mcp.server.fastmcp", "mcp/kb_exploer.py" ], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,设置为 'My-KB' (与 'mcp/kb_exploer.py' 中 'FastMCP("My-KB")' 的定义一致)。
- 'command': 启动服务器的命令,这里使用 'python'。
- 'args': 启动服务器命令的参数列表:
- '-m mcp.server.fastmcp': 以模块方式运行 'mcp.server.fastmcp',这是 MCP 服务器的入口点。
- 'mcp/kb_exploer.py': 指定 MCP 服务器的实现文件,该文件定义了知识库资源。
- 'transport': 传输协议,默认为 'stdio' (标准输入输出)。
注意:
- 请确保您的 Python 环境中已安装所有必要的依赖,可以通过执行 'uv sync' 命令来安装。
- 上述配置假设您在项目根目录下启动 MCP 客户端,如果客户端和服务器部署路径不同,请根据实际情况调整 'args' 中 'mcp/kb_exploer.py' 的路径。
- 配置文件 'config/kb.json' 中包含了知识库连接配置,请根据您的知识库环境进行相应的配置。
基本使用方法
- 启动 MCP 服务器: MCP 客户端配置完成后,当客户端尝试连接 'My-KB' 服务器时,将自动执行配置中的命令来启动服务器。实际上,由于配置的是 'stdio' 传输方式,服务器会作为子进程启动。
- 客户端请求资源: LLM 客户端可以使用 MCP 协议发送请求到服务器,以访问名为 'tsw://kb' 的知识库资源。具体的请求格式和参数需要参考 MCP 协议文档以及 LLM 客户端的实现。
- 获取知识库条目: 服务器会将知识库条目列表作为资源返回给客户端。客户端可以进一步处理这些条目,以作为 LLM 的上下文信息。
示例操作 (概念性):
假设 MCP 客户端发送一个请求以获取 'tsw://kb' 资源:
{ "jsonrpc": "2.0", "method": "getResource", "params": { "resourceName": "tsw://kb" }, "id": 1 }
服务器收到请求后,会执行 'mcp/kb_exploer.py' 中 '@mcp.resource("tsw://kb")' 装饰的 'get_entry()' 函数,该函数会调用 'agent.kb.list_kb_entries(config)' 获取知识库条目列表,并将结果以 JSON-RPC 响应的形式返回给客户端。
{ "jsonrpc": "2.0", "result": "知识库条目1\n知识库条目2\n知识库条目3\n...", "id": 1 }
客户端可以解析响应结果,并将其用于后续的 LLM 应用逻辑中。
信息
分类
数据库与文件