← Registry

Marketing

engine-production-3bdc.up.railway.app

Provides tools for generating and managing marketing hooks with psychology insights and templates.

1 endpoint45 known toolsFirst detected July 25, 2026Last detected August 29, 2026

ENDPOINT 1

https://engine-production-3bdc.up.railway.app/mcp

No auth detected

MCP server metadata

Name
vhgengine
Version
3.1.0
Capabilities
experimentalpromptsresourcestools
Server instructions

VHGENGINE - agents-first viral-hook engine. You are the customer; there is no human in a browser. Every step is machine-driven. GETTING STARTED 1. Call signup(beta_access_code="<YOUR-8-DIGIT-CODE>", idempotency_key="unique-retry-key", name=...) -> api_key. Substitute the code issued to you. The placeholder is deliberately NOT eight digits: an eight-digit guess passes schema validation, reaches signup, and spends a durable rate-limited attempt before the code is ever tested, returning 403 beta_access_denied. Standard access includes ten free product requests; owner access is unlimited. Signup retains 500 credits as a compatibility balance for historical ledgers, but beta operations charge zero. Exact signup replay recovers the same derived key. 2. Authenticate every other tool: pass api_key="..." on the call, OR send Authorization: Bearer <key> over HTTP, OR set VHGENGINE_API_KEY (stdio default). An unauthorized envelope carries details.reason (no_credential | revoked | unknown_key | deleted) and a hint naming the fix for THAT one. reason="revoked" means your account is intact: use list_keys / create_key, do NOT sign up again. 3. Call getting_started (free, no auth) for the evidence quickstart and archive boundary. ARCHIVED QUOTE METADATA: quote can still parse historical generation inputs and prices, but it cannot authorize or predict a runnable writer. Do not use it as a fallback for missing source evidence. VERIFIED EVIDENCE: research_hook_evidence requests up to ten verified public source examples, separate from generated hooks. It publishes hard-gate and ranking receipts, never pads a short result, and accepts language, locale, format, source-minimum, and opener-verification policy. Where the approved provider runtime is bound, the call DISPATCHES to that provider and SPENDS vendor credits, bounded by a 300-second authorization: allow at least 310 seconds and do not re-ask with a fresh idempotency_key while it is still running. Where that runtime is not bound, the call makes no provider dispatch at all. Call health and read hook_research_provider_ready to see which posture you are on. unsupported_cell always means no provider call was made and the charge is zero, either because the request carries a planning deficiency or because that runtime is unavailable here. ARCHIVED MODES + COST / PRIVATE-BETA PRICING (base + per_hook * hooks_returned): instant 0+0/hook, smart 0+0/hook, research 0+0/hook, 0 at count=10. Customer pricing is zero. Aliases and wait fields remain stored-client metadata. Pricing rows keep literal {base, per_hook} fields for compatibility. Every generation, batch, job, and remix writer fails before work or billing. Reads (getting_started, pricing, get_estimates, list_archetypes, get_account, get_usage, get_activity, get_job, list_jobs, list_keys, list_hooks, get_hook, list_outcomes, list_runs, list_billing_events, list_creator_profiles, get_creator_profile, health) are free. LOST A RESPONSE? list_runs(request_id=...) is the receipt for any call you were charged for, newest first; follow its `hooks_url` for the hooks that call produced instead of re-running (and re-charging) the request. Bought hooks are retrievable for 90 days via list_hooks / get_hook (kept indefinitely once you report an outcome on them); list_hooks(mode=) takes the legacy generation vocabulary, aliases included, and resolves each to the stored instant|smart|research|remix, while list_hooks(tag=) is an exact literal slug match ("_" is a tag character, not a wildcard). Report what a hook actually did once posted with report_outcome (free; caller-supplied and not independently verified, retained for future calibration, but not consumed by generation, scoring, or retrieval today and no view prediction is claimed; list_hooks(unreported=true) finds rewardable hooks); read your reported outcomes in bulk with list_outcomes. Manage API keys with create_key / list_keys / revoke_key (free). Keep reusable, account-owned creator declarations with create_creator_profile / list_creator_profiles / get_creator_profile / update_creator_profile / delete_creator_profile. These versioned caller declarations and deny-by-default secondary-use decisions are stored for governance; VHGENGINE does not verify authority, and learning/retrieval do not consume them today. Export the ledger, every hook/immutable served instance/non-prose lineage marker/outcome, and retained jobs, commissions, and request tags in ONE call with export_usage, then leave cleanly with delete_account (terminal; keeps the financial ledger and de-associates outcomes from the account while retaining their submitted content, URLs, and tags in the shared corpus). ARCHIVED WAIT GUIDANCE: expected_wait {p50_ms, p90_ms, source}, progressToken, and generation-job fields remain readable for stored clients. No archived writer starts, streams progress, or queues work. SOURCE-FREE GENERATION IS ARCHIVED. generate_hooks, generate_hooks_batch, remix_hook, and start_generate_job fail before model, provider, queue, persistence, or billing work. They cannot create substitutes for missing research supply, so cancellation cannot leave hidden generated hooks or charges. Use research_hook_evidence with an idempotency_key; it returns only source-proven public footage or an honest shortfall/unsupported outcome. ERRORS are one typed envelope: {"error": {code, message, retriable, retry_after_seconds, details (with a next-action hint), request_id}}. Common codes: unauthorized, forbidden (key lacks the scope), beta_access_denied, beta_quota_exhausted, invalid_request, not_found, conflict, insufficient_credits (retained compatibility error; customer operations are zero-priced during beta), llm_unavailable (legacy compatibility error, never an evidence fallback), configuration_unavailable (the operator must install a required security secret), capability_disabled (the operation is defined but its measured writer remains off), idempotency_conflict, rate_limited (honor retry_after_seconds; get_account.rate_limit shows the remaining window so a fleet can pace BEFORE being throttled), internal. Each tool's docstring lists the errors it can return. A failed resource read (vhgengine://...) carries the SAME envelope in the JSON-RPC error's `data` field, with the message repeated in `message`. SCHEMAS: every tool advertises both an inputSchema (per-argument descriptions, enums and bounds) and an outputSchema naming the keys it returns. Read them instead of guessing, and instead of paying for a call to discover a field name. IDEMPOTENCY: pass idempotency_key on signup / generate_hooks / generate_hooks_batch / research_hook_evidence / score_hook / score_hooks_batch / remix_hook / add_credits / start_generate_job / report_outcome / create_creator_profile / update_creator_profile / delete_creator_profile; a replay returns the stored result (replayed:true) and never applies the write twice or re-charges. Profile deletion erases its old create/update replay bodies; reusing one of those keys fails closed with idempotency_conflict and reason=resource_deleted instead of recreating the profile.

Known tools 45

signup

Redeem a private-beta code and create an account.

Potential side effects
getting_started

The 5-step agent quickstart: modes, wait guidance, links.

Inferred read-only
list_archetypes

List the hook archetypes with psychology, platforms, and templates.

Inferred read-only
pricing

The machine-readable price list, with per-mode expected_wait.

Inferred read-only
get_estimates

The measured/expected wait per generation mode.

Inferred read-only
health

Deep health: DB read+write probe, worker/queue, backup + integrity.

Potential side effects
get_account

Return this account's state + remaining rate-limit budget.

Inferred read-only
get_usage

Return the credit balance, per-operation totals, and recent ledger.

Inferred read-only
export_usage

Export ledger, hook, instance, lineage, outcome, profile, and retained-job data.

Inferred read-only
list_runs

Every call this account was charged for, newest first.

Inferred read-only
quote

Read archived generation price and wait metadata without spending.

Inferred read-only
add_credits

Compatibility credit grant (1-10000); beta customer operations are already free.

Inferred read-only
list_billing_events

Recent billing events (usage.

Inferred read-only
create_checkout

Get a hosted-checkout link outside beta.

Inferred read-only
create_creator_profile

Create an owned, versioned creator profile.

Potential side effects
list_creator_profiles

List current creator-profile versions, newest changed first.

Inferred read-only
get_creator_profile

Get the current or one exact historical creator-profile version.

Inferred read-only
update_creator_profile

Append a full immutable profile version with compare-and-swap.

Inferred read-only
delete_creator_profile

Erase profile facts and consent history; retain a retraction marker.

Potential side effects
create_key

Mint a new named API key; the plaintext is returned ONCE.

Inferred read-only
list_keys

List this account's API keys as PREFIXES only (never the raw key).

Inferred read-only
revoke_key

Revoke the key with `prefix` (from list_keys): it stops working, others keep working.

Inferred read-only
delete_account

Permanently delete this account.

Potential side effects
research_hook_evidence

Return a deterministic, unpadded portfolio of verified hook evidence.

Inferred read-only
synthesize_hooks

Write original hooks derived from verified viral source evidence.

Potential side effects
generate_hooks

Archived source-free writer.

Inferred read-only
generate_hooks_batch

Archived source-free batch writer.

Inferred read-only
score_hook

Score any hook text on 5 dimensions with rewrite tips.

Inferred read-only
score_hooks_batch

Score many hooks ranked with `best`, or compare named SETS.

Inferred read-only
remix_hook

Archived source-free remix writer.

Inferred read-only
list_hooks

List the hooks this account has bought, newest first.

Inferred read-only
get_hook

Fetch one bought hook in full, including its parsed score.

Inferred read-only
list_outcomes

List the posted outcomes THIS account has reported, newest first.

Inferred read-only
report_outcome

Report what a bought hook actually did once posted.

Inferred read-only
start_generate_job

Archived source-free writer job.

Inferred read-only
get_job

Poll an async job: status, real engine stage, progress, ETA, result/error.

Inferred read-only
wait_for_job

Block until a job is terminal, then return it.

Potential side effects
cancel_job

Cancel a job that is STILL QUEUED.

Inferred read-only
list_jobs

List this account's jobs, newest first (summaries without the result blob).

Inferred read-only
set_webhook

Register (or replace) this account's webhook; the secret is returned ONCE.

Inferred read-only
get_webhook

This account's webhook (url + last delivery status; never the secret).

Inferred read-only
delete_webhook

Remove this account's webhook (WP-M).

Potential side effects
list_webhook_deliveries

List this account's webhook deliveries, newest first.

Inferred read-only
redrive_webhook_delivery

Requeue a dead-lettered webhook delivery: reset to pending, due now.

Inferred read-only
get_activity

See what this account's agents are doing: in-flight ops + recent ops.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.vhgengine]
url = "https://engine-production-3bdc.up.railway.app/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "vhgengine": {
      "type": "http",
      "url": "https://engine-production-3bdc.up.railway.app/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: vhgengine
Remote MCP URL: https://engine-production-3bdc.up.railway.app/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "vhgengine": {
      "url": "https://engine-production-3bdc.up.railway.app/mcp"
    }
  }
}
Visual Studio Code

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "vhgengine": {
      "type": "http",
      "url": "https://engine-production-3bdc.up.railway.app/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "vhgengine",
  "transport": "streamable-http",
  "url": "https://engine-production-3bdc.up.railway.app/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

TRUST AND VERIFICATION EVIDENCE

Trust Data Available

BuiltWith Trust API v2 evidence for railway.app was fetched 2026-08-25T20:04:34.605Z.

Trust status Trusted

railway.app is assessed as Trusted: Domain has an established technology history spanning over a year.

Indexed

Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.