YAMS Feature Parity Matrix
This document shows the feature coverage across different interfaces: HTTP API, CLI, and MCP Server.
Core Document Operations
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Store single document |
✅ POST /api/v1/content |
✅ yams add |
✅ store_document |
|
| Retrieve document |
✅ GET /api/v1/content/{hash} |
✅ yams get |
✅ retrieve_document |
|
| Delete document |
✅ DELETE /api/v1/content/{hash} |
✅ yams delete |
✅ delete_document |
|
| Check existence |
✅ HEAD /api/v1/content/{hash} |
❌ |
❌ |
Available internally; no dedicated CLI command |
| List documents |
❌ |
✅ yams list |
❌ |
HTTP API needs listing endpoint |
| Batch store |
✅ POST /api/v1/content/batch |
❌ |
❌ |
MCP needs batch support |
| Batch delete |
✅ DELETE /api/v1/content/batch |
❌ |
❌ |
MCP needs batch support |
Metadata Operations
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Get metadata |
✅ GET /api/v1/content/{hash}/metadata |
❌ |
❌ |
No dedicated CLI command |
| Update metadata |
✅ PUT /api/v1/content/{hash}/metadata |
❌ |
✅ update_metadata |
|
| Add tags |
❌ |
❌ |
❌ |
HTTP endpoint needed; no CLI commands |
| Remove tags |
❌ |
❌ |
❌ |
HTTP endpoint needed; no CLI commands |
Search Operations
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Text search |
✅ GET /api/v1/content/search |
✅ yams search |
✅ search_documents |
|
| Similar documents |
❌ |
❌ |
❌ |
HTTP/MCP endpoints and CLI command needed |
Memory System (Mem0-inspired)
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| List memories |
❌ |
❌ |
❌ |
Not exposed via HTTP; no CLI command |
| Search memories |
❌ |
❌ |
✅ retrieve_memories |
Not exposed via HTTP |
| Record memory |
❌ |
❌ |
✅ record_memory |
CLI command needed |
| Consolidate memories |
❌ |
❌ |
❌ |
MCP tool needed |
System Operations
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Get statistics |
✅ GET /api/v1/content/stats |
✅ yams stats |
✅ get_stats |
|
| Health check |
✅ GET /api/v1/health |
❌ |
❌ |
CLI command could be useful |
| Garbage collection |
❌ |
❌ |
❌ |
Admin operation (future) |
| Verify integrity |
❌ |
❌ |
❌ |
Admin operation (future) |
| Export data |
❌ |
❌ |
❌ |
Admin operation (future) |
| Import data |
❌ |
❌ |
❌ |
Admin operation (future) |
Configuration & Setup
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Initialize config |
❌ |
✅ yams init |
❌ |
Setup operation |
| Get config |
❌ |
✅ yams config get |
❌ |
Admin operation |
| Set config |
❌ |
✅ yams config set |
❌ |
Admin operation |
| Validate config |
❌ |
✅ yams config validate |
❌ |
Admin operation |
| Export config |
❌ |
✅ yams config export |
❌ |
Admin operation |
Authentication & Security
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| JWT authentication |
✅ Via headers |
❌ |
❌ |
HTTP uses JWT tokens |
| API key auth |
✅ Via headers |
❌ |
❌ |
HTTP uses API keys |
| Generate keys |
❌ |
❌ |
❌ |
Admin operation (future) |
| List keys |
❌ |
❌ |
❌ |
Admin operation (future) |
| Revoke keys |
❌ |
❌ |
❌ |
Admin operation (future) |
Service Management
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Install service |
❌ |
❌ |
❌ |
OS-level operation (future) |
| Start service |
❌ |
❌ |
❌ |
OS-level operation (future) |
| Stop service |
❌ |
❌ |
❌ |
OS-level operation (future) |
| Service status |
❌ |
❌ |
❌ |
OS-level operation (future) |
| View logs |
❌ |
❌ |
❌ |
OS-level operation (future) |
IPFS Integration
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Add to IPFS |
❌ |
❌ |
❌ |
Could add HTTP endpoint (future) |
| Get from IPFS |
❌ |
❌ |
❌ |
Could add HTTP endpoint (future) |
| Pin content |
❌ |
❌ |
❌ |
Could add HTTP endpoint (future) |
| Unpin content |
❌ |
❌ |
❌ |
Could add HTTP endpoint (future) |
| IPFS GC |
❌ |
❌ |
❌ |
Admin operation (future) |
Server Operations
| Feature |
HTTP API |
CLI |
MCP Tool |
Notes |
| Start HTTP server |
✅ Built-in |
❌ |
❌ |
HTTP server is the interface |
| Start MCP server |
❌ |
✅ yams serve |
✅ Built-in |
MCP server is the interface |
Planned/WIP
The following items are not part of the current CLI surface and/or HTTP API, and are planned or under consideration for future releases:
- CLI commands:
- exists
- batch-add, batch-delete
- metadata-get, metadata-update
- tag, untag
- similar
- memory list/search/record/consolidate
- gc, verify, export, import
- service install/start/stop/status/logs
- ipfs add/get/pin/unpin/gc
- HTTP API coverage:
- Listing endpoint for documents
- Similar documents endpoint
- Tag operations endpoints
- IPFS endpoints
Summary
Coverage by Interface:
- HTTP API: 14/45 features (31.1%) - Core content APIs and health
- CLI: 12/45 features (26.7%) - Primary developer interface; many advanced ops are Planned/WIP
- MCP Tools: 9/45 features (20.0%) - Focused on AI/agent operations
Recommendations for Feature Parity:
-
High Priority:
- Add document listing to HTTP API
- Add tag operations to HTTP API
- Add batch operations to MCP tools
- Add CLI command for recording memories
-
Medium Priority:
- Add similar document search to HTTP API and MCP
- Add metadata retrieval to MCP tools
- Add health check to CLI
- Expose memory operations via HTTP API (with appropriate auth)
-
Low Priority:
- Add IPFS operations to HTTP API
- Add more MCP tools for admin operations
- Add consolidate memories to MCP tools
Design Rationale:
- CLI has the most features as it's the primary interface for developers and power users
- HTTP API focuses on core operations suitable for web integration
- MCP Tools focus on operations relevant to AI agents, avoiding admin/system operations
- Some operations (like service management) are intentionally CLI-only for security reasons