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文件、添加/删除事实和规则、列出符号,并且可以通过两种模式运行查询:确定性分页模式。
- NPM:
@vpursuit/swipl-mcp-server - 文档:products/swipl-mcp-server
- 快速启动:
npx @vpursuit/swipl-mcp-server
特性:
- 知识库管理(加载、断言、撤销、转储)
- 两种查询模式:标准模式(
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文件。
🔗 链接
- GitHub:vpursuit/model-context-lab
- NPM组织:@vpursuit
- 模型上下文协议:modelcontextprotocol.io
- SWI - Prolog:swi-prolog.org
Scan to join WeChat group