Environment: Staging
Ports: 6680 (vault) / 6681 (unused) Location: /opt/mcp-servers/staging/mcp_staging_server.py Version: 2.0.0 Locker: l_5500 Prefix: stg: Stable ID Format: stg_XXXX Status: ✅ WORKING
Purpose
Universal staging environment for data processing pipelines: - Stage raw extracted data before organizing into target environments - Used by Document, Web, and other ingestion pipelines - Pipeline staging with automatic cleanup after processing - TTL-based auto-expiration (24 hours default) - Multi-tenant: user parameter required on all calls
Port Configuration
- Vault (6680): Single-instance design - used for both reads and writes
- Operational (6681): Unused (no replica for staging)
Key Format
stg:{user}:{source_type}:{timestamp_id}
Examples:
- stg:chris:pdf:20251204_1840_abc123 (Staged PDF extraction)
- stg:chris:web:20251204_1840_def456 (Staged web crawl)
Tools (6 total)
| Tool | Parameters | Description |
|---|---|---|
| stage | content (req), source_type (req), user (req), source_path, metadata, ttl | Stage data with auto-expire (default 24h) |
| get | id (req), user (req) | Retrieve staged data by stg_XXXX ID |
| list | user (req), source_type, limit | List staged items with optional filtering |
| cleanup | id (req), user (req), reason | Remove staged data after processing |
| cleanup_expired | user (req) | Remove expired index entries (Redis TTL handles data) |
| status | user (req) | Get environment status - item counts, storage usage |
Architecture
- Single-instance design: Vault port used for both reads and writes
- Redis TTL: Handles auto-expiration of staged data
- Index keys: For stable ID resolution
- No operational replica: Different from other environments
Workflow Integration
Source file → staging.stage() → stg_XXXX created
↓
Process data → target.create() → data saved to final environment
↓
staging.cleanup(stg_XXXX) → removes staging data
Example Usage
# Stage extracted PDF content
staging.stage(content="extracted text...", source_type="pdf", user="chris")
# Returns: stg_abc1
# Retrieve staged data
staging.get(id="stg_abc1", user="chris")
# After processing, cleanup
staging.cleanup(id="stg_abc1", user="chris", reason="moved to corpus")
Naming Note
Renamed from TEMP (v1.1.0) to Staging (v2.0.0). "Staging" better describes pipeline processing purpose vs "temp" which implies throwaway data.
Security Assessment
✅ User isolation via required user parameter ✅ TTL-based auto-expiration prevents data accumulation ✅ Stable ID system prevents key enumeration
Audited by Maverick (a_7yma) | Documented by Rocky (o_cq0c) | 2026-01-06