MEME
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEME_HOME | No | MEME home directory. | |
| MEME_MODE | No | Run mode for MEME: demo or live. | demo |
| GITHUB_TOKEN | No | GitHub token used for live GitHub trend discovery. | |
| OPENAI_MODEL | No | OpenAI-compatible model name. | |
| MEME_LOG_LEVEL | No | Log level for MEME. | |
| OPENAI_API_KEY | No | API key for an OpenAI-compatible LLM provider. Without it, live mode falls back to the deterministic mock provider. | |
| REDDIT_ENABLED | No | Enable Reddit integration. Requires a completed legal and policy review with a signed compliance-overrides.json. | |
| MEME_LLM_PROVIDER | No | LLM provider selection. | |
| MEME_IMAGE_PROVIDER | No | Image provider selection. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_trendsC | Discovers developer-culture trends from enabled authorized sources (demo source by default; GitHub + Hacker News in live mode) and ranks them by an intelligent composite: velocity, acceleration, engagement quality, recency, developer relevance, cross-platform signals, source diversity and discussion authenticity. Each ranked trend carries a transparent explanation and a confidence score. Results carry honest freshness indicators (live / cached / stale). |
| get_trendB | Full context for one trend: signals, cultural references, developer relevance analysis, and the sanitized context block used for generation. |
| generate_memeA | Generates original meme concepts for a trend, personalized to the user's humor style, languages and exclusions. Runs moderation on every string and attaches a provisional quality report (heuristic aid — never a guarantee of humor or virality). Pass async=true to enqueue a durable background job instead of waiting. |
| render_memeA | Renders a generated concept into an original vector meme (SVG, plus PNG when sharp is available). Every text is moderated again before rendering. Returns the meme id, file paths, and an inline PNG preview. |
| list_memesB | Lists rendered memes (newest first), optionally filtered by user. |
| get_historyB | Your own rendered memes, newest first. |
| get_memeC | Full meme record: concept, texts, quality, sources, attribution. |
| edit_memeB | Edits the caption texts of a rendered meme and re-renders it. Texts are validated against format slots and re-moderated. The previous version is kept in the revision history. |
| delete_memeB | Deletes a meme you own (admins may delete any). |
| evaluate_memeB | Runs the Meme Quality Evaluation System on a meme: technical accuracy, contextual relevance, originality, humor (heuristic proxy), caption readability, visual composition, audience relevance — merged with any human ratings. Heuristic evaluation aid. NOT a claim that a meme is objectively funny or guaranteed to go viral. |
| rate_memeB | Submit a 1–5 star human rating. Ratings are subjective opinions; they complement, never define, the heuristic scores. |
| favorite_memeC | Adds (or updates the note on) a favorite. |
| list_favoritesA | Lists your favorite memes with notes, newest first (tenant-scoped). |
| submit_feedbackC | Thumbs up / down feedback with optional note. Feeds the quality dataset. |
| report_contentB | Report a meme for review. Reasons: offensive, inaccurate, copyright, spam, other. Reports are always filed; hostile details are redacted by moderation. |
| get_preferencesC | Your humor styles, languages, categories, formats, caption tone and exclusions. |
| set_preferencesC | Updates personalization. All fields optional; omitted fields keep their current values. |
| list_templatesB | Editable meme templates (built-ins + custom). |
| edit_templateB | Edit a template's name, palette (hex colors) or default texts. Built-in templates cannot be deleted but can be customized. |
| export_memeB | Exports a meme as SVG or PNG plus a sidecar JSON (concept, sources, attribution, license, disclaimer). |
| get_cost_reportC | Your token usage, estimated costs, cache efficiency and remaining budget. |
| get_cost_report-allB | Cost report across all users in this workspace, with budget posture. |
| get_healthA | Operational status: enabled sources with honest freshness (live / cached / stale — MEME never claims real-time coverage it cannot guarantee), feature flags, queue depth, moderation stats and configuration notices. |
| get_metricsC | Counters and histograms: tool latency, generation latency, API failures, moderation decisions, cost. |
| enforce_retentionC | Runs the retention enforcer: deletes expired history/feedback/reports/raw signals per policy. |
| review_moderation_queueC | Open content reports and moderation statistics. |
| get_complianceB | The versioned compliance registry: per-provider permitted operations, auth, rate limits, content-processing permissions, attribution, retention, deletion obligations, commercial-use limits — and the Reddit legal-review gate status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Most tools target distinct resource+action pairs (get_trend vs get_trends, evaluate_meme vs rate_meme vs render_meme), but list_memes and get_history describe nearly the same thing ('your rendered memes, newest first'), and get_cost_report vs get_cost_report-all differ only by scope. An agent must guess which of the duplicate pairs to call.
A clear verb_noun snake_case convention dominates (get_meme, render_meme, edit_template, report_content). Minor deviations: get_cost_report-all uses a hyphen instead of a scope parameter, and get_history reads like a synonym for list_memes rather than a distinct resource.
27 tools exceeds a reasonable scope for a meme generation server, with the surface inflated by ops/admin concerns (get_metrics, enforce_retention, get_compliance, two cost reports, get_health). Several of these could be collapsed into fewer tools or a single status endpoint.
Meme lifecycle is well covered (generate, render, list, get, edit, delete, export, evaluate, rate, report, favorite), but favorites have no unfavorite/remove operation, templates support list+edit but no create or delete for custom templates, and history has no delete for individual entries.