_ registry / mcp http-sse · checked 1h ago

stockportfolio-mcp

https://www.stockportfolio.pro

Registry code: 7d762618f0791e7d

api record

StockPortfolio.pro returns SEC filing data for US-listed public companies. If a company name is ambiguous, call search_companies first and use the exact ticker it returns. get_company_fundamentals returns financial statements by fiscal period, each value carrying the SEC filing that reports it. get_recent_filings lists each covered company’s most recent report and earnings release, get_filing_changes compares a company’s two most recent filings of the same form, and get_red_flags returns warning signs computed from filed statements. A value that was not reported is null and is never…

endpoint
https://www.stockportfolio.pro/mcp
protocol
http-sse ·2025-06-18
authentication
bearer
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is stockportfolio-mcp live?
Yes — it answered the hub's last check (checked 1h ago). It answered 98% of checks over the last 30 days.
Is stockportfolio-mcp free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does stockportfolio-mcp have?
9 tools: sp_health, get_red_flags, search_companies, search_filings, get_recent_filings, get_company_fundamentals, get_filing, ask_filings, ….
Is stockportfolio-mcp safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
98%

90 days 98.5%· all time 98.5%

latency
424ms

last good check

priced tools
0

of 9 tools

_ answered our checks, 90 days 390 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • get us company financial statements
  • search sec filings
  • ask questions about a company's filings
takes → gives
text → data, text
tools
6 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 9 tools
1 open8 auth-required 9 of 9 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • sp_health reads open 5h ago

    Liveness probe: reports the server version and the number of tools. Safe to call before any other tool and useful for verifying a connection. Free: needs no account and consumes no allowance.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_red_flags auth-required 13h ago

    Conservative warning signs computed from a company’s filed statements — receivables or inventory outrunning sales, earnings ahead of cash, dilution, heavy debt, shrinking margins — each with the filed figures behind it. A missing figure never raises a flag, and nothing here is a judgement or advice. Costs one data lookup.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ticker"
      ],
      "properties": {
        "ticker": {
          "type": "string",
          "description": "US ticker, e.g. NVDA or AAPL."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • search_companies reads auth-required 13h ago

    Resolve a company name or ticker to the US-listed company it refers to, returning ticker, company name and SEC CIK. Use this first when a company is named ambiguously, when only a name is known, or before another tool when the ticker is uncertain. Reads a bundled company catalog and returns no financial data and no filing content. Costs one data lookup.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 25,
          "minimum": 1,
          "description": "Maximum number of matches to return."
        },
        "query": {
          "type": "string",
          "description": "Company name or ticker, e.g. \"Apple\", \"AAPL\" or \"Berkshire\"."
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • search_filings reads auth-required 13h ago

    Find SEC filings for one company by filing type and date range. Returns each filing’s form, filing date, fiscal period, accession number, SEC document description and a direct filing URL. Use this to locate a 10-K, 10-Q, 8-K, 20-F or proxy, or to answer "when did they last file X". This searches filing metadata, not the text inside filings — use get_filing for the text.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ticker"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 25,
          "minimum": 1,
          "description": "Maximum number of filings to return."
        },
        "ticker": {
          "type": "string",
          "description": "US ticker, e.g. AAPL."
        },
        "end_date": {
          "type": "string",
          "description": "Optional latest filing date (YYYY-MM-DD)."
        },
        "start_date": {
          "type": "string",
          "description": "Optional earliest filing date (YYYY-MM-DD)."
        },
        "filing_type": {
          "type": [
            "string",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "Optional filing type or types, e.g. \"10-K\" or [\"10-Q\",\"8-K\"]."
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • get_recent_filings auth-required 5h ago

    List what is newly filed across covered companies: each company’s MOST RECENT annual (10-K/20-F/40-F), quarterly (10-Q) and earnings-release filing from a date window — not every filing. Each row carries the form, filing date, period end and filing URL, and whether that period appears in the company’s financial statements. Filter by kind and ticker. Costs one data lookup.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "kinds": {
          "type": "array",
          "items": {
            "enum": [
              "quarterly",
              "annual",
              "earnings_release"
            ],
            "type": "string"
          },
          "description": "Kinds to include. Defaults to all three."
        },
        "limit": {
          "type": "integer",
          "default": 25,
          "maximum": 100,
          "minimum": 1,
          "description": "Maximum rows to return."
        },
        "since": {
          "type": "string",
          "description": "Earliest filing date (YYYY-MM-DD). Defaults to 7 days ago and never reaches further back than 92 days."
        },
        "tickers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional tickers, restricting the result to those companies."
        }
      },
      "additionalProperties": false
    }
    arguments 36 lines
  • get_company_fundamentals reads auth-required 10h ago

    Return one US-listed company’s financial statements by fiscal period: revenue, gross profit, operating income, net income, diluted EPS, free cash flow, cash, debt and shares outstanding. Every figure carries its fiscal period and the SEC filing that reports it (form, filing date, accession number and source URL). Defaults to the five most recent annual periods. A figure the company did not report is null and is never estimated or annualised. Use get_filing or ask_filings when the question is about what a filing says rather than about reported numbers.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ticker"
      ],
      "properties": {
        "year": {
          "type": "integer",
          "maximum": 2100,
          "minimum": 1990,
          "description": "Optional fiscal year to restrict the result to, e.g. 2024. Use this instead of periods when a specific year was asked for."
        },
        "ticker": {
          "type": "string",
          "description": "US ticker, e.g. NVDA or AAPL."
        },
        "metrics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional metric ids to return instead of the default set, e.g. [\"revenue\",\"net_income\"]. An id outside the catalog is an error."
        },
        "periods": {
          "type": "integer",
          "default": 5,
          "maximum": 20,
          "minimum": 1,
          "description": "Number of most recent periods to return. Ignored when year is given."
        },
        "period_type": {
          "enum": [
            "annual",
            "quarterly"
          ],
          "type": "string",
          "default": "annual",
          "description": "Fiscal period type."
        }
      },
      "additionalProperties": false
    }
    arguments 42 lines
  • get_filing reads auth-required 5h ago

    Read one SEC filing — its metadata plus short excerpts of its text. Identify it by accession number (preferred, as returned by search_filings), or by ticker with an optional filing type, which defaults to the company’s latest 10-K. Request a named section such as "Risk Factors", "MD&A" or "Legal Proceedings", or search the filing for a term. Returns excerpts with their section and the filing URL, not the whole document. Use get_company_fundamentals for reported numbers.

    mcp-tool

    {
      "type": "object",
      "anyOf": [
        {
          "required": [
            "accession_number"
          ]
        },
        {
          "required": [
            "ticker"
          ]
        }
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "Optional term to find inside the filing; excerpts around each match are returned."
        },
        "ticker": {
          "type": "string",
          "description": "US ticker. Required when accession_number is not given, optional otherwise."
        },
        "section": {
          "type": "string",
          "description": "Optional section name, e.g. \"Risk Factors\", \"MD&A\", \"Business\", \"Legal Proceedings\"."
        },
        "max_chars": {
          "type": "integer",
          "default": 4000,
          "maximum": 12000,
          "minimum": 500,
          "description": "Maximum characters per excerpt or section."
        },
        "filing_type": {
          "type": "string",
          "description": "Optional filing type when no accession number is given, e.g. 10-K, 10-Q or 8-K. Defaults to the latest 10-K."
        },
        "max_excerpts": {
          "type": "integer",
          "default": 3,
          "maximum": 8,
          "minimum": 1
        },
        "accession_number": {
          "type": "string",
          "description": "SEC accession number, e.g. 0000320193-25-000079. Enough on its own — the company is derived from it."
        }
      },
      "additionalProperties": false
    }
    arguments 51 lines
  • ask_filings reads auth-required 10h ago

    Ask a question about one US-listed company and get an answer researched from its SEC filings, with the SEC filing URLs it drew on. Use this when the question needs reasoning over filing content — what management said about margins, why a segment declined, what the risk factors are — rather than a single reported number, for which get_company_fundamentals is faster and exact. The answer states what it could not source rather than estimating, and its figures can be checked against the cited filings. Metered: consumes the account’s allowance. Not investment advice. Needs a StockPortfolio.pro account on a plan with API/MCP access.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ticker",
        "question"
      ],
      "properties": {
        "ticker": {
          "type": "string",
          "description": "US ticker the question is about, e.g. NVDA."
        },
        "question": {
          "type": "string",
          "description": "The question, in natural language."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • get_filing_changes auth-required 10h ago

    What changed between a company’s newest 10-K/10-Q/20-F/40-F and its previous filing of the same form: guidance and outlook language, risk factors, demand and margin commentary, quoted from both documents and checked against them. The first comparison for a filing pair can take 30–60 seconds; later calls are served from the cache. Needs a signed-in StockPortfolio.pro account. Metered like ask_filings: consumes the account’s allowance.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ticker"
      ],
      "properties": {
        "ticker": {
          "type": "string",
          "description": "US ticker, e.g. NVDA or AAPL."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 7d762618f0791e7d.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/7d762618f0791e7d/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/7d762618f0791e7d/badge.svg)](https://brick.blue/agent/7d762618f0791e7d?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.