asana
Asana
Manage Asana projects and tasks via the REST API.
Environment Variables
ASANA_ACCESS_TOKEN- Personal access token (generate at https://app.asana.com/0/developer-console)
List workspaces
curl -s -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/workspaces" | jq '.data[] | {gid, name}'
List projects
curl -s -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/projects?workspace=WORKSPACE_GID" | jq '.data[] | {gid, name}'
List tasks
curl -s -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/tasks?project=PROJECT_GID&opt_fields=name,completed,assignee.name,due_on" | jq '.data[] | {gid, name, completed, assignee: .assignee.name, due_on}'
Create task
curl -s -X POST -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://app.asana.com/api/1.0/tasks" \
-d '{"data":{"workspace":"WORKSPACE_GID","projects":["PROJECT_GID"],"name":"New task title","notes":"Task description","assignee":"USER_GID","due_on":"2025-12-31"}}' | jq '.data | {gid, name, permalink_url}'
Update task
curl -s -X PUT -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://app.asana.com/api/1.0/tasks/TASK_GID" \
-d '{"data":{"completed":true,"name":"Updated task title"}}' | jq '.data | {gid, name, completed}'
Get task
curl -s -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/tasks/TASK_GID?opt_fields=name,notes,completed,assignee.name,due_on,projects.name" | jq '.data | {gid, name, notes, completed, assignee: .assignee.name, due_on}'
Add comment
curl -s -X POST -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://app.asana.com/api/1.0/tasks/TASK_GID/stories" \
-d '{"data":{"text":"This is a comment on the task."}}' | jq '.data | {gid, text, created_at}'
List sections
curl -s -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/projects/PROJECT_GID/sections" | jq '.data[] | {gid, name}'
More from thinkfleetai/thinkfleet-engine
kagi-search
Web search using Kagi Search API. Use when you need to search the web for current information, facts, or references. Requires KAGI_API_KEY in the environment.
22feishu-bridge
Connect a Feishu (Lark) bot to ThinkFleet via WebSocket long-connection. No public server, domain, or ngrok required. Use when setting up Feishu/Lark as a messaging channel, troubleshooting the Feishu bridge, or managing the bridge service (start/stop/logs). Covers bot creation on Feishu Open Platform, credential setup, bridge startup, macOS launchd auto-restart, and group chat behavior tuning.
13bambu-local
Control Bambu Lab 3D printers locally via MQTT (no cloud). Supports A1, A1 Mini, P1P, P1S, X1C.
10voice-transcribe
Transcribe audio files using OpenAI's gpt-4o-mini-transcribe model with vocabulary hints and text replacements. Requires uv (https://docs.astral.sh/uv/).
10video-subtitles
Generate SRT subtitles from video/audio with translation support. Transcribes Hebrew (ivrit.ai) and English (whisper), translates between languages, burns subtitles into video. Use for creating captions, transcripts, or hardcoded subtitles for WhatsApp/social media.
10pollinations
Pollinations.ai API for AI generation - text, images, videos, audio, and analysis. Use when user requests AI-powered generation (text completion, images, videos, audio, vision/analysis, transcription) or mentions Pollinations. Supports 25+ models (OpenAI, Claude, Gemini, Flux, Veo, etc.) with OpenAI-compatible chat endpoint and specialized generation endpoints.
6