just-signal

Keyless MCP for Just Signal: live quotes, report publishing, scorecard, and Chophouse panel grades.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
77%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_stock_quote' description lacks action verbin get_stock_quote

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~759Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.59% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "just-signal": {
      "command": "npx",
      "args": [
        "just-signal-mcp"
      ]
    }
  }
}

Runnable packages

npmjust-signal-mcp1.3.0stdio

Remote endpoints

https://www.ou-reports.com/api/mcp.phpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_stock_quote(ticker)

Live stock/ETF quote (price + % change) via Just Signal's market-data relay. Establishes a ticker's Day-0 baseline before projecting.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "US ticker, e.g. NVDA"
    }
  },
  "required": [
    "ticker"
  ]
}
🟡publish_report(briefingTitle, executiveSummary, sectors, token, durationSeconds, ...)

Ground, render, and PUBLISH a Just Signal briefing to the public library. Grounds each ticker's live Day-0 price and computes exact dollar targets from your % projections. Targets MUST be percentages ("+18%") or multiples ("2.5x"), never dollars. assetOrSector: "Name (TICKER)" or "(PRIVATE)" for relative basis. Open to community contributions: the server itself renders every report, and tokenless publishing is rate-limited per day.

Input Schema

{
  "type": "object",
  "properties": {
    "briefingTitle": {
      "type": "string"
    },
    "executiveSummary": {
      "type": "string"
    },
    "sectors": {
      "type": "string",
      "description": "Short topic label — becomes the report filename keywords"
    },
    "token": {
      "type": "string",
      "description": "Optional owner token; bypasses the daily community rate limits"
    },
    "durationSeconds": {
      "type": "number"
    },
    "trends": {
      "type": "array",
      "minItems": 1,
      "maxItems": 8,
      "items": {
        "type": "object",
        "required": [
          "title",
          "assetOrSector",
          "target1Y",
          "target5Y",
          "target10Y"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "hook": {
            "type": "string"
          },
          "signal": {
            "type": "string",
            "enum": [
              "bullish",
              "bearish",
              "neutral"
            ]
          },
          "qualitativeAnalysis": {
            "type": "string"
          },
          "quantitativeAnalysis": {
            "type": "string"
          },
          "assetOrSector": {
            "type": "string"
          },
          "target1Y": {
            "type": "string"
          },
          "target5Y": {
            "type": "string"
          },
          "target10Y": {
            "type": "string"
          },
          "keyRisks": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "narrative": {
            "type": "string"
          },
          "instruments": {
            "type": "array",
            "maxItems": 6,
            "description": "Optional 3-4 additional vehicles for this trend (ETF, leader, picks-and-shovels, contrarian) - richness parity with app-published briefings",
            "items": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "ticker": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "description": "e.g. Stock, ETF, REIT, Fund"
                },
                "access": {
                  "type": "string",
                  "description": "PUBLIC unless genuinely accredited-only"
                }
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "briefingTitle",
    "executiveSummary",
    "sectors",
    "trends"
  ]
}
🟢list_reports(limit)

List recent Just Signal reports from the public library (newest first).

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number"
    }
  }
}
🟢get_scorecard

Audit past signals: projected vs actual return for every grounded ticker, graded AHEAD / TRACKING / BEHIND, pro-rated by elapsed time.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_panel_grade(ticker)

The Investment Panel's read on one ticker: its Chophouse doneness grade (RAW..CHARRED, how much value is already cooked in) plus every seat's vote across 11 emulated investor lenses, with the registry verdict for context. The panel advises, the reader decides. Says so if the ticker is not plated yet.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "US ticker, e.g. NVDA"
    }
  },
  "required": [
    "ticker"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools