项目简介
fpf-sync是一个实现Model Context Protocol (MCP) 标准的服务器,专门为First Principles Framework (FPF) 领域提供上下文服务。它能够托管和管理FPF相关的知识资源(如本体、文档),并提供一系列工具供LLM客户端调用,以执行FPF领域的特定操作,例如管理概念实体(Episteme)、角色、工作流、服务评估、信任度计算等。该服务器支持通过标准输入/输出 (Stdio) 和 Server-Sent Events (SSE) 两种通信协议与MCP客户端通信。
主要功能点
- 资源管理: 托管并提供对FPF本体注册表、特定本体实例、核心规范文档以及其他FPF文档的访问。客户端可以通过URI方案 'fpf://' 访问这些资源。
- 工具调用: 允许LLM客户端通过JSON-RPC调用丰富的FPF领域操作,包括:
- 上下文 (Context)、桥接 (Bridge)、角色 (Role)、角色分配 (Role Assignment)、状态断言 (State Assertion) 的创建和更新。
- 方法描述 (Method Description)、工作流 (Work) 的启动与结束、证据链接。
- 能力 (Capability) 声明与检查、服务 (Service) 定义与评估。
- NQD(能力-质量-多样性)生成、E/E(探索/利用)策略设置、帕累托分析。
- 信任度计算、聚合操作(Gamma)、UTS(统一信任评分)发布、DRR(决策记录)记录。
- FPF文档和本体的列表、读取、搜索、主题提取、标题列表。
- 本体的符号查找、导出、以及服务器状态和版本查询。
- 多种传输协议: 支持通过标准输入/输出 (Stdio) 或 Server-Sent Events (SSE) 与MCP客户端通信。
安装步骤
- Node.js/Bun环境: 确保您的系统已安装Node.js (推荐版本 18+) 或 Bun (推荐使用Bun以获得最佳性能)。
- 克隆仓库: 'git clone https://github.com/venikman/fpf-sync.git'
- 进入目录: 'cd fpf-sync'
- 安装依赖:
- 如果您使用Bun: 'bun install'
- 如果您使用Node.js: 'npm install'
- 配置环境变量:
- 'FPF_DATA_DIR': (可选) 设置MCP服务器数据存储目录的路径。如果未设置,数据将默认存储在项目根目录下的 'data' 文件夹中。例如:'/data'
- 'FPF_READONLY': (可选) 设置为 '1' (默认值) 以启用服务器的只读模式,这将禁用所有会写操作的MCP工具。设置为 '0' 以启用写操作。
- 'PORT': (仅针对SSE服务器) 设置SSE服务器监听的端口号,默认为 '8080'。
- 'OPEN_ROUTER_KEY', 'OPEN_AI_KEY', 'SUPABASE_PROJECT_URL', 'SUPABASE_WRITE_KEY': 这些环境变量是项目中的 'meme-meter' 功能所需的。如果您只运行MCP服务器,可以暂时不配置它们。
服务器配置 (供MCP客户端使用)
该MCP服务器提供两种运行模式:Stdio和SSE。根据您的MCP客户端和使用场景,选择以下相应的配置信息提供给您的MCP客户端。
1. Stdio模式配置示例
以下是MCP客户端连接到Stdio模式FPF MCP服务器时可能需要的配置信息:
{ "name": "FPF MCP Server (Stdio)", "command": "bun", "args": ["run", "scripts/mcp/server.ts"], "environment": { // "FPF_DATA_DIR": "/path/to/your/data", // 可选: 指定MCP服务器的数据存储目录 // "FPF_READONLY": "0" // 可选: 设置为"0"允许数据修改操作,默认为"1"只读模式 } }
- 注释: 此配置适用于通过标准输入/输出通信的MCP客户端,通常用于本地开发或某些集成环境。
- 'name': 服务器的显示名称。
- 'command': 启动MCP服务器的执行命令(例如 'bun' 或 'node')。
- 'args': 传递给 'command' 的参数,这里是服务器脚本的路径。
- 'environment': 用于设置服务器运行时的环境变量,例如指定数据目录或读写模式。
2. SSE模式配置示例
以下是MCP客户端连接到SSE模式FPF MCP服务器时可能需要的配置信息:
{ "name": "FPF MCP Server (SSE)", "command": "bun", "args": ["run", "scripts/mcp/server-sse.ts"], "url": "http://localhost:8080/sse", "environment": { // "PORT": "8081", // 可选: 更改SSE服务器的监听端口,需与"url"中的端口一致 // "FPF_DATA_DIR": "/path/to/your/data", // 可选: 指定MCP服务器的数据存储目录 // "FPF_READONLY": "0" // 可选: 设置为"0"允许数据修改操作,默认为"1"只读模式 } }
- 注释: 此配置适用于通过Server-Sent Events (SSE) 协议通信的MCP客户端。
- 'name': 服务器的显示名称。
- 'command': 启动MCP服务器的执行命令。
- 'args': 传递给 'command' 的参数,这里是SSE服务器脚本的路径。
- 'url': MCP客户端连接服务器的URL地址。请确保这里的端口与 'environment.PORT' 中配置的或服务器默认监听的端口一致。
- 'environment': 用于设置服务器运行时的环境变量。
请将上述JSON配置片段提供给您的MCP客户端,客户端将使用这些信息来启动和连接FPF MCP服务器。
基本使用方法
根据您选择的服务器配置,您的MCP客户端将能够自动启动并连接到FPF MCP服务器。一旦连接成功,您可以通过客户端向服务器发送请求来:
- 读取资源: 例如,请求 'fpf://epistemes' 以获取所有本体的列表,或 'fpf://spec' 以获取FPF核心规范文档。
- 调用工具: 例如,使用 'fpf.list_epistemes' 工具获取本体列表,或使用 'fpf.search_fpf_docs' 搜索FPF文档内容。
具体的调用方式取决于您的MCP客户端界面和功能。通常,客户端会提供一个界面,让您可以浏览可用的资源和工具,并输入相应的参数。
信息
分类
AI与计算