diff --git a/.claude-plugin/.upstream-base b/.claude-plugin/.upstream-base index 427ce2a20..a7a22f6fb 100644 --- a/.claude-plugin/.upstream-base +++ b/.claude-plugin/.upstream-base @@ -1 +1 @@ -7366ac128bdf95f45e6734f412b49a4031800169 +f5bdd6826fd0a0d9cbc4347134c3a74a200b9d9d diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 655a6b133..5ff10ceb1 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -333,6 +333,21 @@ "source": "third_party/onedrive", "description": "Browse, search, and read Microsoft OneDrive files." }, + { + "name": "teams", + "source": "third_party/teams", + "description": "Search, read, and send Microsoft Teams chats and channel messages." + }, + { + "name": "finance", + "source": "third_party/finance", + "description": "Securely connect your accounts so Grok can help with questions about your spending, subscriptions, balances, and investments.", + "minClientVersions": { + "cursor": "never", + "grokbot": "0.49.0", + "sand": "0.49.0" + } + }, { "name": "x-ads", "source": "third_party/x-ads", @@ -352,6 +367,36 @@ "name": "gamma", "source": "third_party/gamma", "description": "Generate presentations, documents, and webpages." + }, + { + "name": "webull", + "source": "third_party/webull", + "description": "View accounts, positions, orders, watchlists, and market data." + }, + { + "name": "sp-global", + "source": "third_party/sp-global", + "description": "Query S&P Capital IQ financials, prices, and transcripts." + }, + { + "name": "interactive-brokers", + "source": "third_party/interactive-brokers", + "description": "Review positions, balances, P&L, and draft trade instructions." + }, + { + "name": "meltwater", + "source": "third_party/meltwater", + "description": "Search media and social mentions and pull analytics." + }, + { + "name": "daloopa", + "source": "third_party/daloopa", + "description": "Pull source-linked fundamentals, KPIs, filings, and prices." + }, + { + "name": "excalidraw", + "source": "third_party/excalidraw", + "description": "Draw and export hand-drawn diagrams from chat." } ] } diff --git a/pstack/.cursor-plugin/plugin.json b/pstack/.cursor-plugin/plugin.json index 4b9eca388..19402321c 100644 --- a/pstack/.cursor-plugin/plugin.json +++ b/pstack/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "pstack", "displayName": "pstack", - "version": "0.15.1", + "version": "0.15.2", "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.", "author": { "name": "Lauren Tan" diff --git a/pstack/skills/poteto-mode/SKILL.md b/pstack/skills/poteto-mode/SKILL.md index 2de0216e7..7559dea02 100644 --- a/pstack/skills/poteto-mode/SKILL.md +++ b/pstack/skills/poteto-mode/SKILL.md @@ -135,7 +135,7 @@ A large or cross-cutting effort (a migration across many call sites, an ambitiou - **Autonomous run.** A long task to drive to completion without stopping ("run until done", "/loop until X"). `playbooks/autonomous-run.md`. - **Orchestrate.** A standing project handed to one coordinator chat: multi-day, many stacked PRs, dozens to hundreds of subagents, minimal human turns ("run this whole project", "own this migration until it lands"). Distinct from Autonomous run, which drives one task to a predicate. Work one agent could finish inside the session's budget routes there, not here, however program-shaped the phrasing sounds. `playbooks/orchestrate.md`. - **Autopilot-full.** A queue of independent PRs run to merged with full autonomy. One owner per PR carries build through merge, and the root swarm-verifies each merge-ready head before its owner merges ("autopilot this queue", "full autopilot", one-owner-per-PR programs). `playbooks/autopilot-full.md`. -- **Autopilot-stack.** A queue of changes built and verified with full autonomy, delivered as one linear reviewed base-branch stack the operator lands herself ("autopilot-stack", "stack them, don't ship", "build the stack, I'll land it"). `playbooks/autopilot-stack.md`. +- **Autopilot-stack.** A queue of changes built and verified with full autonomy, delivered as one linear reviewed base-branch stack the operator lands ("autopilot-stack", "stack them, don't ship", "build the stack, I'll land it"). `playbooks/autopilot-stack.md`. - **Session pickup.** Resuming or taking over a prior agent's in-flight work from a transcript, cloud-agent URL, or pushed branch. `playbooks/session-pickup.md`. - **Pause safely.** Suspending in-flight work cleanly so it can be resumed, on an explicit pause, going offline, a Cursor restart, or imminent context compaction. The complement to Session pickup. Full steps: `playbooks/pause-safely.md`. - **Multi-phase or multi-PR plan.** Work that spans phases or stacked PRs. `playbooks/multi-phase-plan.md`. diff --git a/pstack/skills/poteto-mode/playbooks/autopilot-full.md b/pstack/skills/poteto-mode/playbooks/autopilot-full.md index 4aa1bb858..785325047 100644 --- a/pstack/skills/poteto-mode/playbooks/autopilot-full.md +++ b/pstack/skills/poteto-mode/playbooks/autopilot-full.md @@ -2,12 +2,12 @@ **You own the verdicts, never the PRs. One owner runs each PR from build to merge, and nothing merges without your clean swarm verdict.** For "autopilot this queue", "full autopilot", and one-owner-per-PR programs. Orchestrate runs a standing program whose coordinator lands verified work itself and whose workers never merge. Here each PR's owner carries the whole lifecycle through the merge, and the root keeps only verification, countersigns, and audits. -1. **Mark the operator's items and honor state-then-wait.** Items the operator names stay hers. She reviews and she clicks, and no owner merges one. When she asks for the protocol or the plan to be stated, deliver the statement and stop. Execution starts only on her explicit go. On that go, arm a `/goal` with the full program objective. The goal continues across turns until the queue is done. +1. **Mark the operator's items and honor state-then-wait.** Items the operator names stay with the operator. The operator reviews and clicks, and no owner merges one. When the operator asks for the protocol or the plan to be stated, deliver the statement and stop. Execution starts only on the operator's explicit go. On that go, arm a `/goal` with the full program objective. The goal continues across turns until the queue is done. 2. **Spawn one owner per PR with the full lifecycle and an early trail.** Resolve the forge once for the program. GitHub CLI (`gh`) is the default. If `command -v origin` succeeds and Origin can resolve the repository, use `origin pr ...` for PR create, edit, view, watch, and merge operations. Otherwise stay on `gh` and record the fallback. Never require Graphite (`gt`). One Cursor cloud agent per PR owns build, the first push, a ready PR, self-proof on the real artifact (the **prove-it-works** principle skill), skeptical Bugbot triage per `../references/bugbot-triage.md`, a slop-strip (the `deslop` skill from the `cursor-team-kit` plugin (`/deslop`)), `/no-comments` (the **no-comments** skill), a rebase onto current trunk, the babysit loop to green (`playbooks/babysit.md`), and the merge itself. Within about 15 minutes, every owner starts a `decisions.tsv` trail per the **show-me-your-work** skill, pushes its first branch snapshot, and opens the PR ready, never draft. Open the PR before self-proof so the URL, decisions, and checks form a durable trail. Keep `decisions.tsv` uncommitted and return it with the reports. The rebase always precedes babysit and never waits for drift or conflicts. The merge is the one step an owner may not take alone. Step 4 gates it. 3. **Run owners in true parallel and never stack.** Many owners at once when PRs are self-contained: one writer per branch, disjoint files, cross-PR drift absorbed by rebase. Only genuinely overlapping work serializes. Self-contained PRs branch straight off main, and sequenced work is merge-then-branch. One exception: an owner that must split a genuinely dependent change may hold a short private base-branch stack. 4. **Swarm-verify every merge-ready head before its merge.** At the owner's merge-ready head SHA, fan out parallel independent verifiers per the **swarm** skill and aggregate to one verdict. The lanes: re-run the gates at that SHA. Prove the load-bearing behavior live on the real surface the change touches (`control-cli` or `control-ui` from `cursor-team-kit` as the change demands). Audit the receipts and the diff, distrusting the PR body. **Regression lane against trunk.** Run the same load-bearing scenario on current trunk. If trunk does not have the feature, record that fact and gate the behavior the diff adds plus the end state the user waits for instead of pretending trunk can produce it. The live lane is the floor, and a verdict without it is not clean. No merge without the root's clean verdict. Findings go back to the owner for fix-forward, and the new head gets a fresh swarm and a fresh verdict. -5. **On a clean verdict the owner merges and takes the next item.** The owner merges only from a head freshly rebased onto trunk. The merge-ready report is made at a trunk-current head, and the swarm verdict pins that SHA. If trunk moves again before the merge, the patch-id rule in `playbooks/shipping.md` governs re-verification. A new head voids the verdict unless the patch-id is unchanged. The owner squash-merges its own PR through the resolved forge and picks up its next self-contained item from the queue. The operator's full-autonomy grant plus the root's clean verdict is the merge authorization that babysitting alone never has. Operator-named items stop at merge-ready and wait for her click. +5. **On a clean verdict the owner merges and takes the next item.** The owner merges only from a head freshly rebased onto trunk. The merge-ready report is made at a trunk-current head, and the swarm verdict pins that SHA. If trunk moves again before the merge, the patch-id rule in `playbooks/shipping.md` governs re-verification. A new head voids the verdict unless the patch-id is unchanged. The owner squash-merges its own PR through the resolved forge and picks up its next self-contained item from the queue. The operator's full-autonomy grant plus the root's clean verdict is the merge authorization that babysitting alone never has. Operator-named items stop at merge-ready and wait for the operator's click. 6. **Run the root layer.** A genuinely new raise of a pinned gate or budget value (a limit CI only lets tighten) needs your fresh countersign, granted only after verifier proof. Absorbing values that already landed on main is drift, not a raise. Run an audit tick over all owners roughly every 30 minutes. A local root arms each tick as a real terminal `/loop`. The loop uses a monitored-shell 30-minute sleep and emits an output-notification sentinel. A cloud root uses the existing cloud-sleeper wake chain instead. Never leave the cadence to memory or lossy completion notifications. At each tick, re-read this playbook from trunk with `git show origin/main:pstack/skills/poteto-mode/playbooks/autopilot-full.md`, then re-read the armed `/goal`. Audit the operation against both. Fix drift during that tick. Probe each owner with a generic liveness or status check, and collect the decision trails. Count only side effects as progress: commits, pushes, PR or check deltas, and store reports. Treat a lane that passes its expected runtime without a side effect as stuck. Stand it down and dispatch a replacement at once. Do not wait for a polite return. When merges batch, run a retro pass and a post-merge bot-comment sweep. -7. **Stand down instantly on the operator's stop.** Her hold or stand-down reaches every owner as a zero-writes order immediately. Owners hold their briefs until she releases them. +7. **Stand down instantly on the operator's stop.** The operator's hold or stand-down reaches every owner as a zero-writes order immediately. Owners hold their briefs until the operator releases them. **Reply:** the queue with each PR's owner, state, and head SHA. Each verdict and the swarm that produced it. What merged and what each owner took next. Countersigns granted and why. Open operator gates. Where the collected decision trails live. diff --git a/pstack/skills/poteto-mode/playbooks/autopilot-stack.md b/pstack/skills/poteto-mode/playbooks/autopilot-stack.md index b65afb587..f5b6e1df8 100644 --- a/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +++ b/pstack/skills/poteto-mode/playbooks/autopilot-stack.md @@ -1,15 +1,15 @@ ### Autopilot-stack -**You own the stack, never the landing. Build and verify the queue with full autonomy, then hand the operator one linear base-branch stack she reviews and lands herself.** The sibling of **Autopilot-full**. +**You own the stack, never the landing. Build and verify the queue with full autonomy, then hand the operator one linear base-branch stack to review and land.** The sibling of **Autopilot-full**. 1. **Run the owner loop unchanged.** Resolve the forge once for the program. GitHub CLI (`gh`) is the default. If `command -v origin` succeeds and Origin can resolve the repository, use `origin pr ...` for PR create, edit, view, watch, and merge operations. Otherwise stay on `gh` and record the fallback. Never require Graphite (`gt`). One Cursor cloud agent per PR owns its change end to end: build, first push, a ready PR opened before self-proof, self-proof (gates, CI, receipts), skeptical Bugbot triage per `../references/bugbot-triage.md`, a slop-strip (the `deslop` skill from the `cursor-team-kit` plugin (`/deslop`)), `/no-comments` (the **no-comments** skill), and babysit to green per `playbooks/babysit.md`. Owners parallelize when the work is self-contained. Within about 15 minutes, every owner starts a `decisions.tsv` trail per the **show-me-your-work** skill, pushes its first branch snapshot, and opens the PR ready, never draft. Keep the trail uncommitted and return it in the report. 2. **Audit on the wake chain.** The root runs an audit tick roughly every 30 minutes. A local root arms each tick as a real terminal `/loop`. The loop uses a monitored-shell 30-minute sleep and emits an output-notification sentinel. A cloud root uses the existing cloud-sleeper wake chain instead. Never leave the cadence to memory or lossy completion notifications. At each tick, re-read this playbook from trunk with `git show origin/main:pstack/skills/poteto-mode/playbooks/autopilot-stack.md`, then re-read the armed `/goal`. Audit the operation against both. Fix drift during that tick. Probe each owner with a generic liveness or status check. Count only side effects as progress: commits, pushes, PR or check deltas, and store reports. Treat a lane that passes its expected runtime without a side effect as stuck. Stand it down and dispatch a replacement at once. Do not wait for a polite return. -3. **Hold the operator gates.** State-then-wait, so a request to state the plan is not a go. On her explicit go, arm a `/goal` with the full program objective. The goal continues across turns until the chain is done. On her stop, every owner takes an immediate zero-writes hold. +3. **Hold the operator gates.** State-then-wait, so a request to state the plan is not a go. On the operator's explicit go, arm a `/goal` with the full program objective. The goal continues across turns until the chain is done. On the operator's stop, every owner takes an immediate zero-writes hold. 4. **Verify at STACK-READY.** The owner reports STACK-READY with the exact head SHA. The root swarm-verifies that SHA, fan-out per the **swarm** skill: parallel independent verifiers re-running the gates at that SHA, a live runtime floor over the load-bearing behavior, and a receipts-and-diff audit that distrusts the PR body. The swarm aggregates to one verdict. Findings go back to the owner, and nothing enters the stack unverified. 5. **Append on a clean verdict, never ship.** No owner merges, arms auto-merge, or closes. A clean verdict appends the PR to the one linear base-branch stack, in verified order or an order the operator specified. 6. **Single writer on topology, parallel writers on builds.** Owners push only their own branches and report the tip, current base, and intended parent. The root is the only topology writer. To append a PR, fetch the intended parent, rebase the child branch onto that exact parent tip, push with `--force-with-lease` only after an `ls-remote` check, and set the PR base to the parent branch. Create it with `origin pr create --status open --base ` or `gh pr create --base ` according to the resolved forge. Retarget an existing PR with `origin pr edit --base ` or `gh pr edit --base `. Only the root PR targets trunk. Never submit or register the chain through `gt`. 7. **Absorb drift at the root, then re-verify what moved.** The root fetches current trunk and rebases the chain from bottom to top. When a rebase surfaces conflicts in an owner's files, that owner fixes its own slice and the root pushes the result. A rebase rewrites every SHA above it and voids verdicts at the old SHAs. Compare the stable `git patch-id` for each PR's base-to-head diff at its verdict SHA against its new base-to-head diff. An unchanged patch-id preserves the code verdict. Any changed patch goes back through step 4 before delivery. Re-run mergeability and CI after every rewritten push even when the patch-id is unchanged. The countersign rule is unchanged from Autopilot-full. A genuinely new pin raises a stop for the root's fresh countersign. Absorbing drift of landed values is not a raise. -8. **Deliver the chain.** The deliverable is one linear chain of verified PRs, reviewable bottom-up in the resolved forge, every link carrying its verifier verdict in the PR body or a comment. The operator reviews and lands it, with her own clicks or with merge-when-ready she arms herself. +8. **Deliver the chain.** The deliverable is one linear chain of verified PRs, reviewable bottom-up in the resolved forge, every link carrying its verifier verdict in the PR body or a comment. The operator reviews and lands it, with their own clicks or by arming merge-when-ready. **Choosing between the autopilots.** Autopilot-full when the PRs are independent and landing authority is granted. Autopilot-stack when the operator wants review before landing, the work is sequenced or coupled, or merge authority is withheld. diff --git a/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md b/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md index b7b19769f..1fd40dd3f 100644 --- a/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +++ b/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md @@ -31,8 +31,8 @@ Tests alone are not sufficient verification. A PR is verified only when its unit ### Arm the program -- [ ] State the protocol and this plan to the operator, then stop. Start execution only on her explicit go. -- [ ] On her go, arm a `/goal` with this exact text. "" +- [ ] State the protocol and this plan to the operator, then stop. Start execution only on the operator's explicit go. +- [ ] On the operator's go, arm a `/goal` with this exact text. "" - [ ] Read these from trunk at program start. Re-read them at every tick. - [ ] `git show origin/main:pstack/skills/poteto-mode/playbooks/.md` - [ ] `git show origin/main:pstack/skills/swarm/SKILL.md` @@ -40,7 +40,7 @@ Tests alone are not sufficient verification. A PR is verified only when its unit - [ ] `git show origin/main:pstack/skills/poteto-mode/playbooks/opening-a-pr.md` - [ ] `git show origin/main:pstack/skills/` - [ ] Arm the 30-minute audit tick. In a local session, a real terminal `/loop`. In a cloud root, a cloud-sleeper wake chain. Never leave the cadence to memory. -- [ ] Use this tick prompt, verbatim. "Re-read the execution playbook from trunk and the armed /goal. Audit the operation against both and fix drift in this tick. Probe every active lane and judge progress by side effects only. Stand down a stuck lane and dispatch its replacement now. Then send the operator a status message, whether or not anything changed, with the queue table of PR, owner, state, and head SHA, the verdicts since the last tick, what merged, open operator gates, and blockers." +- [ ] Use this tick prompt, verbatim. "Re-read the execution playbook from trunk and the armed /goal. Audit the operation against both and fix drift in this tick. Probe every active lane and judge progress by side effects only. Stand down a stuck lane and dispatch its replacement now. Then post a status message to the operator in chat, whether or not anything changed, with the queue table of PR, owner, state, and head SHA, the verdicts since the last tick, what merged, open operator gates, and blockers." - [ ] On the operator's hold or stand-down, send every owner a zero-writes order at once. ### Spawn owners diff --git a/schemas/marketplace.schema.json b/schemas/marketplace.schema.json index a3ca579a0..8d69bb1c8 100644 --- a/schemas/marketplace.schema.json +++ b/schemas/marketplace.schema.json @@ -82,15 +82,30 @@ "minProperties": 1, "properties": { "cursor": { - "$ref": "#/$defs/semver", - "description": "Minimum Cursor version required to install the plugin (e.g. \"3.13.0\")." + "$ref": "#/$defs/clientVersionRequirement", + "description": "Minimum Cursor version required to install the plugin (e.g. \"3.13.0\"), or \"never\" to hide it from Cursor entirely." + }, + "grokbot": { + "$ref": "#/$defs/clientVersionRequirement", + "description": "Minimum Grok Bot version required to install the plugin (e.g. \"0.49.0\"), or \"never\" to hide it from Grok Bot entirely." + }, + "sand": { + "$ref": "#/$defs/clientVersionRequirement", + "description": "Deprecated client id for Grok Bot. Same meaning as grokbot." } }, "additionalProperties": { - "$ref": "#/$defs/semver", - "description": "Minimum version required for another client identifier." + "$ref": "#/$defs/clientVersionRequirement", + "description": "Minimum version required for another client identifier, or \"never\" to hide the plugin from that client." } }, + "clientVersionRequirement": { + "description": "A minimum semantic version, or the literal \"never\" when that client must not list or install the plugin.", + "oneOf": [ + { "$ref": "#/$defs/semver" }, + { "const": "never" } + ] + }, "semver": { "type": "string", "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?$", diff --git a/schemas/plugin.schema.json b/schemas/plugin.schema.json index 51d4e3f15..02903d117 100644 --- a/schemas/plugin.schema.json +++ b/schemas/plugin.schema.json @@ -139,15 +139,30 @@ "minProperties": 1, "properties": { "cursor": { - "$ref": "#/$defs/semver", - "description": "Minimum Cursor version required to install the plugin (e.g. \"3.13.0\")." + "$ref": "#/$defs/clientVersionRequirement", + "description": "Minimum Cursor version required to install the plugin (e.g. \"3.13.0\"), or \"never\" to hide it from Cursor entirely." + }, + "grokbot": { + "$ref": "#/$defs/clientVersionRequirement", + "description": "Minimum Grok Bot version required to install the plugin (e.g. \"0.49.0\"), or \"never\" to hide it from Grok Bot entirely." + }, + "sand": { + "$ref": "#/$defs/clientVersionRequirement", + "description": "Deprecated client id for Grok Bot. Same meaning as grokbot." } }, "additionalProperties": { - "$ref": "#/$defs/semver", - "description": "Minimum version required for another client identifier." + "$ref": "#/$defs/clientVersionRequirement", + "description": "Minimum version required for another client identifier, or \"never\" to hide the plugin from that client." } }, + "clientVersionRequirement": { + "description": "A minimum semantic version, or the literal \"never\" when that client must not list or install the plugin.", + "oneOf": [ + { "$ref": "#/$defs/semver" }, + { "const": "never" } + ] + }, "semver": { "type": "string", "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?$", diff --git a/third_party/daloopa/.cursor-plugin/plugin.json b/third_party/daloopa/.cursor-plugin/plugin.json new file mode 100644 index 000000000..f19e040fd --- /dev/null +++ b/third_party/daloopa/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "daloopa", + "displayName": "Daloopa", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Pull source-linked fundamentals, KPIs, filings, and prices.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.daloopa.com/docs/daloopa-mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "daloopa", + "fundamentals", + "kpis", + "sec filings", + "transcripts", + "equity research", + "financial data", + "mcp" + ], + "category": "integrations", + "tags": [ + "daloopa", + "finance", + "research", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/daloopa/CHANGELOG.md b/third_party/daloopa/CHANGELOG.md new file mode 100644 index 000000000..c37403cc2 --- /dev/null +++ b/third_party/daloopa/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `daloopa` MCP server pointing at Daloopa's hosted Streamable HTTP endpoint (`https://mcp.daloopa.com/server/mcp`). +- Auth uses OAuth with Daloopa user login — no API key or client ID to configure. +- Logo: Daloopa's official mark, from the `daloopa` GitHub organization. diff --git a/third_party/daloopa/LICENSE b/third_party/daloopa/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/daloopa/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/daloopa/README.md b/third_party/daloopa/README.md new file mode 100644 index 000000000..40c17ee94 --- /dev/null +++ b/third_party/daloopa/README.md @@ -0,0 +1,61 @@ +# Daloopa + +Cursor plugin that connects agents to [Daloopa](https://docs.daloopa.com/docs/daloopa-mcp) through Daloopa's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Pull source-linked fundamentals, KPIs, filings, and prices. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Daloopa**. +3. Click **Install**, then complete the Daloopa sign-in prompt. + +Or run `/add-plugin daloopa` in chat. + +## MCP + +```json +{ + "mcpServers": { + "daloopa": { + "type": "http", + "url": "https://mcp.daloopa.com/server/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Daloopa sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Daloopa account and subscription. Coverage is 6,000+ global tickers, and every data point links back to the source filing, presentation, or transcript. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Companies | Find companies by ticker or name and discover their available series | +| Fundamentals | Quarterly and annual values for statements, segments, and KPIs, with source links | +| Documents | List, search, and read filings, transcripts, and presentations | +| Prices | Daily OHLCV history | +| Skills | Run Daloopa's pre-built analyses such as earnings reviews and comps | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run under the Daloopa entitlements of the user who authorizes the connection. +- A separate docs server at `https://docs.daloopa.com/mcp` searches Daloopa's documentation and is not what this plugin connects to. + +## Docs + +- Daloopa MCP: https://docs.daloopa.com/docs/daloopa-mcp +- Client integrations: https://docs.daloopa.com/docs/mcp-integrations +- Server URL: https://mcp.daloopa.com/server/mcp + +Logo is Daloopa's official mark, from the `daloopa` GitHub organization. + +## License + +MIT diff --git a/third_party/daloopa/assets/logo.png b/third_party/daloopa/assets/logo.png new file mode 100644 index 000000000..2d547938f Binary files /dev/null and b/third_party/daloopa/assets/logo.png differ diff --git a/third_party/daloopa/mcp.json b/third_party/daloopa/mcp.json new file mode 100644 index 000000000..35c9d26ca --- /dev/null +++ b/third_party/daloopa/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "daloopa": { + "type": "http", + "url": "https://mcp.daloopa.com/server/mcp" + } + } +} diff --git a/third_party/excalidraw/.cursor-plugin/plugin.json b/third_party/excalidraw/.cursor-plugin/plugin.json new file mode 100644 index 000000000..d9699ad1b --- /dev/null +++ b/third_party/excalidraw/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "excalidraw", + "displayName": "Excalidraw", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Draw and export hand-drawn diagrams from chat.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/excalidraw/excalidraw-mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "excalidraw", + "diagrams", + "whiteboard", + "sketch", + "flowchart", + "architecture", + "mcp apps", + "mcp" + ], + "category": "integrations", + "tags": [ + "excalidraw", + "diagrams", + "productivity", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/excalidraw/CHANGELOG.md b/third_party/excalidraw/CHANGELOG.md new file mode 100644 index 000000000..88ed37b98 --- /dev/null +++ b/third_party/excalidraw/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `excalidraw` MCP server pointing at Excalidraw's hosted Streamable HTTP endpoint (`https://mcp.excalidraw.com/mcp`). +- No auth — the public server needs no credentials. +- Logo: Excalidraw's official mark, from the `excalidraw` GitHub organization. diff --git a/third_party/excalidraw/LICENSE b/third_party/excalidraw/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/excalidraw/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/excalidraw/README.md b/third_party/excalidraw/README.md new file mode 100644 index 000000000..6b5e04455 --- /dev/null +++ b/third_party/excalidraw/README.md @@ -0,0 +1,58 @@ +# Excalidraw + +Cursor plugin that connects agents to [Excalidraw](https://github.com/excalidraw/excalidraw-mcp) through Excalidraw's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Draw and export hand-drawn diagrams from chat. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Excalidraw**. +3. Click **Install**. + +Or run `/add-plugin excalidraw` in chat. + +## MCP + +```json +{ + "mcpServers": { + "excalidraw": { + "type": "http", + "url": "https://mcp.excalidraw.com/mcp" + } + } +} +``` + +No authentication is required; the server covers public repositories only. + +## Before you connect + +No account is needed. The hosted server renders diagrams as interactive MCP App views in clients that support them, and can export `.excalidraw` files anywhere. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Draw | Create a diagram view from elements the agent describes | +| Export | Export the current drawing to an `.excalidraw` file | +| Checkpoints | Save and restore drawing checkpoints within a session | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- This is the open-source Excalidraw MCP server. Excalidraw+ workspaces use a separate authenticated endpoint (`https://api.excalidraw.com/api/v1/mcp`) that this plugin does not configure. +- The bare origin `https://mcp.excalidraw.com` redirects to `/mcp`; the plugin uses the final URL. + +## Docs + +- excalidraw-mcp on GitHub: https://github.com/excalidraw/excalidraw-mcp +- Server URL: https://mcp.excalidraw.com/mcp + +Logo is Excalidraw's official mark, from the `excalidraw` GitHub organization. + +## License + +MIT diff --git a/third_party/excalidraw/assets/logo.png b/third_party/excalidraw/assets/logo.png new file mode 100644 index 000000000..608b31bd9 Binary files /dev/null and b/third_party/excalidraw/assets/logo.png differ diff --git a/third_party/excalidraw/mcp.json b/third_party/excalidraw/mcp.json new file mode 100644 index 000000000..55f551ef8 --- /dev/null +++ b/third_party/excalidraw/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "excalidraw": { + "type": "http", + "url": "https://mcp.excalidraw.com/mcp" + } + } +} diff --git a/third_party/finance/.cursor-plugin/plugin.json b/third_party/finance/.cursor-plugin/plugin.json new file mode 100644 index 000000000..08131ffaa --- /dev/null +++ b/third_party/finance/.cursor-plugin/plugin.json @@ -0,0 +1,34 @@ +{ + "name": "finance", + "displayName": "Finance", + "version": "1.0.0", + "minClientVersions": { + "cursor": "never", + "grokbot": "0.49.0", + "sand": "0.49.0" + }, + "description": "Securely connect your accounts so Grok can help with questions about your spending, subscriptions, balances, and investments.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://grok.com/connectors", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.svg", + "keywords": [ + "finance", + "accounts", + "spending", + "subscriptions", + "balances", + "investments", + "grok" + ], + "category": "integrations", + "tags": [ + "finance", + "accounts", + "grok" + ] +} diff --git a/third_party/finance/CHANGELOG.md b/third_party/finance/CHANGELOG.md new file mode 100644 index 000000000..9bda42072 --- /dev/null +++ b/third_party/finance/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added an empty Finance marketplace card that mirrors the Grok Finance connector. +- No skills and no connector are bundled. The Cursor backend handles this plugin. +- Requires Grok Bot 0.49 or newer, and is never allowed in Cursor. diff --git a/third_party/finance/LICENSE b/third_party/finance/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/finance/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/finance/README.md b/third_party/finance/README.md new file mode 100644 index 000000000..ca969fbf4 --- /dev/null +++ b/third_party/finance/README.md @@ -0,0 +1,24 @@ +# Finance + +Marketplace mirror of the Grok **Finance** connector. + +Securely connect your accounts so Grok can help with questions about your spending, subscriptions, balances, and investments. + +This plugin is empty on purpose. It has no skills and no connector of its own. The Cursor backend handles this plugin specially and talks to the Finance connector there. + +## Who can use it + +- Grok Bot **0.49** or newer. +- Not available in Cursor. Cursor must not list or install this plugin. + +## About this connector + +- **See your finances in chat.** Ask about balances, recent spending, subscriptions, and investments across linked accounts. +- **Your credentials stay private.** xAI does not store or view any bank account or password credentials. +- **Read-only access.** A financial connection is read-only, which means it can't be used to move money into or out of bank accounts. + +Third-party connectors are not built or maintained by xAI. Use caution when granting access to external services. Review the permissions before connecting. Usage is subject to the [xAI Privacy Policy](https://x.ai/legal/privacy-policy). + +## License + +MIT diff --git a/third_party/finance/assets/logo.svg b/third_party/finance/assets/logo.svg new file mode 100644 index 000000000..f1a362968 --- /dev/null +++ b/third_party/finance/assets/logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/third_party/interactive-brokers/.cursor-plugin/plugin.json b/third_party/interactive-brokers/.cursor-plugin/plugin.json new file mode 100644 index 000000000..1b068d64f --- /dev/null +++ b/third_party/interactive-brokers/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "interactive-brokers", + "displayName": "Interactive Brokers", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Review positions, balances, P&L, and draft trade instructions.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://www.interactivebrokers.com/en/trading/ai-integrations.php", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "interactive brokers", + "ibkr", + "brokerage", + "trading", + "portfolio", + "positions", + "market data", + "mcp" + ], + "category": "integrations", + "tags": [ + "ibkr", + "finance", + "trading", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/interactive-brokers/CHANGELOG.md b/third_party/interactive-brokers/CHANGELOG.md new file mode 100644 index 000000000..6bb30e270 --- /dev/null +++ b/third_party/interactive-brokers/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `interactive-brokers` MCP server pointing at Interactive Brokers's hosted Streamable HTTP endpoint (`https://api.ibkr.com/v1/api/mcp-public`). +- Auth uses OAuth with Interactive Brokers user login — no API key or client ID to configure. +- Logo: Interactive Brokers's official mark, from the icon Interactive Brokers publishes for its connector, on a 192×192 tile. diff --git a/third_party/interactive-brokers/LICENSE b/third_party/interactive-brokers/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/interactive-brokers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/interactive-brokers/README.md b/third_party/interactive-brokers/README.md new file mode 100644 index 000000000..4ce4d9521 --- /dev/null +++ b/third_party/interactive-brokers/README.md @@ -0,0 +1,60 @@ +# Interactive Brokers + +Cursor plugin that connects agents to [Interactive Brokers](https://www.interactivebrokers.com/en/trading/ai-integrations.php) through Interactive Brokers's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Review positions, balances, P&L, and draft trade instructions. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Interactive Brokers**. +3. Click **Install**, then complete the Interactive Brokers sign-in prompt. + +Or run `/add-plugin interactive-brokers` in chat. + +## MCP + +```json +{ + "mcpServers": { + "interactive-brokers": { + "type": "http", + "url": "https://api.ibkr.com/v1/api/mcp-public" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Interactive Brokers sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need an Interactive Brokers account. You authorize one specific account during sign-in. Not available to clients in India or Japan. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Accounts | Balances, summaries, positions, and portfolio allocation | +| Activity | Orders, trades, and historical transactions | +| Market data | Price snapshots and history; contract search | +| Instructions | Draft trade instructions for review in IBKR's AI Instructions tab | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Trade instructions never become live orders automatically; you review and submit them inside an IBKR platform. +- IBKR recommends the `mcp-public` endpoint for custom clients; Grok's catalog lists `/mcp`, which shares the same authorization server. +- Revoke access from **Client Portal → Settings → Manage Third-Party Consents**. + +## Docs + +- IBKR AI integrations: https://www.interactivebrokers.com/en/trading/ai-integrations.php +- Server URL: https://api.ibkr.com/v1/api/mcp-public + +Logo is Interactive Brokers's official mark. + +## License + +MIT diff --git a/third_party/interactive-brokers/assets/logo.png b/third_party/interactive-brokers/assets/logo.png new file mode 100644 index 000000000..41b7b5f57 Binary files /dev/null and b/third_party/interactive-brokers/assets/logo.png differ diff --git a/third_party/interactive-brokers/mcp.json b/third_party/interactive-brokers/mcp.json new file mode 100644 index 000000000..9160d5348 --- /dev/null +++ b/third_party/interactive-brokers/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "interactive-brokers": { + "type": "http", + "url": "https://api.ibkr.com/v1/api/mcp-public" + } + } +} diff --git a/third_party/meltwater/.cursor-plugin/plugin.json b/third_party/meltwater/.cursor-plugin/plugin.json new file mode 100644 index 000000000..4a926181e --- /dev/null +++ b/third_party/meltwater/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "meltwater", + "displayName": "Meltwater", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Search media and social mentions and pull analytics.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developer.meltwater.com/guides/meltwater-mcp/overview", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "meltwater", + "media monitoring", + "pr", + "social listening", + "mentions", + "sentiment", + "saved searches", + "mcp" + ], + "category": "integrations", + "tags": [ + "meltwater", + "media", + "pr", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/meltwater/CHANGELOG.md b/third_party/meltwater/CHANGELOG.md new file mode 100644 index 000000000..81440a306 --- /dev/null +++ b/third_party/meltwater/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `meltwater` MCP server pointing at Meltwater's hosted Streamable HTTP endpoint (`https://api.meltwater.com/v2/mcp`). +- Auth uses OAuth with Meltwater user login — no API key or client ID to configure. +- Logo: Meltwater's official mark, from the icon Meltwater publishes for its connector, on a 192×192 tile. diff --git a/third_party/meltwater/LICENSE b/third_party/meltwater/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/meltwater/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/meltwater/README.md b/third_party/meltwater/README.md new file mode 100644 index 000000000..b31da7400 --- /dev/null +++ b/third_party/meltwater/README.md @@ -0,0 +1,60 @@ +# Meltwater + +Cursor plugin that connects agents to [Meltwater](https://developer.meltwater.com/guides/meltwater-mcp/overview) through Meltwater's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Search media and social mentions and pull analytics. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Meltwater**. +3. Click **Install**, then complete the Meltwater sign-in prompt. + +Or run `/add-plugin meltwater` in chat. + +## MCP + +```json +{ + "mcpServers": { + "meltwater": { + "type": "http", + "url": "https://api.meltwater.com/v2/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Meltwater sign-in when the plugin connects — there is no client ID or API token to configure. + +## Before you connect + +You need a Meltwater subscription that includes the Meltwater MCP package. Available tools depend on the products in your subscription. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Your assets | Find saved searches and tags configured in Meltwater | +| Mentions | Retrieve news and social documents for a saved search | +| Analytics | Volume, sentiment, top sources, and themes | +| Queries | Generate a query when no saved search exists | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Meltwater's server advertises standard MCP OAuth with dynamic client registration; its public docs still describe API-key auth, but the OAuth flow is live. +- This is Meltwater MCP (`/v2/mcp`), not the higher-level Mira API endpoint at `/mcp`. + +## Docs + +- Meltwater MCP overview: https://developer.meltwater.com/guides/meltwater-mcp/overview +- Connecting: https://developer.meltwater.com/guides/meltwater-mcp/connecting +- Server URL: https://api.meltwater.com/v2/mcp + +Logo is Meltwater's official mark. + +## License + +MIT diff --git a/third_party/meltwater/assets/logo.png b/third_party/meltwater/assets/logo.png new file mode 100644 index 000000000..9538ead04 Binary files /dev/null and b/third_party/meltwater/assets/logo.png differ diff --git a/third_party/meltwater/mcp.json b/third_party/meltwater/mcp.json new file mode 100644 index 000000000..8d77a11b6 --- /dev/null +++ b/third_party/meltwater/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "meltwater": { + "type": "http", + "url": "https://api.meltwater.com/v2/mcp" + } + } +} diff --git a/third_party/sp-global/.cursor-plugin/plugin.json b/third_party/sp-global/.cursor-plugin/plugin.json new file mode 100644 index 000000000..ee79402bb --- /dev/null +++ b/third_party/sp-global/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "sp-global", + "displayName": "S&P Global", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Query S&P Capital IQ financials, prices, and transcripts.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.kensho.com/llmreadyapi/overview", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "sp global", + "kensho", + "kfinance", + "capital iq", + "financials", + "market data", + "earnings transcripts", + "mcp" + ], + "category": "integrations", + "tags": [ + "s&p global", + "kensho", + "finance", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/sp-global/CHANGELOG.md b/third_party/sp-global/CHANGELOG.md new file mode 100644 index 000000000..d46309737 --- /dev/null +++ b/third_party/sp-global/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `sp-global` MCP server pointing at S&P Global's hosted Streamable HTTP endpoint (`https://kfinance.kensho.com/integrations/mcp`). +- Auth uses OAuth with S&P Global user login — no API key or client ID to configure. +- Logo: S&P Global's official mark (black rule over red block), redrawn at 192×192 from the icon published on marketplace.spglobal.com. diff --git a/third_party/sp-global/LICENSE b/third_party/sp-global/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/sp-global/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/sp-global/README.md b/third_party/sp-global/README.md new file mode 100644 index 000000000..2858e27b7 --- /dev/null +++ b/third_party/sp-global/README.md @@ -0,0 +1,60 @@ +# S&P Global + +Cursor plugin that connects agents to [S&P Global](https://docs.kensho.com/llmreadyapi/overview) through S&P Global's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Query S&P Capital IQ financials, prices, and transcripts. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **S&P Global**. +3. Click **Install**, then complete the S&P Global sign-in prompt. + +Or run `/add-plugin sp-global` in chat. + +## MCP + +```json +{ + "mcpServers": { + "sp-global": { + "type": "http", + "url": "https://kfinance.kensho.com/integrations/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for S&P Global sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need an active S&P Global Market Intelligence subscription or trial for the Kensho LLM-ready API. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Companies | Resolve companies by ticker, ISIN, or CUSIP and read profiles | +| Financials | Statements and 200+ line items from S&P Capital IQ | +| Prices | Historical prices, volumes, market cap, and enterprise value | +| Research | Earnings call transcripts, business relationships, M&A, and estimates | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run under the S&P Global entitlements of the user who authorizes the connection. +- Kensho also ships the open-source `kensho-kfinance` package for a local server; this plugin uses the hosted server only. + +## Docs + +- Kensho LLM-ready API: https://docs.kensho.com/llmreadyapi/overview +- kfinance on GitHub: https://github.com/kensho-technologies/kfinance +- Server URL: https://kfinance.kensho.com/integrations/mcp + +Logo is S&P Global's official mark (black rule over red block), redrawn at 192×192 from the icon published on marketplace.spglobal.com. + +## License + +MIT diff --git a/third_party/sp-global/assets/logo.png b/third_party/sp-global/assets/logo.png new file mode 100644 index 000000000..0c566f750 Binary files /dev/null and b/third_party/sp-global/assets/logo.png differ diff --git a/third_party/sp-global/mcp.json b/third_party/sp-global/mcp.json new file mode 100644 index 000000000..48ce41bc1 --- /dev/null +++ b/third_party/sp-global/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "sp-global": { + "type": "http", + "url": "https://kfinance.kensho.com/integrations/mcp" + } + } +} diff --git a/third_party/teams/.cursor-plugin/plugin.json b/third_party/teams/.cursor-plugin/plugin.json new file mode 100644 index 000000000..cb78a4ca5 --- /dev/null +++ b/third_party/teams/.cursor-plugin/plugin.json @@ -0,0 +1,33 @@ +{ + "name": "teams", + "displayName": "Teams", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.19.0", + "sand": "0.30.0" + }, + "description": "Search, read, and send Microsoft Teams chats and channel messages.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/cursor/plugins/tree/main/third_party/teams", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.svg", + "keywords": [ + "teams", + "chat", + "microsoft", + "mcp", + "channels" + ], + "category": "productivity", + "tags": [ + "teams", + "chat", + "mcp", + "microsoft-365" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/teams/CHANGELOG.md b/third_party/teams/CHANGELOG.md new file mode 100644 index 000000000..d0b979189 --- /dev/null +++ b/third_party/teams/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Logo: official Microsoft Teams product icon from Microsoft's Fluent brand icon CDN, on a padded white tile. +- Added the `teams` MCP server pointing at `https://api.cursor.com/rest-mcp/teams/mcp`. diff --git a/third_party/teams/LICENSE b/third_party/teams/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/teams/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/teams/README.md b/third_party/teams/README.md new file mode 100644 index 000000000..015b5db69 --- /dev/null +++ b/third_party/teams/README.md @@ -0,0 +1,40 @@ +# Teams + +Cursor plugin that connects agents to [Microsoft Teams](https://www.microsoft.com/microsoft-teams) through Cursor's remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Search chats and channel messages, read conversations, send messages, and react in the signed-in Microsoft account. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Teams**. +3. Click **Install**, then complete the Microsoft sign-in prompt. + +Or run `/add-plugin teams` in chat. + +## MCP + +```json +{ + "mcpServers": { + "teams": { + "type": "http", + "url": "https://api.cursor.com/rest-mcp/teams/mcp" + } + } +} +``` + +Auth is OAuth 2.0 against Microsoft (Entra ID). Cursor prompts for Microsoft sign-in when the plugin connects. A work or school account is required. Reading channel messages needs tenant admin consent before the plugin can connect. + +## Docs + +- Teams API (Microsoft Graph): https://learn.microsoft.com/en-us/graph/api/resources/teams-api-overview +- Microsoft Graph overview: https://learn.microsoft.com/en-us/graph/overview + +Logo is the official Microsoft Teams product icon from Microsoft's Fluent brand icon CDN, placed on a white tile with padding so it reads well in the Cursor UI: +https://res-1.cdn.office.net/files/fabric-cdn-prod_20240411.001/assets/brand-icons/product/svg/teams_48x1.svg + +## License + +MIT diff --git a/third_party/teams/assets/logo.svg b/third_party/teams/assets/logo.svg new file mode 100644 index 000000000..b9e62e31e --- /dev/null +++ b/third_party/teams/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/third_party/teams/mcp.json b/third_party/teams/mcp.json new file mode 100644 index 000000000..8c3264da5 --- /dev/null +++ b/third_party/teams/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "teams": { + "type": "http", + "url": "https://api.cursor.com/rest-mcp/teams/mcp" + } + } +} diff --git a/third_party/webull/.cursor-plugin/plugin.json b/third_party/webull/.cursor-plugin/plugin.json new file mode 100644 index 000000000..59fa82fa4 --- /dev/null +++ b/third_party/webull/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "webull", + "displayName": "Webull", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "View accounts, positions, orders, watchlists, and market data.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developer.webull.com/apis/docs/AI-friendly-Resources/mcp/", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "webull", + "brokerage", + "trading", + "portfolio", + "quotes", + "watchlists", + "market data", + "mcp" + ], + "category": "integrations", + "tags": [ + "webull", + "finance", + "trading", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/webull/CHANGELOG.md b/third_party/webull/CHANGELOG.md new file mode 100644 index 000000000..9997049a3 --- /dev/null +++ b/third_party/webull/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `webull` MCP server pointing at Webull's hosted Streamable HTTP endpoint (`https://api.webull.com/mcp`). +- Auth uses OAuth with Webull user login — no API key or client ID to configure. +- Logo: Webull's official mark, from the icon Webull publishes for its connector, on a 192×192 tile. diff --git a/third_party/webull/LICENSE b/third_party/webull/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/webull/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/webull/README.md b/third_party/webull/README.md new file mode 100644 index 000000000..f63f4e144 --- /dev/null +++ b/third_party/webull/README.md @@ -0,0 +1,60 @@ +# Webull + +Cursor plugin that connects agents to [Webull](https://developer.webull.com/apis/docs/AI-friendly-Resources/mcp/) through Webull's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +View accounts, positions, orders, watchlists, and market data. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Webull**. +3. Click **Install**, then complete the Webull sign-in prompt. + +Or run `/add-plugin webull` in chat. + +## MCP + +```json +{ + "mcpServers": { + "webull": { + "type": "http", + "url": "https://api.webull.com/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Webull sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Webull account. During sign-in you choose which accounts and capability groups (account info, order query, market data, security master) to expose. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Accounts | Balances, account list, and positions | +| Orders | Open orders, order history, and order detail | +| Market data | Stocks, crypto, futures, and event contracts: quotes, bars, ticks, rankings | +| Research | Company profiles, analyst ratings, filings, financial statements, and fund data | +| Watchlists | Create and manage watchlists | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- The hosted server is read-only for trading: order placement, modification, and cancellation are only in Webull's local MCP server. +- Hong Kong accounts use a separate regional endpoint that this plugin does not configure. + +## Docs + +- Webull Cloud MCP: https://developer.webull.com/apis/docs/AI-friendly-Resources/mcp/ +- Server URL: https://api.webull.com/mcp + +Logo is Webull's official mark. + +## License + +MIT diff --git a/third_party/webull/assets/logo.png b/third_party/webull/assets/logo.png new file mode 100644 index 000000000..2d28680c6 Binary files /dev/null and b/third_party/webull/assets/logo.png differ diff --git a/third_party/webull/mcp.json b/third_party/webull/mcp.json new file mode 100644 index 000000000..9c8d94418 --- /dev/null +++ b/third_party/webull/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "webull": { + "type": "http", + "url": "https://api.webull.com/mcp" + } + } +}