项目简介

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客户端通信。

安装步骤

  1. Node.js/Bun环境: 确保您的系统已安装Node.js (推荐版本 18+) 或 Bun (推荐使用Bun以获得最佳性能)。
  2. 克隆仓库: 'git clone https://github.com/venikman/fpf-sync.git'
  3. 进入目录: 'cd fpf-sync'
  4. 安装依赖:
    • 如果您使用Bun: 'bun install'
    • 如果您使用Node.js: 'npm install'
  5. 配置环境变量:
    • '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与计算