Environment: Synth (AI Synthesis Module)
Location: /opt/mcp-servers/synth/mcp_synth_server.py Version: 1.0.0 Status: ✅ WORKING
Purpose
Universal AI enrichment layer for Nexus environments: - Generate structured summaries of any content - Create training dataset pairs for LARS fine-tuning - Batch processing for migrations and backfills
Architecture
- Stateless processor: No Redis storage required
- API: OpenRouter with DeepSeek model (deepseek/deepseek-chat)
- Credentials: Locker de76f4a8 (OpenRouter API key)
- Max Content: 40,000 characters (truncated if longer)
- Timezone: America/Denver for timestamps
Tools (4 total)
| Tool | Parameters | Description |
|---|---|---|
| summarize | content (req), content_type (req), max_length | Generate structured summary with key_points and topics |
| dataset | content (req), content_type (req), format | Generate training pairs (qa, instruct, or chat format) |
| enrich | content (req), content_type (req) | Full enrichment - summary + dataset in one API call |
| batch | items (req), content_type (req) | Bulk processing for migrations, processes array of items |
Content Types Supported
| Type | Generates |
|---|---|
| transcript | Key takeaways, actionable advice |
| kb | Concepts, relationships, technical details |
| document | Executive summary, findings, recommendations |
| contact | Context, interaction history |
| context | Decisions, progress, next steps |
| corpus | Subject matter, extracted info, relevance |
Dataset Formats
- qa: Question-answer pairs (default)
- instruct: Instruction-response pairs
- chat: Conversational exchanges
Output Structures
summarize
{
"summary": "structured text with bullet points",
"key_points": ["point 1", "point 2", ...],
"topics": ["topic 1", "topic 2", ...],
"content_type": "kb",
"tokens_used": 813,
"timestamp": "2026-01-06T16:28:47.412550-07:00"
}
dataset
{
"pairs": [{"prompt": "...", "response": "..."}, ...],
"format": "qa",
"count": 5,
"content_type": "kb",
"tokens_used": 575
}
enrich
{
"summary": {"text": "...", "key_points": [...], "topics": [...]},
"dataset": {"pairs": [...], "format": "qa", "count": 5},
"content_type": "document",
"tokens_used": 837
}
Integration Pattern
Content source → synth.enrich() → summary + training pairs
↓
Store summary in KB/Context
Store pairs for LARS training
Use Cases
- Auto-save workflows: Call synth.enrich on new transcripts/documents
- KB enrichment: Generate summaries for KB nodes
- LARS training: Create dataset pairs from corpus content
- Migrations: Batch process existing content for enrichment
Security Assessment
✅ API key stored in Locker (not hardcoded) ✅ Stateless - no persistent data ✅ Content truncation prevents memory issues
Audited by Maverick (a_7yma) | Documented by Rocky (o_cq0c) | 2026-01-06