MCP-Server für Asana
Diese Model Context Protocol-Serverimplementierung von Asana ermöglicht Ihnen die Kommunikation mit der Asana-API vom MCP-Client aus, beispielsweise mit der Claude-Desktopanwendung von Anthropic und vielen anderen.
Weitere Details zu MCP finden Sie hier:
- https://www.anthropic.com/news/model-context-protocol
- https://modelcontextprotocol.io/introduction
- https://github.com/modelcontextprotocol
Umgebungsvariablen
ASANA_ACCESS_TOKEN
: (Erforderlich) Ihr Asana-ZugriffstokenREAD_ONLY_MODE
: (Optional) Auf „true“ setzen, um alle Schreibvorgänge zu deaktivieren. In diesem Modus:- Tools, die Asana-Daten ändern (erstellen, aktualisieren, löschen), werden deaktiviert
- Die Eingabeaufforderung
create-task
wird deaktiviert - Es sind nur Lesevorgänge verfügbar. Dies ist zum Testen nützlich oder wenn Sie sicherstellen möchten, dass an Ihrem Asana-Arbeitsbereich keine Änderungen vorgenommen werden können.
Verwendung
Fragen Sie im KI-Tool Ihrer Wahl (z. B. Claude Desktop) nach Asana-Aufgaben, Projekten, Arbeitsbereichen und/oder Kommentaren. Die Erwähnung des Wortes „Asana“ erhöht die Wahrscheinlichkeit, dass der LLM das richtige Tool auswählt.
Beispiel:
Wie viele unerledigte Asana-Aufgaben haben wir in unserem Sprint 30-Projekt?
Ein weiteres Beispiel:
Werkzeuge
asana_list_workspaces
- Alle verfügbaren Arbeitsbereiche in Asana auflisten
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Liste der Arbeitsbereiche
asana_search_projects
- Suchen Sie in Asana mithilfe des Namensmusterabgleichs nach Projekten
- Erforderliche Eingabe:
- Arbeitsbereich (Zeichenfolge): Der zu durchsuchende Arbeitsbereich
- name_pattern (Zeichenfolge): Reguläres Ausdrucksmuster zum Abgleichen von Projektnamen
- Optionale Eingabe:
- archiviert (Boolesch): Gibt nur archivierte Projekte zurück (Standard: false)
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Liste passender Projekte
asana_search_tasks
- Suchen Sie Aufgaben in einem Arbeitsbereich mit erweiterten Filteroptionen
- Erforderliche Eingabe:
- Arbeitsbereich (Zeichenfolge): Der zu durchsuchende Arbeitsbereich
- Optionale Eingabe:
- Text (Zeichenfolge): Text, nach dem in Aufgabennamen und Beschreibungen gesucht werden soll
- resource_subtype (Zeichenfolge): Filtern nach Aufgabenuntertyp (z. B. Meilenstein)
- abgeschlossen (Boolesch): Filter für abgeschlossene Aufgaben
- is_subtask (boolean): Filter für Unteraufgaben
- has_attachment (boolean): Filter für Aufgaben mit Anhängen
- is_blocked (boolean): Filter für Aufgaben mit unvollständigen Abhängigkeiten
- is_blocking (Boolesch): Filter für unvollständige Aufgaben mit abhängigen Aufgaben
- Beauftragter, Projekte, Abschnitte, Tags, Teams und viele andere erweiterte Filter
- sort_by (Zeichenfolge): Sortieren nach Fälligkeitsdatum, Erstellungsdatum, Fertigstellungsdatum, Likes, Änderungsdatum (Standard: Änderungsdatum)
- sort_ascending (Boolesch): In aufsteigender Reihenfolge sortieren (Standard: false)
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- custom_fields (Objekt): Objekt, das benutzerdefinierte Feldfilter enthält
- Rückgabe: Liste der passenden Aufgaben
asana_get_task
- Erhalten Sie detaillierte Informationen zu einer bestimmten Aufgabe
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die abzurufende Task-ID
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Detaillierte Aufgabeninformationen
asana_create_task
- Erstellen einer neuen Aufgabe in einem Projekt
- Erforderliche Eingabe:
- project_id (Zeichenfolge): Das Projekt, in dem die Aufgabe erstellt werden soll
- name (Zeichenfolge): Name der Aufgabe
- Optionale Eingabe:
- Notizen (Zeichenfolge): Beschreibung der Aufgabe
- html_notes (Zeichenfolge): HTML-ähnlich formatierte Beschreibung der Aufgabe
- due_on (Zeichenfolge): Fälligkeitsdatum im Format JJJJ-MM-TT
- assignee (Zeichenfolge): Zugewiesener Empfänger (kann „ich“ oder eine Benutzer-ID sein)
- Follower (Array von Zeichenfolgen): Array von Benutzer-IDs, die als Follower hinzugefügt werden sollen
- parent (Zeichenfolge): Die übergeordnete Aufgaben-ID, unter der diese Aufgabe festgelegt werden soll
- Projekte (Array von Zeichenfolgen): Array von Projekt-IDs, denen diese Aufgabe hinzugefügt werden soll
- resource_subtype (Zeichenfolge): Der Typ der Aufgabe (Standardaufgabe oder Meilenstein)
- custom_fields (Objekt): Objekt, das benutzerdefinierte Feld-GID-Zeichenfolgen ihren Werten zuordnet
- Rückgabe: Informationen zur erstellten Aufgabe
asana_get_task_stories
- Erhalten Sie Kommentare und Geschichten zu einer bestimmten Aufgabe
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die Task-ID, für die Storys abgerufen werden sollen
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Liste der Aufgabengeschichten/Kommentare
asana_update_task
- Aktualisieren der Details einer vorhandenen Aufgabe
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die zu aktualisierende Task-ID
- Optionale Eingabe:
- Name (Zeichenfolge): Neuer Name für die Aufgabe
- Notizen (Zeichenfolge): Neue Beschreibung für die Aufgabe
- due_on (Zeichenfolge): Neues Fälligkeitsdatum im Format JJJJ-MM-TT
- assignee (Zeichenfolge): Neuer Beauftragter (kann „ich“ oder eine Benutzer-ID sein)
- abgeschlossen (Boolesch): Aufgabe als abgeschlossen markieren oder nicht
- resource_subtype (Zeichenfolge): Der Typ der Aufgabe (Standardaufgabe oder Meilenstein)
- custom_fields (Objekt): Objekt, das benutzerdefinierte Feld-GID-Zeichenfolgen ihren Werten zuordnet
- Rückgabe: Aktualisierte Aufgabeninformationen
asana_get_project
- Erhalten Sie detaillierte Informationen zu einem bestimmten Projekt
- Erforderliche Eingabe:
- project_id (Zeichenfolge): Die abzurufende Projekt-ID
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Retouren: Detaillierte Projektinformationen
asana_get_project_task_counts
- Ermitteln Sie die Anzahl der Aufgaben in einem Projekt
- Erforderliche Eingabe:
- project_id (Zeichenfolge): Die Projekt-ID, für die die Aufgabenanzahl abgerufen werden soll
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Gibt zurück: Informationen zur Aufgabenanzahl
asana_get_project_sections
- Abrufen von Abschnitten in einem Projekt
- Erforderliche Eingabe:
- project_id (Zeichenfolge): Die Projekt-ID, für die Abschnitte abgerufen werden sollen
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Liste der Projektabschnitte
asana_create_task_story
- Einen Kommentar oder eine Story zu einer Aufgabe erstellen
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die Aufgaben-ID, zu der die Story hinzugefügt werden soll
- Text (Zeichenfolge): Der Textinhalt der Geschichte/des Kommentars
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Erstellte Story-Informationen
asana_add_task_dependencies
- Festlegen von Abhängigkeiten für eine Aufgabe
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die Task-ID, zu der Abhängigkeiten hinzugefügt werden sollen
- Abhängigkeiten (Array von Zeichenfolgen): Array von Task-IDs, von denen diese Aufgabe abhängt
- Rückgabe: Aktualisierte Aufgabenabhängigkeiten
asana_add_task_dependents
- Abhängige Aufgaben für eine Aufgabe festlegen (Aufgaben, die von dieser Aufgabe abhängen)
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die Aufgaben-ID, zu der abhängige Elemente hinzugefügt werden sollen
- dependents (Array von Zeichenfolgen): Array von Task-IDs, die von dieser Task abhängen
- Rückgabe: Aktualisierte abhängige Aufgaben
asana_create_subtask
- Erstellen Sie eine neue Unteraufgabe für eine vorhandene Aufgabe
- Erforderliche Eingabe:
- parent_task_id (Zeichenfolge): Die ID der übergeordneten Aufgabe, unter der die Unteraufgabe erstellt werden soll
- name (string): Name der Unteraufgabe
- Optionale Eingabe:
- Notizen (Zeichenfolge): Beschreibung der Unteraufgabe
- due_on (Zeichenfolge): Fälligkeitsdatum im Format JJJJ-MM-TT
- assignee (Zeichenfolge): Zugewiesener Empfänger (kann „ich“ oder eine Benutzer-ID sein)
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Gibt zurück: Informationen zur erstellten Unteraufgabe
asana_get_multiple_tasks_by_gid
- Erhalten Sie detaillierte Informationen zu mehreren Aufgaben anhand ihrer GIDs (maximal 25 Aufgaben).
- Erforderliche Eingabe:
- task_ids (Array von Zeichenfolgen oder durch Kommas getrennte Zeichenfolge): Abzurufende Task-GIDs (max. 25)
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Liste mit detaillierten Aufgabeninformationen
asana_get_project_status
- Erhalten Sie ein Projektstatus-Update
- Erforderliche Eingabe:
- project_status_gid (Zeichenfolge): Die abzurufende Projektstatus-GID
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Informationen zum Projektstatus
asana_get_project_statuses
- Alle Statusaktualisierungen für ein Projekt abrufen
- Erforderliche Eingabe:
- project_gid (Zeichenfolge): Die Projekt-GID, für die Status abgerufen werden sollen
- Optionale Eingabe:
- Limit (Anzahl): Ergebnisse pro Seite (1-100)
- Offset (Zeichenfolge): Paginierungs-Offset-Token
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Liste der Projektstatusaktualisierungen
asana_create_project_status
- Erstellen Sie ein neues Statusupdate für ein Projekt
- Erforderliche Eingabe:
- project_gid (Zeichenfolge): Die Projekt-GID, für die der Status erstellt werden soll
- Text (Zeichenfolge): Der Textinhalt des Statusupdates
- Optionale Eingabe:
- Farbe (Zeichenfolge): Die Farbe des Status (grün, gelb, rot)
- Titel (Zeichenfolge): Der Titel des Statusupdates
- html_text (Zeichenfolge): HTML-formatierter Text für das Status-Update
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Erstellte Projektstatusinformationen
asana_delete_project_status
- Löschen einer Projektstatusaktualisierung
- Erforderliche Eingabe:
- project_status_gid (Zeichenfolge): Die zu löschende Projektstatus-GID
- Rückgabe: Löschbestätigung
asana_set_parent_for_task
- Legen Sie die übergeordnete Aufgabe einer Aufgabe fest und positionieren Sie die Unteraufgabe innerhalb der anderen Unteraufgaben dieser übergeordneten Aufgabe.
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die zu bearbeitende Task-ID
- Daten (Objekt):
- parent (Zeichenfolge): Das neue übergeordnete Element der Aufgabe oder null, wenn kein übergeordnetes Element vorhanden ist.
- Optionale Eingabe:
- insert_after (Zeichenfolge): Eine Unteraufgabe des übergeordneten Elements, nach der die Aufgabe eingefügt werden soll, oder null, um sie am Anfang der Liste einzufügen.
- insert_before (Zeichenfolge): Eine Unteraufgabe des übergeordneten Elements, vor der die Aufgabe eingefügt werden soll, oder null, um sie am Ende der Liste einzufügen.
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Rückgabe: Aktualisierte Aufgabeninformationen
asana_get_tasks_for_tag
- Abrufen von Aufgaben für ein bestimmtes Tag
- Erforderliche Eingabe:
- tag_gid (Zeichenfolge): Die Tag-GID zum Abrufen von Aufgaben für
- Optionale Eingabe:
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- opt_pretty (Boolesch): Stellt die Antwort in einem „hübschen“ Format bereit
- limit (Ganzzahl): Die Anzahl der pro Seite zurückzugebenden Objekte. Der Wert muss zwischen 1 und 100 liegen.
- Offset (Zeichenfolge): Ein Offset zur nächsten Seite, der von der API zurückgegeben wird.
- Gibt zurück: Liste der Aufgaben für das angegebene Tag
asana_get_tags_for_workspace
- Abrufen von Tags in einem Arbeitsbereich
- Erforderliche Eingabe:
- workspace_gid (Zeichenfolge): Global eindeutige Kennung für den Arbeitsbereich oder die Organisation
- Optionale Eingabe:
- limit (Ganzzahl): Ergebnisse pro Seite. Die Anzahl der pro Seite zurückzugebenden Objekte. Der Wert muss zwischen 1 und 100 liegen.
- Offset (Zeichenfolge): Offset-Token. Ein Offset zur nächsten Seite, der von der API zurückgegeben wird.
- opt_fields (Zeichenfolge): Durch Kommas getrennte Liste der einzuschließenden optionalen Felder
- Gibt zurück: Liste der Tags im Arbeitsbereich
Eingabeaufforderungen
task-summary
- Erhalten Sie eine Zusammenfassung und ein Status-Update für eine Aufgabe basierend auf ihren Notizen, benutzerdefinierten Feldern und Kommentaren
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die Aufgaben-ID, für die eine Zusammenfassung abgerufen werden soll
- Rückgabe: Eine detaillierte Eingabeaufforderung mit Anweisungen zum Erstellen einer Aufgabenzusammenfassung
task-completeness
- Analysieren Sie, ob eine Aufgabenbeschreibung alle notwendigen Details zur Erledigung enthält
- Erforderliche Eingabe:
- task_id (Zeichenfolge): Die zu analysierende Task-ID oder URL
- Rückgabe: Eine detaillierte Eingabeaufforderung mit Anweisungen zur Analyse der Aufgabenerfüllung
create-task
- Erstellen Sie eine neue Aufgabe mit angegebenen Details
- Erforderliche Eingabe:
- project_name (Zeichenfolge): Der Name des Asana-Projekts, in dem die Aufgabe erstellt werden soll
- Titel (Zeichenfolge): Der Titel der Aufgabe
- Optionale Eingabe:
- Notizen (Zeichenfolge): Notizen oder Beschreibung für die Aufgabe
- due_date (Zeichenfolge): Fälligkeitsdatum der Aufgabe (Format JJJJ-MM-TT)
- Rückgabe: Eine detaillierte Eingabeaufforderung mit Anweisungen zum Erstellen einer umfassenden Aufgabe
Ressourcen
- Arbeitsbereiche –
asana://workspace/{workspace_gid}
- Darstellung von Asana-Arbeitsbereichen als Ressourcen
- Jeder Arbeitsbereich wird als separate Ressource bereitgestellt
- URI-Format:
asana://workspace/{workspace_gid}
- Gibt zurück: JSON-Objekt mit Arbeitsbereichsdetails, einschließlich:
name
: Name des Arbeitsbereichs (Zeichenfolge)id
: Globale ID des Arbeitsbereichs (Zeichenfolge)type
: Ressourcentyp (Zeichenfolge)is_organization
: Ob der Arbeitsbereich eine Organisation ist (Boolesch)email_domains
: Liste der mit dem Arbeitsbereich verknüpften E-Mail-Domänen (string[])
- MIME-Typ:
application/json
- Projekte -
asana://project/{project_gid}
- Vorlagenressource zum Abrufen von Projektdetails nach GID
- URI-Format:
asana://project/{project_gid}
- Gibt zurück: JSON-Objekt mit Projektdetails, einschließlich:
name
: Projektname (Zeichenfolge)id
: Globale Projekt-ID (Zeichenfolge)type
: Ressourcentyp (Zeichenfolge)archived
: Ob das Projekt archiviert ist (Boolesch)public
: Ob das Projekt öffentlich ist (Boolesch)notes
: Projektbeschreibung/Notizen (Zeichenfolge)color
: Projektfarbe (Zeichenfolge)default_view
: Standardansichtstyp (Zeichenfolge)due_date
,due_on
,start_on
: Informationen zum Projektdatum (Zeichenfolge)workspace
: Objekt mit Arbeitsbereichsinformationenteam
: Objekt mit Teaminformationensections
: Array von Abschnittsobjekten im Projektcustom_fields
: Array von benutzerdefinierten Felddefinitionen für das Projekt
- MIME-Typ:
application/json
Aufstellen
- Erstellen Sie ein Asana-Konto :
- Besuchen Sie die Asana .
- Klicken Sie auf „Anmelden“.
- Rufen Sie das Asana-Zugriffstoken ab :
- Sie können ein persönliches Zugriffstoken über die Asana-Entwicklerkonsole generieren.
- Weitere Details hier: https://developers.asana.com/docs/personal-access-token
- Installationsoptionen :
Für Claude Desktop:
Fügen Sie Ihrer claude_desktop_config.json
Folgendes hinzu:
Für Claude Code:
Verwenden Sie den folgenden Befehl, um den MCP-Server zu installieren und zu konfigurieren:
Ersetzen Sie <TOKEN>
durch Ihr Asana-Zugriffstoken.
Wenn Sie die Betaversion (noch nicht veröffentlicht) installieren möchten, können Sie Folgendes verwenden:
@roychri/mcp-server-asana@beta
Die aktuelle Betaversion (sofern vorhanden) finden Sie hier:
- https://www.npmjs.com/package/@roychri/mcp-server-asana?activeTab=versions
npm dist-tag ls @roychri/mcp-server-asana
Fehlerbehebung
Wenn Berechtigungsfehler auftreten:
- Stellen Sie sicher, dass Ihr Asana-Plan den API-Zugriff ermöglicht
- Bestätigen Sie, dass das Zugriffstoken und die Konfiguration in
claude_desktop_config.json
richtig eingestellt sind.
Beitragen
Klonen Sie dieses Repo und beginnen Sie mit dem Hacken.
Testen Sie es lokal mit dem MCP Inspector
Wenn Sie Ihre Änderungen testen möchten, können Sie den MCP Inspector wie folgt verwenden:
Dadurch wird dem Client Port 5173
und dem Server Port 3000
zugewiesen.
Wenn diese Ports bereits von etwas anderem verwendet werden, können Sie Folgendes verwenden:
Lizenz
Dieser MCP-Server ist unter der MIT-Lizenz lizenziert. Das bedeutet, dass Sie die Software unter den Bedingungen der MIT-Lizenz frei verwenden, ändern und verbreiten dürfen. Weitere Informationen finden Sie in der LICENSE-Datei im Projekt-Repository.
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Führen Sie Asana-Vorgänge von einem MCP-Client aus, beispielsweise der Claude-Desktopanwendung von Anthropic und vielem mehr.
- Umgebungsvariablen
- Verwendung
- Werkzeuge
- Eingabeaufforderungen
- Ressourcen
- Aufstellen
- Fehlerbehebung
- Beitragen
- Lizenz
Related Resources
Related MCP Servers
- -securityAlicense-qualityA simple MCP server for interacting with OpenAI assistants. This server allows other tools (like Claude Desktop) to create and interact with OpenAI assistants through the Model Context Protocol.Last updated -26PythonMIT License
- AsecurityAlicenseAqualityA tool that helps manage and synchronize MCP server configurations across different AI assistant clients (Cline, Roo Code, WindSurf, Claude), automating the process of retrieving, listing, adding, and removing server configurations from client configuration files.Last updated -661JavaScriptMIT License
- -securityAlicense-qualityAn MCP server that enables Claude to interact with Port.io's AI agent, allowing users to trigger the agent with prompts and receive structured responses including status, output, and action items.Last updated -6PythonMIT License
- -securityAlicense-qualityThis server implementation allows AI assistants to interact with Asana's API, enabling users to manage tasks, projects, workspaces, and comments through natural language requests.Last updated -342TypeScriptMIT License