Skip to main content
Glama

vynn-mcp

mcp-name: io.github.beee003/vynn-mcp

MCP server for Vynn — self-improving AI workflows & backtesting.

Tools

Workflows

  • list_workflows — List your workflows

  • get_workflow — Get workflow details with steps

  • create_workflow — Create a new workflow

  • run_workflow — Execute a workflow

  • get_runs / get_run_summary — View run history

Self-Improving

  • optimize_prompt — AI-powered prompt optimization for a step

  • apply_prompt_optimization — Apply an optimized prompt

  • get_model_recommendation — Get model swap recommendations

  • set_schedule / get_schedule / delete_schedule — Cron scheduling

  • create_trigger / list_triggers — Inbound webhook triggers

Backtesting

  • backtest — Run a backtest with natural language or structured strategies

  • batch_backtest — Parameter sweep across strategy variations

  • optimize_portfolio — Mean-variance portfolio optimization

Utilities

  • list_templates / clone_template — Workflow templates

  • list_available_tools — Tools attachable to workflow steps

  • get_analytics — Workflow performance analytics

Related MCP server: knitbrain

Setup

# Install
pip install vynn-mcp

# Or from source
pip install -e /path/to/vynn-mcp

Set your API key:

export VYNN_API_KEY="vynn_free_..."

Usage with Claude Code

Add to your Claude Code MCP config (~/.claude.json):

{
  "mcpServers": {
    "vynn": {
      "command": "vynn-mcp",
      "env": {
        "VYNN_API_KEY": "vynn_free_..."
      }
    }
  }
}

Usage with Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "vynn": {
      "command": "vynn-mcp",
      "env": {
        "VYNN_API_KEY": "vynn_free_..."
      }
    }
  }
}

Get an API Key

Sign up at the-vynn.com or:

curl -X POST https://the-vynn.com/v1/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'

Available Tools

21 tools
apply_prompt_optimizationC

Apply an optimized prompt to a workflow step.

Args: workflow_id: UUID of the workflow step_id: UUID of the step prompt: The new prompt text to apply

Inputs: workflow_id (required), step_id (required), prompt (required). Returns: result

backtestA

Run a backtest on a trading strategy using natural language or structured rules.

Args: strategy: Strategy description (e.g. "Buy when RSI(14) < 30, sell when RSI(14) > 70") or JSON structured format {"entries":[...],"exits":[...]} universe: List of tickers (e.g. ["AAPL", "MSFT"]) or preset ("SP500", "MAGNIFICENT7"). Defaults to MAGNIFICENT7. period_start: Start date YYYY-MM-DD (default: 3 years ago) period_end: End date YYYY-MM-DD (default: today) capital: Starting capital (default: 100000) benchmark: Benchmark ticker (default: SPY) walk_forward: Enable walk-forward validation to detect overfitting position_sizing: "equal", "risk_parity", "vol_target", or "kelly" allow_short: Allow short selling

Inputs: strategy (required), universe, period_start, period_end, +5 more. Returns: result

batch_backtestA

Run a parameter sweep across strategy variations and rank them.

Args: base_strategy: Strategy template with {placeholders} (e.g. "Buy when RSI({period}) < {threshold}") parameter_grid: Dict of param name to list of values (e.g. {"period": [14, 21], "threshold": [25, 30, 35]}) universe: List of tickers or preset period_start: Start date YYYY-MM-DD period_end: End date YYYY-MM-DD capital: Starting capital rank_by: Metric to rank by — "sharpe_ratio", "total_return_pct", or "max_drawdown_pct"

Inputs: base_strategy (required), parameter_grid (required), universe, period_start, +3 more. Returns: result

clone_templateA

Clone a workflow template into your account.

Args: template_id: UUID of the template name: Name for your new workflow

Inputs: template_id (required), name (required). Returns: result

create_triggerA

Create an inbound webhook trigger for a workflow.

Returns a URL and secret that external services can POST to in order to fire the workflow.

Args: workflow_id: UUID of the workflow name: Human-readable name for the trigger

Inputs: workflow_id (required), name. Returns: result

create_workflowA

Create a new Vynn workflow.

Args: name: Workflow name (e.g. "Daily Market Brief") description: What this workflow does steps: Optional list of step dicts, each with 'name' and 'description' (the system prompt). Example: [{"name": "Research", "description": "Find top news for {topic}"}] email_recipients: Optional list of email addresses to send workflow output to after each execution. Example: ["maya@gmail.com", "bob@example.com"] email_subject: Optional custom email subject. Defaults to "Vynn: {workflow_name}".

Inputs: name (required), description (required), steps, email_recipients, +1 more. Returns: result

delete_scheduleB

Remove the schedule from a workflow.

Args: workflow_id: UUID of the workflow

Inputs: workflow_id (required). Returns: result

get_analyticsB

Get performance analytics for a workflow — success rates, latency, cost, model usage.

Args: workflow_id: UUID of the workflow

Inputs: workflow_id (required). Returns: result

get_model_recommendationA

Get AI-powered model recommendation for a workflow step based on performance data.

Args: workflow_id: UUID of the workflow step_id: UUID of the step

Inputs: workflow_id (required), step_id (required). Returns: result

get_runsB

Get recent run history for a workflow.

Args: workflow_id: UUID of the workflow limit: Number of runs to return (default 10)

Inputs: workflow_id (required), limit. Returns: result

get_run_summaryB

Get detailed summary of a specific workflow run.

Args: run_id: UUID of the run

Inputs: run_id (required). Returns: result

get_scheduleA

Get the current schedule for a workflow.

Args: workflow_id: UUID of the workflow

Inputs: workflow_id (required). Returns: result

get_workflowA

Get full details of a workflow including all steps and their configuration.

Args: workflow_id: UUID of the workflow

Inputs: workflow_id (required). Returns: result

list_available_toolsA

List all tools that can be attached to workflow steps (web search, code exec, etc).

Inputs: no named parameters. Returns: result

list_templatesA

List available workflow templates that you can clone.

Inputs: no named parameters. Returns: result

list_triggersB

List all webhook triggers for a workflow.

Args: workflow_id: UUID of the workflow

Inputs: workflow_id (required). Returns: result

list_workflowsA

List all your Vynn workflows with their steps and status.

Inputs: no named parameters. Returns: result

optimize_portfolioA

Optimize portfolio weights using mean-variance optimization.

Args: universe: List of tickers (e.g. ["AAPL", "MSFT", "GOOGL", "TSLA"]) method: "max_sharpe", "min_variance", "risk_budget", or "black_litterman" period_start: Start date YYYY-MM-DD period_end: End date YYYY-MM-DD long_only: Only allow long positions (default: true)

Inputs: universe (required), method, period_start, period_end, +1 more. Returns: result

optimize_promptA

Analyze recent failures and generate optimized prompt variants for a workflow step.

Uses LLM-powered analysis of inference logs to suggest better prompts. Returns up to 5 variants ranked by estimated improvement.

Args: workflow_id: UUID of the workflow step_id: UUID of the step to optimize

Inputs: workflow_id (required), step_id (required). Returns: result

run_workflowB

Execute a workflow with the given input and return results.

Args: workflow_id: UUID of the workflow to run input_text: The input text/prompt to feed into the workflow

Inputs: workflow_id (required), input_text (required). Returns: result

set_scheduleA

Schedule a workflow to run automatically on a cron schedule.

Args: workflow_id: UUID of the workflow cron_expression: Cron expression (e.g. "0 8 * * 1-5" for weekdays at 8am) default_input: The input text to use for each scheduled run timezone: Timezone for the schedule (default: UTC)

Inputs: workflow_id (required), cron_expression (required), default_input (required), timezone. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools target distinct actions or resources (e.g., create_workflow vs list_workflows, backtest vs batch_backtest). Minor overlap between optimize_prompt (generates variants) and apply_prompt_optimization (applies a prompt) but descriptions clarify the difference.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_workflow, set_schedule, list_triggers). No mixed conventions or irregular names.

    Tool Count3/5

    21 tools is above the typical well-scoped range (3-15). While each tool has a clear purpose, the number feels slightly heavy for a single server, especially covering both workflow management and trading optimization.

    Completeness3/5

    Workflow management lacks delete_workflow and update_workflow, leaving gaps in lifecycle coverage. Trading tools cover backtesting and optimization but are limited compared to a full trading platform. The set is functional but not fully comprehensive.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      A sophisticated MCP server providing advanced memory capabilities with RAG, hallucination detection, and enterprise-grade AI infrastructure for intelligent agent ecosystems.
      -
    • A
      license
      A
      quality
      C
      maintenance
      Local-first MCP server that gives any AI coding agent per-project memory, workflow intelligence, and always-on, lossless token & context optimization.
      37
      65 npm
      6
      MIT