Skip to content

[Draft] Add Greenland AI plugin (unreviewed submission) - #1038

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/new-plugin-setup-c8f6
Draft

cursor[bot] wants to merge 1 commit into
mainfrom
cursor/new-plugin-setup-c8f6

Conversation

@cursor

@cursor cursor Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Draft. This plugin submission is unreviewed. It was generated from a partner submission form and has not been reviewed by Cursor. Do not merge until it is reviewed.

Adds third_party/greenlandai/, a remote MCP plugin for Greenland AI.

  • mcp.json stores the submitted hosted URL https://mcp.greenlandai.ai/mcp (type http) under the greenlandai server key.
  • .cursor-plugin/plugin.json references it with "mcpServers": "./mcp.json".
  • README (install steps and the MCP block), CHANGELOG, LICENSE.
  • One row in the root README integrations table and one entry appended to .cursor-plugin/marketplace.json. .claude-plugin/marketplace.json is unchanged.

Logo: not committed. greenlandai.ai is blocked by this agent's network allowlist, so the submitted logo, the homepage, the favicon, and third-party favicon services all failed. No greenlandai GitHub organization exists to use as a fallback. plugin.json logo is set to the submitted URL, https://greenlandai.ai/brand/greenlandai-mark-1024.png, which the schema allows. A reviewer should download it to third_party/greenlandai/assets/logo.png and change logo to assets/logo.png.

Server not probed. mcp.greenlandai.ai is blocked from this agent too, so the endpoint and its auth (an API key sent as the X-API-Key header, per the submission) were not verified.

Submission

Testing instructions (as submitted; the text was cut off in the submission and the reviewer key it mentions was not included)

Connect the MCP server at https://mcp.greenlandai.ai/mcp (streamable HTTP). Connecting and listing the 45 tools needs no key. Tool calls need an API key sent as the X-API-Key header; a reviewer test key with a small balance is at the end of these instructions.

  1. Call billing_quote to see the maximum price before a call.
  2. Call company_search with {"search": "rio tinto", "limit": 3}. You should get Rio Tinto and related companies, with charged_joules in the result.
  3. Take an id from that result and call company and relationships with it.
    Without a key, calls return a clear 401 message pointi

Validation: node scripts/validate-plugins.mjs reports "All plugins validated successfully."

Open in Web View Automation 

Note

Low Risk
Additive third-party plugin metadata and marketplace listing only; no changes to core repo logic, though the remote MCP endpoint and API-key auth were not verified in this draft.

Overview
Adds a new Greenland AI Cursor integration plugin under third_party/greenlandai/, wiring agents to Greenland AI’s hosted Streamable HTTP MCP at https://mcp.greenlandai.ai/mcp via mcp.json and a standard .cursor-plugin/plugin.json manifest (docs, changelog, MIT license).

The plugin is listed in .cursor-plugin/marketplace.json and the root README integrations table so users can install it from the marketplace or /add-plugin greenlandai. Tool listing works without credentials; tool calls expect a Greenland AI API key in the X-API-Key header (documented in README/CHANGELOG). The manifest still points logo at a remote URL rather than a committed asset—worth confirming during review.

Reviewed by Cursor Bugbot for commit 18c0b4a. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment •

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: API key not wired into MCP
    • Declared GREENLANDAI_API_KEY and forwarded it as the X-API-Key header so Configure collects the secret and metered tool calls are authenticated.

Create PR

Or push these changes by commenting:

@cursor push add71857a1
Preview (add71857a1)
diff --git a/third_party/greenlandai/.cursor-plugin/plugin.json b/third_party/greenlandai/.cursor-plugin/plugin.json
--- a/third_party/greenlandai/.cursor-plugin/plugin.json
+++ b/third_party/greenlandai/.cursor-plugin/plugin.json
@@ -27,5 +27,18 @@
     "supply chain",
     "mcp"
   ],
+  "variables": {
+    "type": "object",
+    "properties": {
+      "GREENLANDAI_API_KEY": {
+        "type": "string",
+        "title": "Greenland AI API key",
+        "description": "API key from your Greenland AI account (starts with gai_). Tool calls send it as the X-API-Key header."
+      }
+    },
+    "required": [
+      "GREENLANDAI_API_KEY"
+    ]
+  },
   "mcpServers": "./mcp.json"
 }

diff --git a/third_party/greenlandai/CHANGELOG.md b/third_party/greenlandai/CHANGELOG.md
--- a/third_party/greenlandai/CHANGELOG.md
+++ b/third_party/greenlandai/CHANGELOG.md
@@ -5,4 +5,4 @@
 ## 1.0.0 — initial release
 
 - Added the `greenlandai` MCP server pointing at Greenland AI's hosted Streamable HTTP endpoint (`https://mcp.greenlandai.ai/mcp`).
-- Tool calls require a Greenland AI API key sent as the `X-API-Key` header.
+- Auth uses a Greenland AI API key supplied by the user as an `X-API-Key` header (`${GREENLANDAI_API_KEY}`).

diff --git a/third_party/greenlandai/README.md b/third_party/greenlandai/README.md
--- a/third_party/greenlandai/README.md
+++ b/third_party/greenlandai/README.md
@@ -8,7 +8,7 @@
 
 1. Open **Cursor Settings → Plugins**.
 2. Search for **Greenland AI**.
-3. Click **Install**.
+3. Click **Install**, then set your Greenland AI API key.
 
 Or run `/add-plugin greenlandai` in chat.
 
@@ -19,13 +19,16 @@
   "mcpServers": {
     "greenlandai": {
       "type": "http",
-      "url": "https://mcp.greenlandai.ai/mcp"
+      "url": "https://mcp.greenlandai.ai/mcp",
+      "headers": {
+        "X-API-Key": "${GREENLANDAI_API_KEY}"
+      }
     }
   }
 }

-Connecting and listing tools needs no key. Tool calls need a Greenland AI API key sent as the X-API-Key header; without one, calls return a 401 message explaining how to get a key.
+Tool calls send a Greenland AI API key as the X-API-Key header (${GREENLANDAI_API_KEY}). Set the key in Dashboard → Plugins → Configure. Without one, calls return a 401 message explaining how to get a key.

Before you connect

diff --git a/third_party/greenlandai/mcp.json b/third_party/greenlandai/mcp.json
--- a/third_party/greenlandai/mcp.json
+++ b/third_party/greenlandai/mcp.json
@@ -2,7 +2,10 @@
"mcpServers": {
"greenlandai": {
"type": "http",

  •  "url": "https://mcp.greenlandai.ai/mcp"
    
  •  "url": "https://mcp.greenlandai.ai/mcp",
    
  •  "headers": {
    
  •    "X-API-Key": "${GREENLANDAI_API_KEY}"
    
  •  }
    
    }
    }
    }

</details>


<sub>You can send follow-ups to the cloud agent <a href="https://cursor.com/agents/bc-e6152c89-1e86-4612-ac3c-62638bcd2f4a">here</a>.</sub>
<!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END -->

<sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 18c0b4ac7aa73157a4284da493c2b2d76a8333e0. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>

"greenlandai": {
"type": "http",
"url": "https://mcp.greenlandai.ai/mcp"
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API key not wired into MCP

High Severity · Logic Bug

The plugin documents that tool calls require an X-API-Key header, but mcp.json is URL-only and plugin.json declares no variables. Installers get no configure prompt, so the keyless MCP bridge never forwards a gai_ key and every metered tool call returns 401.

Additional Locations (2)
Fix in Cursor Fix in Web

Triggered by learned rule: Plugin OAuth scopes must be vendor-advertised

Reviewed by Cursor Bugbot for commit 18c0b4a. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant