# Analyze Official Asana MCP

> Internal skill: Use this skill when official Asana MCP catalog changes or maintainers request gap analysis.

- Skill: `cyberuni/analyze-official-asana-mcp` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cyberuni/analyze-official-asana-mcp`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cyberuni/analyze-official-asana-mcp/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: cyberuni (https://skillmd.com/u/cyberuni)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cyberuni/analyze-official-asana-mcp

---


# Analyze Official Asana MCP Gap

## When to use

- GitHub issue labeled `mcp-gap-analysis` or titled `chore: official Asana MCP catalog changed`
- Maintainer asks for "MCP gap analysis" or "official catalog changed"
- After adding or removing cyber-asana MCP tools (run `pnpm --filter @cyberuni/gap-analysis run catalog` first)

## Prerequisites

- Repo dependencies installed (`pnpm install`)
- Committed baselines present under `data/`

## Workflow

### 1. Refresh cyber-asana catalog if MCP source changed

```sh
pnpm --filter @cyberuni/gap-analysis run catalog
pnpm --filter @cyberuni/gap-analysis run check
```

### 2. Generate gap report

```sh
pnpm --filter @cyberuni/gap-analysis run report -- --json
```

Read the four buckets:

| Bucket | Meaning |
| --- | --- |
| `official_only` | Prefer official MCP; document routing |
| `cyber_only` | cyber-asana advantages; keep |
| `overlap` | Both servers can serve the workflow; update routing |
| `unmapped_*` | Overlap map references a tool missing from a catalog |

### 3. Classify catalog deltas

For each **added** official tool:

- **Official-only** — no sensible cyber-asana REST equivalent (e.g. previews, `search_objects`)
- **New overlap** — add entry to [`tools/gap-analysis/src/overlap-map.ts`](../../tools/gap-analysis/src/overlap-map.ts)
- **cyber-asana gap** — official added capability we should implement via REST

For each **removed** official tool:

- Note deprecation in maintainer summary
- Remove stale entries from `overlap-map.ts`

### 4. Update routing, overlap map, and web docs

- Edit [`tools/gap-analysis/src/overlap-map.ts`](../../tools/gap-analysis/src/overlap-map.ts) for new or changed pairs
- When dual-MCP readme routing exists, update the routing table there
- Update [`apps/web/src/content/docs/reference/mcp-comparison.md`](../../apps/web/src/content/docs/reference/mcp-comparison.md): its tool totals, overlap/official-only/cyber-only summary, routing tables, and capability descriptions must match the report
- Update affected skills under `skills/` if they reference MCP tool choice

### 5. Implementation handoff

If cyber-asana should gain tools:

- Follow [update-asana-sdk](../update-asana-sdk/SKILL.md) — gateway, api, cli, mcp, tests
- Regenerate catalog: `pnpm --filter @cyberuni/gap-analysis run catalog`

If docs-only:

- Routing/readme/web-docs/skills changes suffice

### 6. Refresh official baseline (separate commit)

After analysis is complete:

```sh
pnpm --filter @cyberuni/gap-analysis run fetch-official -- --write
```

Verify:

```sh
# should exit 0 (unchanged vs itself — use a temp fetch instead)
pnpm --filter @cyberuni/gap-analysis run fetch-official -- --json > /tmp/official.json
pnpm --filter @cyberuni/gap-analysis run diff-official -- /tmp/official.json
# should exit 0 after baseline refresh
```

### 7. Maintainer summary

Post or include in PR:

- Added/removed official tools
- Overlap map edits
- Routing and web-doc edits
- Recommended follow-up PRs (implement vs docs-only)

## Commands reference

| Command | Purpose |
| --- | --- |
| `pnpm --filter @cyberuni/gap-analysis run catalog` | Regenerate `data/cyber-asana-mcp-catalog.json` |
| `pnpm --filter @cyberuni/gap-analysis run check` | CI check — catalog matches source |
| `pnpm --filter @cyberuni/gap-analysis run fetch-official` | Fetch live official tool list |
| `pnpm --filter @cyberuni/gap-analysis run fetch-official -- --write` | Update official baseline |
| `pnpm --filter @cyberuni/gap-analysis run diff-official -- <file>` | Compare fetch vs baseline |
| `pnpm --filter @cyberuni/gap-analysis run report` | Human-readable gap report |
| `pnpm --filter @cyberuni/gap-analysis run report -- --json` | Machine-readable gap report |

## Commit discipline

1. Analysis + overlap-map + docs (one commit)
2. Baseline JSON refresh (separate commit)

Never commit with red tests. Run `pnpm --filter @cyberuni/gap-analysis run test` before pushing.

