@invinite-org/invinite-data-cli 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -77,6 +77,14 @@ Because environment and `.env` values take precedence over stored credentials,
77
77
 
78
78
  This repo includes plugins for AI coding tools that enable AI-powered financial data retrieval and analysis. Supports **Claude Code**, **OpenCode**, **Codex**, and **Copilot**.
79
79
 
80
+ ### Choose an integration
81
+
82
+ - **Standalone skill:** installs the Invinite workflow and CLI reference. It prefers MCP when connected and falls back to the local `invd` CLI.
83
+ - **Standalone MCP connector:** add `https://data.invinite.com/t/<teamId>/mcp` in Claude's connector settings, leave OAuth client ID/secret empty, and complete browser OAuth. This supplies tools but not the packaged research workflows.
84
+ - **Claude plugin:** bundles the skill, remote MCP connector, data agent, and research commands. During setup, enter the team ID shown in the team-pinned MCP URL in Invinite Data API settings; OAuth still uses Dynamic Client Registration and PKCE.
85
+
86
+ The team ID controls access, usage, and billing for MCP calls. CLI calls use the team selected by `invd login --team <teamId>` and do not inherit the plugin's connector setting.
87
+
80
88
  ### Quick install
81
89
 
82
90
  ```bash
@@ -123,6 +131,8 @@ npx @invinite-org/invinite-data-cli@latest plugin uninstall --all --global
123
131
  claude --plugin-dir /path/to/invinite-data-cli/claude-plugin
124
132
  ```
125
133
 
134
+ The Claude plugin also includes `compare-companies`, `analyze-filing`, and `ownership-review`. Its `.mcp.json` connects the team-pinned remote server automatically; use `/mcp` to complete OAuth or inspect connection status in Claude Code. In Claude web/Desktop, install the plugin through your organization's plugin marketplace, enter the team ID when prompted, and connect the bundled connector.
135
+
126
136
  ### Usage examples
127
137
 
128
138
  Use `/financial-research` for multi-step analysis:
@@ -1,11 +1,19 @@
1
1
  {
2
- "name": "invd",
2
+ "name": "invinite-financial-data",
3
3
  "description": "Fetch and analyze financial data using the Invinite Data API — company fundamentals, financial statements, SEC filings, institutional ownership, insider trades, and more.",
4
- "version": "0.1.0",
4
+ "version": "0.3.0",
5
5
  "author": {
6
- "name": "Outraday"
6
+ "name": "Invinite"
7
7
  },
8
8
  "homepage": "https://github.com/outraday-org/invinite-data-cli",
9
9
  "repository": "https://github.com/outraday-org/invinite-data-cli",
10
- "license": "ISC"
10
+ "license": "ISC",
11
+ "userConfig": {
12
+ "team_id": {
13
+ "type": "string",
14
+ "title": "Invinite team ID",
15
+ "description": "Team billed for Data API usage. Copy it from the team-pinned MCP URL in Invinite Data API settings.",
16
+ "required": true
17
+ }
18
+ }
11
19
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "invinite-financial-data": {
4
+ "type": "http",
5
+ "url": "https://data.invinite.com/t/${user_config.team_id}/mcp"
6
+ }
7
+ }
8
+ }
@@ -23,7 +23,7 @@ You are a financial data retrieval specialist. Your job is to fetch the requeste
23
23
  - Always use `--json` on every data command
24
24
  - **Before querying metrics (ratios, CAGR, or growth) or financial statements, first run `invd metadata metrics --json`** to discover the available metric identifiers. The responses from these endpoints use `metric_id` keys — you need the metadata to know what metrics exist and to correctly interpret the results. Run this as a first step alongside or before your main data queries.
25
25
  - **Before querying filing sections, first run `invd metadata section-ids --json`** to discover valid section IDs.
26
- - If a command fails with an authentication error, report it clearly and tell the caller that `INVINITE_DATA_API_KEY` must be set or `invd config set-key` must be run
26
+ - If a command fails with an authentication error, report it clearly and tell the caller to run `invd login`; `INVINITE_DATA_API_KEY` and `invd config set-key` remain manual fallbacks
27
27
  - If a company identifier is ambiguous, use `invd company search -q "<name>" --json` first to resolve it
28
28
  - For comparing companies, prefer `invd financials snapshot -i AAPL,MSFT,GOOGL -p annual --json` over individual queries
29
29
  - When fetching financial statements, default to `annual` period unless the request specifies otherwise
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Analyze a company's SEC filing for material changes, risks, management commentary, and evidence.
3
+ argument-hint: <ticker> [form type or research question]
4
+ ---
5
+
6
+ # Analyze SEC Filing
7
+
8
+ Analyze the filing requested in `$ARGUMENTS` using Invinite Data.
9
+
10
+ 1. Resolve the company and identify the relevant filing and accession number.
11
+ 2. Discover valid filing section IDs before requesting sections.
12
+ 3. Retrieve only the sections needed for the question, normally risk factors, MD&A, business, and financial statements.
13
+ 4. Separate direct filing evidence from your interpretation.
14
+ 5. Report the form type, filing date, accession number, and section for every material finding.
15
+ 6. Flag missing sections or unavailable periods instead of inferring their contents.
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Compare the financial performance, valuation, growth, and risks of two or more companies.
3
+ argument-hint: <tickers or company names> [focus]
4
+ ---
5
+
6
+ # Compare Companies
7
+
8
+ Compare the companies in `$ARGUMENTS` using Invinite Data.
9
+
10
+ 1. Resolve ambiguous company names with `company_search` or the equivalent `invd` command.
11
+ 2. Fetch available metric definitions before requesting financial metrics.
12
+ 3. Fetch company details, the latest annual standardized snapshot, profitability and valuation ratios, and five-year CAGR where available.
13
+ 4. Run independent reads in parallel when the active Claude surface supports it.
14
+ 5. Present a compact comparison table followed by the most material strengths, weaknesses, and data limitations.
15
+ 6. Cite the reporting periods used; do not mix annual and quarterly values without labeling them.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: Review institutional ownership, position changes, concentration, and insider trading for a company.
3
+ argument-hint: <ticker> [period or focus]
4
+ ---
5
+
6
+ # Review Ownership
7
+
8
+ Review ownership activity for `$ARGUMENTS` using Invinite Data.
9
+
10
+ 1. Resolve the company identifier.
11
+ 2. Fetch institutional holdings, institutional transactions, and insider trades for the requested period.
12
+ 3. Identify the largest holders, notable new or exited positions, and meaningful insider acquisitions or dispositions.
13
+ 4. Distinguish position value from share count and filing date from transaction date.
14
+ 5. Present concise tables and call out reporting-lag limitations in institutional filings.
@@ -1,21 +1,51 @@
1
1
  ---
2
- name: invinite-data-cli
3
- description: Fetch financial data using the Invinite Data API CLI. Use this skill whenever the user wants to look up company information, financial statements, SEC filings, institutional ownership, insider trades, IPO data, market holidays, financial metrics, or any stock/company-related data. Also use when the user mentions tickers, CIKs, balance sheets, income statements, cash flows, 10-K, 10-Q, ratios, CAGR, growth rates, dividends, stock splits, or institutional holdings — even if they don't mention "Invinite" by name.
2
+ name: invinite-financial-data
3
+ description: Fetch financial data through the Invinite Data API MCP connector or invd CLI. Use whenever the user wants company information, financial statements, SEC filings, institutional ownership, insider trades, IPO data, market holidays, financial metrics, or other stock/company data, including requests mentioning tickers, CIKs, balance sheets, income statements, cash flows, 10-K, 10-Q, ratios, CAGR, growth rates, dividends, stock splits, or institutional holdings.
4
4
  allowed-tools: Bash(invd *)
5
5
  ---
6
6
 
7
- # Invinite Data API CLI
7
+ # Invinite Data API
8
8
 
9
- The `invd` CLI provides access to comprehensive financial data from the Invinite Data API. Always use `--json` when fetching data for analysis — it returns structured JSON you can pipe to `jq` or parse programmatically.
9
+ Use the connected Invinite Data API MCP tools when available. Fall back to the `invd` CLI when MCP is unavailable. Both transports access the same team-billed Data API.
10
+
11
+ ## Transport selection
12
+
13
+ 1. Prefer MCP tools when an Invinite Data connector is available. Call the direct domain tool matching the request; unlike the Web API MCP server, the Data API MCP server does not use meta-tools such as `call_endpoint`.
14
+ 2. Use the CLI examples below when MCP is unavailable or when the user explicitly requests CLI usage. Always pass `--json` for data used in analysis.
15
+ 3. Do not mix transports merely to repeat a successful request.
16
+
17
+ ### MCP and CLI mapping
18
+
19
+ | Data need | MCP tool | CLI command family |
20
+ |---|---|---|
21
+ | Search/details/list | `company_search`, `company_details`, `available_companies` | `invd company ...` |
22
+ | Dividends/periods/splits | `company_dividends`, `company_fiscal_periods`, `company_splits` | `invd company ...` |
23
+ | Standardized statements/snapshots | `standardized_financial_statement`, `standardized_financial_snapshot` | `invd financials ...` |
24
+ | As-reported statements/snapshots | `as_reported_financial_statement`, `as_reported_financial_snapshot` | `invd financials ... --as-reported` |
25
+ | Ratios/growth/CAGR | `financial_ratios`, `financial_growth`, `financial_cagr` | `invd metrics ...` |
26
+ | Segment data | `segmented_financials` | `invd segments ...` |
27
+ | SEC filings/search/sections | `sec_filings`, `sec_filings_search`, `sec_filing_sections` | `invd filings ...` |
28
+ | Filing and metric discovery | `sec_available_form_types`, `list_available_section_ids`, `list_available_metrics` | `invd filings form-types`, `invd metadata ...` |
29
+ | Institutional ownership | `holdings_by_company`, `holdings_by_investor`, `institutional_investors`, `institutional_transactions` | `invd ownership ...` |
30
+ | Insider trades/IPOs/holidays | `insider_trades`, `ipos`, `market_holidays` | `invd insider-trades`, `invd ipos`, `invd market ...` |
31
+
32
+ The discovery rules below apply to both transports: call `list_available_metrics` before ratios, growth, CAGR, or financial-statement analysis, and call `list_available_section_ids` before requesting filing sections.
10
33
 
11
34
  ## Prerequisites
12
35
 
13
- The CLI must be installed (`npm install -g @invinite-org/invinite-data-cli`) and authenticated. Authentication is resolved in this order:
36
+ ### MCP
37
+
38
+ Connect `https://data.invinite.com/t/<teamId>/mcp` through OAuth. The team in the URL controls data billing. Leave OAuth client ID and secret empty so the client uses Dynamic Client Registration and PKCE.
39
+
40
+ ### CLI
41
+
42
+ Install the CLI with `npm install -g @invinite-org/invinite-data-cli`, then run `invd login` or `invd login --team <teamId>`. Authentication is resolved in this order:
14
43
  1. `INVINITE_DATA_API_KEY` environment variable
15
- 2. OS keychain (via optional `keytar`)
16
- 3. Stored config (set via `invd config set-key`)
44
+ 2. `.env` file
45
+ 3. OS keychain (via optional `keytar`)
46
+ 4. Stored config
17
47
 
18
- If a command fails with an auth error, tell the user to run `invd config set-key` or set `INVINITE_DATA_API_KEY`.
48
+ If an MCP call fails with an auth error, reconnect the connector and complete OAuth. If a CLI call fails with an auth error, run `invd login`; manual `invd config set-key` and `INVINITE_DATA_API_KEY` remain supported fallbacks.
19
49
 
20
50
  ## Global Options
21
51
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invinite-org/invinite-data-cli",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "type": "module",
5
5
  "description": "CLI for the Invinite Data API",
6
6
  "publishConfig": {