MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
First-time openInvest installation and onboarding. An agent skill from longsizhuo/openInvest.
$ npx skills add longsizhuo/openInvest --skill invest-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install longsizhuo/openInvest invest-setup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/longsizhuo/openInvest.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/invest-setup .claude/skills/invest-setup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "invest-setup" agent skill from https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setup into .claude/skills/invest-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invest-setup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add longsizhuo/openInvest --skill invest-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install longsizhuo/openInvest invest-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/longsizhuo/openInvest.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugin/skills/invest-setup .agents/skills/invest-setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "invest-setup" agent skill from https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setup into .agents/skills/invest-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invest-setup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add longsizhuo/openInvest --skill invest-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install longsizhuo/openInvest invest-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/longsizhuo/openInvest.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugin/skills/invest-setup .cursor/skills/invest-setup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "invest-setup" agent skill from https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setup into .cursor/skills/invest-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invest-setup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/longsizhuo/openInvest.git --path plugin/skills/invest-setup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add longsizhuo/openInvest --skill invest-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install longsizhuo/openInvest invest-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/longsizhuo/openInvest.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugin/skills/invest-setup .gemini/skills/invest-setup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "invest-setup" agent skill from https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setup into .gemini/skills/invest-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invest-setup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install longsizhuo/openInvest invest-setupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add longsizhuo/openInvest --skill invest-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/longsizhuo/openInvest.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugin/skills/invest-setup .github/skills/invest-setup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "invest-setup" agent skill from https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setup into .github/skills/invest-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invest-setup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add longsizhuo/openInvest --skill invest-setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install longsizhuo/openInvest invest-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/longsizhuo/openInvest.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugin/skills/invest-setup .opencode/skills/invest-setup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "invest-setup" agent skill from https://github.com/longsizhuo/openInvest/tree/main/plugin/skills/invest-setup into .opencode/skills/invest-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invest-setup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
invest-setupFirst-time openInvest installation and onboarding. An agent skill from longsizhuo/openInvest.
Invest Setup is an agent skill from longsizhuo/openInvest. First-time openInvest installation and onboarding. ONLY use when user explicitly says "set up invest" / "init invest" / "帮我初始化 invest", OR when invest skill's doctor returns status="needssetup". NOT for daily usage — once onboarding is done, the invest skill takes over (portfolio viewing, committee analysis, buy/sell tracking). Wraps run.sh init --from-stdin with the canonical 5-question flow.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `CHANGELOG.md`, `README.md` and `references/onboarding-detailed.md`).
It sits in Agent Workflows. The repository describes itself as: Research-grade investment decision engine for AI agents: isolated multi-agent committee, auditable verdicts, backtests with lookahead protection, published negative results. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 220abd2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
INVEST_API_TOKENLLM_API_KEYDEEPSEEK_API_KEYEMAIL_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Invest Setup loads about 2.7k tokens when it runs, and up to ~2.8k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 1,306 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
2. Write the answers into `$INVEST_HOME/.env` (only these two or three lines areA: When editing `.env`, **the model name must change too**:Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from longsizhuo/openInvest at commit 220abd2, republished under its MIT licence (© longsizhuo). 1,306 words, ~2,744 tokens.
.claude/skills/invest-setup/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Single responsibility: turn an empty openInvest deployment into a working one.
Triggers only on the user's first-time setup — run once, then step aside (the
invest skill takes over all day-to-day interaction).
invest skill's doctor returns status: "needs_setup" (memory / user_profile missing)--force): on an existing install --force only updates name and risk tolerance in user.md — holdings, tracking, strategy and history stay as they are; change allocations with set_allocations, caps and tracking with track_asset / untrack_assetdoctor's portfolio_schema check says needs_migration (an
install made by an older version; status shows cash 0). Run the exact command in that
check's hint — it backs up portfolio.md and converts it. Do not rerun init for thisdoctor returns status: "ready") → switch to the invest skillinvest skillinvest skill's POST /api/holdings endpointIf you (the agent) entered this skill by mistake, exit immediately and tell the
user to use the invest skill instead.
| Path | Scenario | Flow |
|---|---|---|
| A. Fresh deployment (default) | User's first time with openInvest; data lives on this machine | "Flow (4 steps)" below |
| B. Connect to an existing hub | User already runs openInvest on another machine (a server) and wants this machine to share the same data (multi-device) | "Path B" below, 2 minutes |
Phrasings that trigger Path B: "connect to my hub / 连接我的 hub" / "it's already installed on my server / 我服务器上已经装好了" / "share one portfolio across machines / 多台电脑共用持仓" / "connect to my existing deployment".
https://invest.example.com or http://10.0.0.6:8765)INVEST_API_TOKEN) or a Cloudflare
Access service token (CF_ACCESS_CLIENT_ID/SECRET)? Skip if not enabled.$INVEST_HOME/.env (only these two or three lines are
needed; no DeepSeek key / Gmail / 5-question flow — those all live on the hub):INVEST_API_BASE=https://invest.example.com
INVEST_API_TOKEN=... # optionalrun.sh doctor → it should return status: "ready" plus a remote
section (api_base / auth method). If it can't connect, the error JSON's hint
tells you whether the problem is the address, the token, or the hub service
not running.invest skill.Note: Path B must not run init (init is disabled in remote mode and will
error); no memory/ is created on this machine — all data stays on the hub.
doctor first to confirm setup is really needed~/.claude/skills/invest-setup/scripts/run.sh doctorReturns status: "ready" → exit immediately and tell the user "you're already
onboarded — just use the invest skill".
Returns status: "needs_setup" → go to step 2.
AskUserQuestion on the Coordinator path, your conversational tool on the Direct path)| # | Ask | Notes |
|---|---|---|
| Q1 | What should we call you? | display name; Anonymous if they'd rather not say |
| Q2 | Risk tolerance? | Conservative / Balanced / Aggressive |
| Q3 | Monthly income / monthly expenses / FX working buffer (CNY)? | three numbers; all can be 0 to skip |
| Q4 | What do you currently hold? (free-form description) | natural language, see below |
| Q5 | DeepSeek API key & Gmail App Password? | Optional. Not needed on the Coordinator path |
Do not ask field by field. Let the user describe their holdings in one sentence:
"510300 CSI 300 ETF, 3000 shares at 4.2 CNY; 80k in CMB Zhaozhaobao; 50 grams of ICBC gold accumulation at 750 average cost" "AAPL 100 shares at 150 USD cost, 0.3 BTC, 50k CNY cash" "Nothing at all, just 10k CNY"
When the backend cmd_init sees a holdings_description field it calls DeepSeek to
parse it into the v2 schema. Without a DeepSeek key it falls back to
profile.current_assets (only cash_cny / aud_cash get written into the portfolio) —
so always copy the cash amounts the user mentioned into current_assets too, and
tell the user about this.
Boundary rules to tell the user (not enforced):
510300) — no .SS suffix needed0700.HK or "Tencent")BTC / ETH)If the user reveals "this account is pocket money" / "I have an emergency reserve" / "family backup" → ask one more question:
Do you have an emergency fund / family backup outside this portfolio? Roughly how much? (Family funds cannot be used for investing — they only serve to prevent the "low cash = high risk" misjudgment.)
Record it into wealth_context:
wealth_context:
emergency_buffer_cny: 200000 # or whatever number the user gives
family_backup_available: true
account_purpose: "pocket-money account" # the user's own words
lifestyle_notes: "..."See docs/wiki/12-verification.md claim 7 (WealthContextOfficer) for details.
The payload must be nested as {"profile": {...}, "env": {...}} — a flat object
(no top-level "profile") is rejected with status: "error" and an expected_shape field.
Fill it with the user's real answers (the numbers below are placeholders):
echo '{
"profile": {
"name": "<Q1>",
"risk_tolerance": "<Q2: Conservative | Balanced | Aggressive>",
"monthly_income_cny": 0,
"monthly_expenses_cny": 0,
"exchange_buffer_cny": 0,
"holdings_description": "<the user's exact words from Q4>",
"current_assets": {"cash_cny": 0, "aud_cash": 0},
"wealth_context": {}
},
"env": {
"DEEPSEEK_API_KEY": "<Q5 key, or empty string>",
"EMAIL_SENDER": "<Gmail address, or empty string>",
"EMAIL_PASSWORD": "<Q5 Gmail App Password, or empty string>"
}
}' | ~/.claude/skills/invest-setup/scripts/run.sh init --from-stdincurrent_assets.cash_cny / aud_cash: the cash the user mentioned in Q4 — this is what
gets recorded when there is no LLM key (or the parse fails) on a fresh install. Positions are
never paid out of it: without a key they are added later with buy --existing-position.wealth_context: optional, from step 3; omit it if the user didn't mention any.env: every key is optional; LLM_API_KEY / LLM_BASE_URL work in place of DEEPSEEK_*.Returns JSON:
{
"status": "ok",
"completion": "completed_full | completed_partial",
"holdings_parse_note": "...", // natural-language parse result, **show it to the user**
"parsed_holdings_for_user_review": { ... }, // present when the LLM parsed holdings
"next_step": "..."
}After it finishes:
holdings_parse_note to the user (so they can confirm the parse is correct)doctor again to confirm status: "ready""existing portfolio left unchanged" / "v2 write failed" (check first; it wins over the item below): the portfolio already had holdings or trades, so this run wrote no cash and no holding (with --force, name and risk tolerance may still have been updated — see profile_note). Run status first; add only the positions missing there, with --existing-position. Never re-add a symbol that status already listscurrent_assets (cash_cny / aud_cash) is still recorded (cash_recorded in the init JSON shows what this run wrote). Add the positions the user already held afterwards, one per call, with run.sh buy --symbol S --units N --price P [-c CCY] --existing-position (MCP: the record_existing_position tool; an older MCP server answers Unknown tool — don't fall back to buy) — that does not touch cash. Run status first and skip any symbol it already lists. A plain buy is a new purchase paid from ledger cashstatus: "error" with expected_shape: the payload wasn't nested under "profile" — rebuild it as shown in step 4init response--force to confirm explicitlyA: When editing .env, the model name must change too:
LLM_API_KEY=...
LLM_BASE_URL=...
LLM_MODEL=qwen-max # ← don't forget thisChanging only the API key + base_url while the model stays deepseek-chat → the
upstream returns 400 "model not found". Every provider names its models differently —
check the provider's own site.
A: Check whether the memory/.committee/<today>/<asset>.md file was generated. If
not, something failed during the call — run run.sh doctor and see which item's
hint is red.
A: Run run.sh update (pulls the latest release from PyPI). openInvest is still
iterating quickly.
The detailed 5-step flow lives in the original references/onboarding.md (179 lines).
This SKILL.md is the condensed agent-trigger guide.
© longsizhuo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, references) in plugin/skills/invest-setup of longsizhuo/openInvest.
Open the folder on GitHubat commit 220abd2
Invest Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Invest Setup this skilllongsizhuo/openInvest | 108 | — | ~2.7k | Automated safety check: Notes | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 38k | 10 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 36 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Executing Plans Inlineobra/superpowers | 297k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Skill CreatorAzure/azqr | 796 | 89 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
longsizhuo/openInvest
Maintain openInvest's docs (docs/wiki chapters + docs/wiki/adr) under Google's Open Knowledge Format (OKF).
longsizhuo/openInvest
openInvest multi-asset AI investment committee — daily use. An agent skill from longsizhuo/openInvest.
longsizhuo/openInvest
Back up / restore openInvest's local state — memory/ (holdings, strategy, user profile, committee records, dream logs) + db/ (trade ledger, job run history, market-data cache) + .env (SMTP/API…
Categories
First-time openInvest installation and onboarding. An agent skill from longsizhuo/openInvest. Invest Setup is an agent skill from longsizhuo/openInvest. First-time openInvest installation and onboarding.
Invest Setup fits situations like: user explicitly says set up invest / init invest / 帮我初始化 invest; when invest skills doctor returns status=needssetup.
Run `npx skills add longsizhuo/openInvest --skill invest-setup -a claude-code`. Or copy the skill folder (plugin/skills/invest-setup in longsizhuo/openInvest) into .claude/skills/invest-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add longsizhuo/openInvest --skill invest-setup -a codex`. Or copy the skill folder (plugin/skills/invest-setup in longsizhuo/openInvest) into .agents/skills/invest-setup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add longsizhuo/openInvest --skill invest-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/invest-setup, .gemini/skills/invest-setup, .github/skills/invest-setup and .opencode/skills/invest-setup in your project.
Going by SKILL.md and its folder, Invest Setup needs a shell for the scripts in its folder and credentials named INVEST_API_TOKEN, LLM_API_KEY, DEEPSEEK_API_KEY and EMAIL_PASSWORD. Our summary lists: A Bash shell; A credential in INVEST_API_TOKEN; A credential in DEEPSEEK_API_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Invest Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 10 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Invest Setup: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
longsizhuo (a GitHub user) maintains it in longsizhuo/openInvest, which has 108 GitHub stars. The repository was last updated on October 11, 2026.
Source: longsizhuo/openInvest on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.