@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 +10 -0
- package/claude-plugin/.claude-plugin/plugin.json +12 -4
- package/claude-plugin/.mcp.json +8 -0
- package/claude-plugin/agents/invinite-data.md +1 -1
- package/claude-plugin/commands/analyze-filing.md +15 -0
- package/claude-plugin/commands/compare-companies.md +15 -0
- package/claude-plugin/commands/ownership-review.md +14 -0
- package/claude-plugin/skills/invinite-data-cli/SKILL.md +38 -8
- package/package.json +1 -1
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": "
|
|
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.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"author": {
|
|
6
|
-
"name": "
|
|
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
|
}
|
|
@@ -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
|
|
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
|
|
3
|
-
description: Fetch financial data
|
|
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
|
|
7
|
+
# Invinite Data API
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
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.
|
|
16
|
-
3.
|
|
44
|
+
2. `.env` file
|
|
45
|
+
3. OS keychain (via optional `keytar`)
|
|
46
|
+
4. Stored config
|
|
17
47
|
|
|
18
|
-
If
|
|
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
|
|