Skip to content

Optional invinoveritas /review MCP server for second-opinion verdicts in the guard pipeline #204

@babyblueviper1

Description

@babyblueviper1

TL;DR

The guard pipeline currently runs deterministic checks (size, cooldown, whitelist) before order push. I've been building a Lightning-paid MCP server that adds a structured LLM second-opinion verdict on the same proposal — verdict types approve | approve_with_concerns | reject with ranked issues and confidence score. Wanted to surface it as a drop-in .mcp.json entry since the integration shape happens to fit your existing template format exactly.

Edit 2026-05-22: corrected the cost-shape section and softened the "capital-scale-aware" claim — include_trading_state is exposed on the MCP review tool but is a no-op for accounts without a registered internal trading state (so it's mostly a future hook, not the current external value prop).

Why this might slot in

Your mcp.json templates already speak streamable-http and the workspaces UI lets users enable/disable MCP servers without code changes. The verdict tool is a single new entry. The review MCP tool takes an artifact (a trade proposal, plan, config change, or arbitrary string), an artifact_type enum, optional context and concerns strings, and returns a structured {verdict, confidence, issues[]} JSON.

This is meant to complement the existing guard pipeline (which catches the structural violations cleanly) by adding a slower, paid, model-graded check on the agent's reasoning itself — not to replace any of the local rules.

Drop-in .mcp.json entry

{
  "mcpServers": {
    "invinoveritas": {
      "type": "streamable-http",
      "url": "https://api.babyblueviper.com/mcp",
      "headers": {
        "Authorization": "Bearer ${INVINOVERITAS_KEY}"
      }
    }
  }
}

The Claude Agent SDK path you ship by default picks this up without any code changes. Vercel AI SDK users hit it via their existing MCP client.

Cost shape (honest)

  • POST /register (free): returns a Bearer token + 250 non-withdrawable starter sats.
  • /review MCP tool: ~260 sats minimum per call (1 sat / 100 chars on top of base).
  • The 250 starter sats are enough for one /reason (~100 sats) but not one /review. To actually try /review you'd need to top up ~1k sats via Lightning (POST /topup returns a bolt11 invoice).
  • Auth: Bearer (recommended for an agent loop) or L402 (one-shot pay-per-call).

On license

The MCP server is hosted infrastructure, so users adding the .mcp.json entry pull in zero new code into your tree — no AGPL implications. If anyone later wanted a native TS helper that wraps the verdict in your decision model, I'd ship that as a separate package rather than upstreaming into core, to keep your AGPL boundary clean.

Maintainer questions

  1. Is there an existing convention for "optional paid tool" entries — separate workspace template, env-gated entry, or just listed alongside openalice/openalice-workspace?
  2. Anyone running a paper-trading loop right now who'd want to feed a few historical trader-agent proposals through and compare verdicts?
  3. Would a short docs note (e.g. docs/optional-tools/invinoveritas.md) be welcomed as a follow-up PR, or do you prefer external docs?

Happy to iterate the framing either way. The server is up and accepting calls now; if anyone wants to try it the /register flow is one POST.


References:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions