返回 MCP 目录
public公开dns本地运行

model-context-lab

这是一个包含Model Context Protocol(MCP)软件包和产品的单仓库,主要提供了一个功能完整的MCP服务器,使AI助手能够与SWI-Prolog、文件系统和可扩展插件系统进行交互。

article

README

🚀 vpursuit的MCP生态系统

本单仓库项目包含了模型上下文协议(MCP)的相关包和产品,这些包和产品能让AI助手与SWI - Prolog、文件系统以及可扩展的插件系统协同工作。

🚀 快速开始

面向终端用户

安装完整的MCP服务器:

npx @vpursuit/swipl-mcp-server

面向单仓库开发者

使用插件系统:

git clone https://github.com/vpursuit/model-context-lab.git
cd model-context-lab
npm install
npm run build

面向贡献者

搭建开发环境:

git clone https://github.com/vpursuit/model-context-lab.git
cd model-context-lab
npm install
npm run build
npm test

✨ 主要特性

SWI - Prolog MCP服务器

具备Prolog知识库集成功能的全功能MCP服务器

这是一个MCP服务器,它允许支持工具的大语言模型(LLMs)与SWI - Prolog交互。它支持加载Prolog文件、添加/删除事实和规则、列出符号,并且可以通过两种模式运行查询:确定性分页模式。

特性

  • 知识库管理(加载、断言、撤销、转储)
  • 两种查询模式:标准模式(call_nth/2)和引擎模式(真正的回溯)
  • 专业的Prolog辅助提示(例如解决逻辑谜题)
  • 全面的安全沙箱
  • 动态文件系统根目录
  • 基于插件的架构

📦 安装指南

前提条件

  • Node.js ≥ 20.0.0
  • SWI - Prolog(用于测试Prolog集成)
  • npm ≥ 9.0.0

环境搭建

# 克隆仓库
git clone https://github.com/vpursuit/model-context-lab.git
cd model-context-lab

# 安装所有依赖
npm install

# 构建所有包
npm run build

# 运行所有测试
npm test

包操作

# 构建特定包
npm run build -w plugins/server/core

# 测试特定包
npm test -w plugins/server/prolog

# 清理所有构建产物
npm run clean

包开发

每个包支持以下操作:

  • npm run build - TypeScript编译
  • npm run clean - 删除构建产物
  • npm test - 运行Vitest测试
  • npm run test:watch - 测试的监听模式

📚 详细文档

产品文档(swipl - mcp - server)

  • 安装与设置 — 为所有MCP客户端提供完整的设置说明
  • 配置 — 文件系统根目录、环境变量
  • 故障排除 — 常见问题和调试模式
  • 特性参考 — 详细的提示、资源和工具文档
  • 示例 — 可直接复制粘贴的使用示例
  • 架构 — 组件、模式和有线协议
  • 生命周期 — 服务器生命周期、状态和持久化模式
  • 部署 — 发布、打包和从源代码安装

单仓库文档

🔧 技术细节

架构

本仓库遵循产品/插件架构:

  • 产品 (products/):终端用户安装的已发布包(例如,@vpursuit/swipl-mcp-server
  • 插件 (plugins/):集成在产品中的内部可重用组件(不单独发布)

内部插件系统

MCP服务器采用模块化插件架构构建。这些插件是集成到主产品中的内部依赖项: | 插件 | 描述 | 位置 | | ---- | ---- | ---- | | @vpursuit/mcp-server-core | 插件系统基础 | plugins/server/core | | @vpursuit/mcp-server-prolog | SWI - Prolog集成 | plugins/server/prolog |

注意:这些插件是内部依赖项,会被打包到@vpursuit/swipl-mcp-server中,不会单独发布到npm。

开发者插件系统

如果你在这个单仓库中进行开发,可以直接使用插件系统:

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { loadPlugins } from '@vpursuit/mcp-server-core';
import { plugin as prologPlugin } from '@vpursuit/mcp-server-prolog';
import { plugin as rootsPlugin } from '@vpursuit/mcp-server-roots';

const server = new McpServer({
  name: 'my-mcp-server',
  version: '1.0.0',
});

// 加载插件
await loadPlugins(server, [prologPlugin, rootsPlugin]);

仓库结构

这是一个使用npm工作区管理的单仓库。每个包都可以独立开发、测试和发布。

model-context-lab/
├── products/
│   └── swipl-mcp-server/    # 主MCP服务器(发布到npm)
├── plugins/
│   └── server/
│       ├── core/            # 插件系统基础(内部)
│       ├── prolog/          # SWI - Prolog集成(内部)
│       └── roots/           # 文件系统根目录发现(内部)
├── docs/                    # 单仓库级别的文档
├── .archive/                # 历史策略文档
└── package.json             # 工作区配置

每个包具有以下特点:

  • 拥有独立版本控制的package.json
  • 包含完整文档的README.md
  • 拥有LICENSE(BSD - 3 - 条款)
  • 拥有自己的测试套件

📄 许可证

本单仓库中的所有包均采用BSD - 3 - 条款许可证。 详情请参阅LICENSE文件。

🔗 链接


有疑问? 请创建一个问题,或者查看我们的文档

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端