{"protocolVersion":"2025-06-18","serverInfo":{"name":"secapi","version":"0.2.0"},"capabilities":{"tools":{"listChanged":false},"resources":{"listChanged":false,"subscribe":false},"prompts":{"listChanged":false}},"distribution":{"transport":{"type":"streamable-http","url":"https://api.secapi.ai/mcp"},"auth":{"preferred":"oauth","supported":["oauth","x-api-key"],"apiKeyHeader":"x-api-key","protectedResourceMetadataUrl":"https://api.secapi.ai/.well-known/oauth-protected-resource","authorizationServerMetadataUrl":"https://api.secapi.ai/.well-known/oauth-authorization-server","note":"OAuth discovery is configured for hosted MCP clients. Org-scoped API keys remain available for machine access."},"clients":{"claudeCode":{"addCommand":"claude mcp add --transport http secapi https://api.secapi.ai/mcp --header \"x-api-key: $SECAPI_API_KEY\"","note":"Set SECAPI_API_KEY to an org-scoped API key before running the add command. If your environment supports OAuth, you can complete OAuth instead."},"claudeDesktop":{"config":{"type":"http","url":"https://api.secapi.ai/mcp","headers":{"x-api-key":"${SECAPI_API_KEY}"}},"note":"Add this as mcpServers.secapi in claude_desktop_config.json. Use an environment variable reference rather than a literal key when sharing config."},"cursor":{"config":{"url":"https://api.secapi.ai/mcp","headers":{"x-api-key":"${env:SECAPI_API_KEY}"}},"note":"Add this under Cursor Settings > MCP or in mcp.json for remote streamable HTTP MCP usage. Cursor resolves ${env:SECAPI_API_KEY} from your shell or system environment."},"windsurf":{"config":{"serverUrl":"https://api.secapi.ai/mcp","headers":{"x-api-key":"${env:SECAPI_API_KEY}"}},"note":"Add this under mcpServers.secapi in Windsurf's MCP config. Windsurf uses ${env:SECAPI_API_KEY} for environment interpolation."},"project":{"config":{"type":"http","url":"https://api.secapi.ai/mcp","headers":{"x-api-key":"${SECAPI_API_KEY}"}},"note":"Add this as mcpServers.secapi in a project-scoped .mcp.json. Keep SECAPI_API_KEY out of source control."},"generic":{"url":"https://api.secapi.ai/mcp","headers":{"x-api-key":"${SECAPI_API_KEY}"}}},"docs":{"agentsUrl":"https://secapi.ai/agents","gettingStartedUrl":"https://docs.secapi.ai/getting-started","mcpWorkflowsUrl":"https://docs.secapi.ai/mcp-workflows","authUrl":"https://api.secapi.ai/docs/auth/mcp"},"bootstrap":{"sponsorTokenUrl":"https://api.secapi.ai/v1/agent/bootstrap_tokens","machineBootstrapUrl":"https://api.secapi.ai/v1/agent/bootstrap","note":"Human operators mint a short-lived sponsor token first. Agents exchange that token for an org-scoped API key and MCP install metadata."},"capabilitiesSummary":{"tools":["tools.search","tools.describe","entities.resolve","filings.search","filings.latest","filings.render","filings.export","sections.get","sections.search","facts.get","statements.get","owners.get_13f","owners.compare_13f","owners.institutional_holders","insiders.list","situations.list","situations.search","situations.get","situations.by_form","situations.issues","situations.issue","situations.filings","situations.summary","situations.export","situations.watch","situations.underwrite","situations.feed","situations.calendar","situations.stats","situations.performance","fund_letters.list","fund_letters.get","fund_letters.theses","fund_letters.managers","fund_letters.manager_overview","fund_letters.document","fund_letters.search","fund_letters.semantic","fund_letters.changes","forms.list_144","comp.list","comp.compare","artifacts.bundle","market.search","market.snapshots","macro.indicators","macro.search","macro.releases","macro.calendar","macro.forecasts","macro.credit_ratings","factors.catalog","factors.returns","factors.history","factors.sparklines","factors.correlations","factors.extreme_moves","factors.extreme_pairs","factors.exposures","factors.bulk_returns","factors.pair_spread","factors.regime_performance","portfolio.analyze","portfolio.attribution","portfolio.hedge","portfolio.optimize","portfolio.stress_test","portfolio.stress_scenarios","models.factor_analysis","model_portfolios.factor_view","intelligence.query","exports.create","exports.get","companies.financials","companies.ratios","companies.income_statements","companies.balance_sheets","companies.cash_flow_statements","companies.overview","macro.high_signal_pack","macro.regimes","macro.country_report","macro.investment_briefing","macro.status","factors.macro_sensitivity","factors.dashboard","factors.decomposition","factors.related_stocks","intelligence.footnotes","events.voting_results","dilution.events.list","dilution.events.get","dilution.warrants.list","dilution.convertibles.list","dilution.rofr.list","dilution.lockups.list","dilution.cash_position.list","dilution.corporate_actions.list","dilution.nasdaq_compliance.list","dilution.ratings.list","dilution.reverse_splits.list","dilution.score.get","dilution.share_float_history.list","dilution.coverage.get","signals.dilution.get","signals.dilution.enhanced.get"],"coreTools":["tools.search","tools.describe","entities.resolve","filings.search","filings.latest","sections.get","facts.get","statements.get","owners.get_13f","owners.institutional_holders","insiders.list","comp.list","market.snapshots","macro.indicators","factors.exposures","portfolio.analyze","intelligence.query","companies.financials","companies.overview","factors.dashboard","dilution.score.get"],"prompts":["analyze-company-in-context","company-due-diligence","decompose-return-and-hedge","investigate-filing-footnotes","make-portfolio-factor-neutral","track-insiders-and-13fs","track-special-situations","use-live-factor-dashboard","write-country-regime-report"],"resourceTemplates":["sec://entities/{ticker_or_cik}","sec://filings/latest/{ticker_or_cik}/{form}","sec://sections/latest/{ticker_or_cik}/{form}/{section_key}","sec://statements/{ticker_or_cik}/{statement_key}/{period}","sec://13f/{cik}","sec://market/snapshot/{symbol}","sec://macro/{country}/{indicator_key}","sec://macro/search/{query}","sec://macro/calendar/{country}","sec://macro/report/{country}","sec://macro/status/{country}","sec://macro/briefing/{country}","sec://portfolio/stress-scenarios","sec://factors/returns/{factor_key}","sec://intelligence/company/{ticker_or_cik}"],"startHere":"SECAPI exposes 106 tools across 25 namespaces (SEC filings, sections, facts, statements, ownership, insiders, compensation, market, macro, factors, portfolio, dilution, fund letters, intelligence). To find the right tool without loading every schema: call `tools.search` with a natural-language query; or `tools/list` with params {\"filter\":\"core\"} for the 21 most-common tools; or {\"filter\":\"<namespace>\"} (e.g. \"factors\") to scope by domain. Use `tools.describe` for exact input schemas. Read tool annotations before calling a stateful tool such as situations.watch.","toolListFilters":{"default":"all","supported":["core","<namespace>"],"usage":"Call tools/list with params {\"filter\":\"core\"} for the most-common tools, or {\"filter\":\"factors\"} to scope to one namespace."},"toolResultContentModes":{"default":"full","supported":["full","minimal"],"minimal":"Set params.content_mode='minimal' on tools/call to keep structuredContent and replace duplicate text content with a small sentinel."},"responseControls":{"fields":"Set params.fields on tools/call to a comma list of dotted paths (e.g. 'identity.ticker,financialSnapshot.revenue') to trim the text content to just those fields (the envelope is retained). structuredContent stays canonical/full so typed clients and outputSchema validation are unaffected.","responseFormat":{"default":"json","supported":["json","table","csv"],"note":"Set params.response_format='table' (compact columnar) or 'csv' on tools/call to shrink the text content of list results 30-90%. structuredContent stays canonical JSON."},"suggestNext":"Tool results include _meta.nextActions — anticipatory follow-up tool suggestions. On by default; set params.suggest_next=false to omit.","narrative":"Set params.narrative=true on tools/call to add a one-line natural-language summary (_meta.narrative) for supported tools (e.g. companies.overview, dilution.score.get)."}}}}