From carta-cap-table
Query cap table data for one or more companies. Use when asked about cap tables, ownership breakdown, share classes, stakeholder holdings, portfolio-wide analysis, comparing companies, or finding patterns across multiple entities.
npx claudepluginhub carta/plugins --plugin carta-cap-tableThis skill uses the workspace's default tool permissions.
Fetch and present cap table data for a single company or across multiple companies.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Fetch and present cap table data for a single company or across multiple companies.
For a single company, fetch both views and present with a bar chart:
fetch("cap_table:get:cap_table_by_share_class", {"corporation_id": corporation_id})
fetch("cap_table:get:cap_table_by_stakeholder", {"corporation_id": corporation_id})
Present in this exact order — do not skip any step:
Bar chart — MANDATORY. You MUST render this after the tables. Do not skip it.
Use the stakeholder data to render an ASCII ownership bar chart. Steps:
bar_width = round(pct / max_pct * 40), minimum 1 blockExample output (you MUST produce something like this):
Ownership (Fully Diluted)
Option Pool ████████████████████████████████████████ 71.8%
Lead Investor ████████ 7.8%
Founder A ████ 4.0%
Founder B ████ 3.9%
Other Investor ███ 2.6%
Others ████ 9.9%
corporation_id from list_accountscorporation_pk accounts from list_accountslist_accounts — get all accessible entities| Data | Command |
|---|---|
| 409A valuations | fetch("cap_table:get:409a_valuations", {"corporation_id": corporation_id}) |
| SAFEs & convertible notes | fetch("cap_table:get:convertible_notes", {"corporation_id": corporation_id}) |
| Pro-forma models | fetch("cap_table:get:pro_forma_models", {"corporation_id": corporation_id}) |
| Cap table by share class | fetch("cap_table:get:cap_table_by_share_class", {"corporation_id": corporation_id}) |
| Option grants | fetch("cap_table:list:grants", {"corporation_id": corporation_id}) |
From list_accounts:
id: format corporation_pk:<id> — extract the number for company-level commandsaccountType: "company" accounts work with all commands; "portfolio" and "investment firm" are organizations, not companiesname: company display nameThere is no single "portfolio query" endpoint. Instead:
list_accounts to get all accessible entitiescompany, fund, investment firm, law firm, portfolio)corporation_id from each account's id field (strip the corporation_pk: or organization_pk: prefix)corporation_pk accounts work with company-level commands (cap table, grants, SAFEs, valuations). organization_pk accounts are portfolios/firms.1. list_accounts → get all corporation_pk accounts
2. For each corporation_id:
fetch("cap_table:get:409a_valuations", {"corporation_id": corporation_id})
3. For each result, check if the most recent expiration_date is within 90 days of today
4. Present:
| Company | Current FMV | Effective | Expires | Days Left |
|---|---|---|---|---|
| Acme Corp | $12.61 | 04/25/2024 | 04/24/2025 | 37 |
| Beta Inc | $5.00 | 01/15/2024 | 01/14/2025 | EXPIRED |
1. list_accounts → get all corporation_pk accounts
2. For each corporation_id:
fetch("cap_table:get:cap_table_by_share_class", {"corporation_id": corporation_id})
3. Extract option plan available_ownership percentage
4. Flag companies with available pool < 5%