yams/docs/feature-parity-matrix.md
2025-08-10 23:41:49 -04:00

6.4 KiB

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:

  1. 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
  2. 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)
  3. 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