使用说明
内存MCP客户端
A. 严格、透明的MCP客户端 Laravel内存MCP服务器。
此客户端实现 模型上下文协议(MCP) 版本 2024-11-05 并充当 零逻辑传输适配器 在STDIO和Laravel内存HTTP API之间。
🔐 核心原则
此客户端遵循 零假设政策:
- ✅ 前进 无突变的请求和响应
- ✅ 蜜饯 来自服务器的精确JSON-RPC信封
- ✅ 验证 严格身份验证(如果令牌丢失,则立即失败)
- ✅ 镜子 工具模式与合约完全一致
- ❌ 从不 转换、规范化或解释数据
- ❌ 从不 缓存或存储响应
- ❌ 从不 添加业务逻辑
📦 安装
npm install
⚙️ 配置
所需的环境变量
# REQUIRED: Bearer token for authentication
MCP_MEMORY_TOKEN=your-token-here
可选环境变量
# Server URL (default: https://agent.idsolutions.id/api/v1/mcp/memory)
MCP_MEMORY_URL=https://your-server.com/api/v1/mcp/memory
重要:客户将 立即失败 如果出现致命错误 MCP_MEMORY_TOKEN 未设置。
🚀 用法
作为MCP服务器(通过STDIO)
# Set environment variables
export MCP_MEMORY_TOKEN="your-token"
# Run the client
node memory-mcp.js
# Or use the bin script
./bin/memory-mcp.js
与MCP检查员一起
npx @modelcontextprotocol/inspector node memory-mcp.js
🛠️ 可用工具
客户端从Laravel内存MCP服务器公开以下工具:
| 工具 | 说明 |
|---|---|
memory-write |
创建或更新内存条目(通过可选方式进行升级 id) |
memory-update |
通过UUID更新现有内存 |
memory-delete |
软删除内存条目 |
memory-search |
使用过滤功能搜索记忆 |
memory-link |
在记忆之间建立联系 |
有关完整的架构定义,请参见 mcp-contract.md.
📋 协议行为
初始化
- 客户收到
initialize请求 - 客户以能力和
protocolVersion: "2024-11-05" - 客户端发送
notifications/initialized通知
工具调用
所有工具调用都遵循以下模式:
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "memory-write",
"arguments": { ... }
},
"id": 1
}
客户:
- 验证
MCP_MEMORY_TOKEN存在(如果缺失则失败) - 通过HTTP POST将请求转发到Laravel服务器
- 退货 精确 来自服务器的JSON-RPC信封(无转换)
错误处理
- 缺少令牌:返回JSON-RPC错误和代码
-32000 - 解析错误:返回JSON-RPC错误和代码
-32700 - 网络错误:返回JSON-RPC错误和代码
-32603 - 服务器错误:按照收到的原样转发
🧪 测试
node test-memory-mcp.js
📘 遵守合同
该客户严格执行 mcp-contract.md.
关键遵守点:
- ✅ 所有工具模式都与合同完全匹配(包括枚举、格式、必填字段)
- ✅ 身份验证在中使用承载令牌
Authorization头球 - ✅ 在不提取或转换的情况下转发响应
content数组 - ✅ 无本地缓存或状态管理
- ✅ 没有模式规范化或字段重命名
- ✅ 由服务器而非客户端定义的Idempotency规则
🚫 这个客户不做什么
- ❌ 存储或缓存存储器
- ❌ 解释记忆语义
- ❌ 修改或验证内存内容
- ❌ 自动重试失败的请求
- ❌ 转换蛇_案例↔ 驼峰式命名法
- ❌ 提取或解析
content[].text来自回复 - ❌ 添加合同中未指定的默认值
- ❌ 实现业务逻辑
如果你需要逻辑,它属于使用此客户端的代理。
🔍 验证检查表
在考虑完成此实施之前,请验证:
- []MCP检查员正确列出了所有5个工具
- [ ]
tools/list架构与服务器完全匹配 - []资源模板可见(
memory://index) - [ ]
tools/call转发请求而不进行变异 - []服务器错误传播不变
- []未发生架构转换
- []令牌验证丢失时大声失败
📖 心理模型
将此客户视为:
透明玻璃管。
不聪明。没有固执己见。只是精确。
客户端的唯一工作是在STDIO(MCP协议)和HTTP(Laravel API)之间进行转换,同时保留所有语义。
🤝 替换测试
如果满足以下条件,则执行正确:
用另一个实现替换此客户端会产生零行为差异。
如果交换客户端会改变系统行为,那么一定有问题。
📄 许可证
请参阅存储库许可证。
