Agent Plugins Marketplace
All plugins

asana

v0.1.0-ghast.1

Read and manage Asana tasks, subtasks, comments, due dates, projects, portfolios, status updates, teams, users, and workspace priorities through Asana's official V2 MCP server.

Agent Plugins3 Skills1 MCP serverstdio

By Asana, Inc.License: MIT0 GitHub starsUpdated 3 hours ago

Directory evidence

Runtimes
Agent Plugins
Parsed components
4 skill or MCP entries
Source updated
Aug 30, 2026
Manifest status
Canonical path parsed

The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology

Get the plugin

git clone https://github.com/Trapezohe/ghast-plugins

Clone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is plugins/asana/.

This listing currently publishes only the generic Agent Plugins format. Automatic install commands for other clients are not generated yet.

Plugin files

plugins/asana/
├── plugin.json
├── skills/asana-mcp-troubleshooting/SKILL.md
├── skills/asana-setup/SKILL.md
├── skills/asana-usage/SKILL.md
└── mcp.json

Included Skills3

asana-mcp-troubleshootingskills/asana-mcp-troubleshooting/SKILL.md

Diagnose Asana V2 MCP connection, OAuth app, credential-file, workspace, and tool availability failures in Ghast.

asana-setupskills/asana-setup/SKILL.md

Detect and configure Asana V2 MCP credentials for Ghast. Run before using Asana when the connection is not already active.

asana-usageskills/asana-usage/SKILL.md

Best practices for using Asana MCP tools in Ghast. Use when working with tasks, projects, or portfolios.

MCP servers1

asanastdio
command
node
args
-e const fs = require("node:fs"); const path = require("node:path"); const { spawn } = require("node:child_process"); const clientFile = process.env.ASANA_OAUTH_CLIENT_FILE; if (!clientFile) { console.error("Set ASANA_OAUTH_CLIENT_FILE to an absolute OAuth client JSON path."); process.exit(1); } if (!path.isAbsolute(clientFile)) { console.error("ASANA_OAUTH_CLIENT_FILE must be an absolute path."); process.exit(1); } let clientInfo; let stat; try { stat = fs.statSync(clientFile); clientInfo = JSON.parse(fs.readFileSync(clientFile, "utf8")); } catch { console.error("ASANA_OAUTH_CLIENT_FILE must point to readable valid JSON."); process.exit(1); } if ( typeof clientInfo.client_id !== "string" || !clientInfo.client_id || typeof clientInfo.client_secret !== "string" || !clientInfo.client_secret ) { console.error("Asana OAuth JSON must contain client_id and client_secret."); process.exit(1); } if (process.platform !== "win32" && (stat.mode & 0o077) !== 0) { console.error("Protect the Asana OAuth JSON with chmod 600."); process.exit(1); } const executable = process.platform === "win32" ? "npx.cmd" : "npx"; const child = spawn( executable, [ "--yes", "[email protected]", "https://mcp.asana.com/v2/mcp", "3334", "--static-oauth-client-info", `@${clientFile}`, "--resource", "https://mcp.asana.com/v2", ], { stdio: "inherit" }, ); child.on("error", (error) => { console.error(`Unable to start Asana MCP bridge: ${error.message}`); process.exit(1); }); for (const signal of ["SIGINT", "SIGTERM"]) { process.on(signal, () => child.kill(signal)); } child.on("exit", (code, signal) => { if (signal) process.kill(process.pid, signal); else process.exit(code === null ? 1 : code); });

Plugin manifests1

plugins/asana/plugin.json
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "asana",
  "version": "0.1.0-ghast.1",
  "description": "Read and manage Asana tasks, subtasks, comments, due dates, projects, portfolios, status updates, teams, users, and workspace priorities through Asana's official V2 MCP server.",
  "author": {
    "name": "Asana, Inc.",
    "url": "https://asana.com"
  },
  "homepage": "https://developers.asana.com/docs/using-asanas-mcp-server",
  "repository": "https://github.com/Asana/cursor-marketplace-plugin",
  "license": "MIT",
  "extensions": {
    "ai.trapezohe.ghast": {
      "category": "productivity",
      "upstreamRevision": "caf02337846594b6af5221ea5165c1dd0d273d9b",
      "upstreamPath": ".",
      "icon": "./assets/icon.svg"
    }
  }
}

If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.

[asana on Agent Plugins Marketplace](https://pluginsmp.com/plugins/asana-3)