ClickUp MCP Server
ClickUp MCP Server
Ein Model Context Protocol Server für ClickUp, aufgebaut auf zwei Ideen:
Alles trägt menschliche Namen. find(scope: "Cavalry/Findings", assignee: "me", due: "overdue") — keine IDs, kein Durchlaufen des Baums, um sie zu entdecken. Namen, die sich nicht auflösen lassen, erzeugen einen Fehler, der die gültigen Optionen auflistet, denn ein selbstbewusst leeres Ergebnis ist schlimmer als ein Fehlschlag.
Du entscheidest, was er kann. Vier Fähigkeitsprofile, durchgesetzt bei jeder ausgehenden Anfrage. Gib einem unbeaufsichtigten Agenten das Profil agent und er kann Aufgaben und Kommentare erstellen, aber nichts Bestehendes ändern oder löschen.
18 Werkzeuge, 354 Tests. Version 4.3.0 — siehe CHANGELOG.md. Ein stark renovierter Fork von nsxdavid/clickup-mcp-server.
Status: 4.x ist neu. Es hat fünf adversariale Red-Team-Runden durchlaufen, wurde aber noch nicht in Produktion eingesetzt. Die vorherige 3.x-Linie wird weiterhin in diesem Repository ausgeliefert und ist weiterhin das, was die Referenzbereitstellung ausführt — siehe Ausführen von 3.x.
Schnellstart
Hole dir ein Token von ClickUp → Einstellungen → Apps → API-Token (es beginnt mit pk_). Der Workspace wird automatisch erkannt — es gibt nichts weiter zu konfigurieren.
Ohne Installation:
{
"mcpServers": {
"clickup": {
"command": "npx",
"args": ["-y", "github:benthesoundguy/clickup-mcp-server"],
"env": { "CLICKUP_API_TOKEN": "pk_your_token_here" }
}
}
}Oder aus einem Klon, was du willst, wenn du etwas ändern möchtest:
git clone https://github.com/benthesoundguy/clickup-mcp-server
cd clickup-mcp-server
npm install # builds automatically
npm run check # verifies the token and connects — do this before wiring up a client{
"mcpServers": {
"clickup": {
"command": "node",
"args": ["/absolute/path/to/clickup-mcp-server/build/v4/index.js"],
"env": { "CLICKUP_API_TOKEN": "pk_your_token_here" }
}
}
}Wo dieser Block hingehört
Die obige Form funktioniert unverändert in Claude Desktop, Claude Code, Cursor, Cline und Windsurf — sie alle verwenden den Schlüssel mcpServers. Zwei Clients unterscheiden sich:
VS Code (
.vscode/mcp.json) verwendetserversstattmcpServers. Gleiche innere Form. Das Kopieren einer Cursor-Konfiguration unverändert ist der häufigste Einrichtungsfehler.Zed (
settings.json) verwendetcontext_serversund verschachtelt den Befehl:{ "context_servers": { "clickup": { "command": { "path": "node", "args": ["/path/to/build/v4/index.js"] } } } }
Claude Code kann die Datei ganz überspringen:
claude mcp add clickup --env CLICKUP_API_TOKEN=pk_... -- npx -y github:benthesoundguy/clickup-mcp-serverDas Token stattdessen in eine Datei legen
Wenn du ein Token nicht in eine Client-Konfiguration einfügen möchtest — Desktop-Apps überschreiben diese Dateien und können eine veraltete Kopie beibehalten — lege es in eine .env neben der Installation und lasse den env-Block ganz weg:
echo 'CLICKUP_API_TOKEN=pk_your_token_here' > .envDer Server sucht in <cwd>/.env, <install>/.env und <install>/../.env, in dieser Reihenfolge, und sagt beim Start, welche er verwendet hat. Das Token aus der Datei hat Vorrang vor der Umgebung, sodass das Rotieren an einer Stelle tatsächlich wirksam wird. Jede andere Einstellung funktioniert umgekehrt — ein expliziter Wert in deiner Client-Konfiguration gewinnt immer, sodass eine verirrte .env niemals MCP_PROFILE erweitern kann. Setze MCP_STRICT_ENV=1 auf einem Server, um die gesamte Suche abzuschalten.
Wenn es nicht funktioniert
npm run check # from a clone
node build/v4/index.js --checkDies gibt jede Eingabe aus, die der Server aufgelöst hat — welche .env er gefunden hat und was er angewendet hat, ob das Token vorhanden und in der richtigen Form ist, das aktive Profil und die Werkzeuganzahl, die Node-Version und den Build-Stempel — und verbindet sich dann tatsächlich mit ClickUp und meldet, wer du bist und dein Ratenbudget. Es gibt niemals das Token aus, sodass die Ausgabe sicher in ein Issue eingefügt werden kann.
Wenn das Token fehlt, stirbt der Server nicht still im stdio-Modus. Er startet, registriert seine Werkzeuge, und jeder Aufruf antwortet mit dem, was falsch ist und wie man es behebt, sodass das Problem in deinem Gespräch auftaucht und nicht in einer Logdatei, die du erst suchen musst. (Im HTTP-Modus beendet er sich weiterhin mit 1 — eine unbeaufsichtigte Bereitstellung sollte laut scheitern.)
Related MCP server: ClickUp MCP Server
Fähigkeitsprofile
Ein Binär, vier Profile, ausgewählt mit MCP_PROFILE. Installiere einmal und füge einen Client-Eintrag pro Profil hinzu, um zu ermöglichen, was ein bestimmter Agent haben soll.
| Werkzeuge | Schema-Kosten | Was er kann |
| 11 | 2.236 Tok | Nur beobachten. Kein Schreiben jeglicher Art kann den Prozess verlassen. |
| 12 | 2.635 Tok | Lesen, plus anhängen: Aufgaben, Kommentare, Chat-Nachrichten, Checklisteneinträge, Zeiterfassungen erstellen. Kann nichts Bestehendes ändern oder löschen. |
| 16 | 4.129 Tok | Alles, was ein normaler Benutzer tut. Keine Mitgliedschafts-, Gast- oder Webhook-Verwaltung. |
| 18 | 4.748 Tok | Uneingeschränkt, einschließlich Mitgliedschaft und Webhooks. |
Schema-Kosten sind das, was die Werkzeugdefinitionen im Kontext des Modells bei jeder Anfrage verbrauchen, bevor irgendeine Arbeit passiert. Zum Vergleich: 3.x kostet ~18.600 Tokens für 88 Werkzeuge.
agent ist das Interessante. Er kann hinzufügen, aber niemals ändern oder zerstören, sodass das Schlimmste, was ein unbeaufsichtigter Agent tun kann, darin besteht, Unordnung zu erzeugen, die du löschen kannst. Diese Garantie wird in drei Schichten durchgesetzt, und nur die dritte ist eine Sicherheitsgrenze:
Werkzeugfilterung — welche Werkzeuge überhaupt erscheinen (Kontextkosten + Werkzeugauswahl)
Aktionsfilterung — welche Aktionen ein Werkzeug bewirbt (Kontextkosten + Ehrlichkeit)
Schreibrichtlinie — eine Whitelist, die bei jeder ausgehenden Anfrage geprüft wird, einschließlich Uploads ← die Garantie
Schichten 1 und 2 hängen davon ab, dass jedes Werkzeug von jedem zukünftigen Mitwirkenden korrekt getaggt wird. Schicht 3 nicht: Sie inspiziert die tatsächliche Anfrage auf dem Weg nach draußen, sodass ein falsch getaggtes Werkzeug, ein Refactoring oder ein nächstes Jahr hinzugefügter Endpunkt ein Profil nicht erweitern kann. Die Testsuite beweist dies, indem sie core-nur-Handler direkt mit einem agent-Kontext aufruft — wobei Schichten 1 und 2 vollständig umgangen werden — und behauptet, dass nichts auf die Leitung gelangt.
Dinge, die additiv aussehen, aber absichtlich von agent ausgeschlossen sind: Das Anhängen eines Tags, das Setzen eines benutzerdefinierten Felds und das Hinzufügen einer Abhängigkeit mutieren alle eine bestehende Aufgabe; das Erstellen eines Webhooks beginnt, deine Daten an einen externen Endpunkt zu streamen. Nur-Anhängen und sicher sind nicht dieselbe Eigenschaft.
Warum der Standard core und nicht full ist
full gewährt Mitgliedschaftsverwaltung — das Einladen eines Benutzers verbraucht einen kostenpflichtigen Sitzplatz, das Entfernen eines Benutzers ändert den Zugriff einer echten Person — plus Webhooks, die Workspace-Daten an einen externen Ort senden. Nichts davon ist das, wofür eine erste Verbindung gedacht ist, und ein Standard, den niemand ändert, muss der sichere sein. Fordere Verwaltung namentlich an, wenn du sie willst; bis dahin sagt dir die Ablehnung genau, wie.
Anhänge und das Dateisystem
attach liest eine Datei von der Maschine, auf der der Server läuft. Das ist eine Ressource, die die Schreibrichtlinie nicht sehen kann — sie inspiziert URLs, und ein Dateilesen hat keine URL — daher wird sie separat durch CLICKUP_ATTACH_ROOT geregelt:
Gesetzt → Lesezugriffe sind auf dieses Verzeichnis beschränkt. Die Eindämmung wird gegen den echten Pfad der Datei geprüft, nach Auflösung von
..und jedem Symlink.Nicht gesetzt →
coreundfullkönnen jede Datei lesen, die der Prozess kann. Unteragentwirdattachüberhaupt nicht angeboten (12 Werkzeuge statt 13), weil es keinen sicheren Standard-Root gibt: Das Arbeitsverzeichnis ist normalerweise das Projektverzeichnis, in dem.envliegt.
Ein falsch konfigurierter Root ist beim Start fatal, nicht ignoriert — eine Grenze, die still nicht da ist, ist schlimmer als keine.
Werkzeuge
Werkzeug | Mindestprofil | Aufgabe |
| read | Aufgaben überall abfragen. Bereich, Status, Beauftragte, Tags, Fälligkeitsdatum — alles nach Namen. |
| read | Eine Aufgabe vollständig, optional mit Kommentaren und Unteraufgaben. |
| read | Workspace-Struktur, die die genauen Pfade ausgibt, die andere Werkzeuge akzeptieren. |
| read | Welche Werte hier legal sind — Status, die eine Liste akzeptiert, Tags in einem Space, zuweisbare Personen. |
| read | Identität, Workspace, Ratenlimit-Budget, Serverzustand. |
| read | ClickUp-Dokumente durchsuchen oder eines lesen. |
| read | Den Kommentarthread einer Aufgabe lesen oder darin posten. |
| read |
|
| read | Benutzerdefinierte Felder einer Liste inspizieren oder eines nach Namen setzen. |
| read |
|
| read |
|
| agent | Eine oder mehrere Aufgaben erstellen — ein Array für Massenoperationen übergeben. |
| agent | Eine lokale Datei zu einer Aufgabe hochladen (max. 25 MB). Siehe oben. |
| core | Aktualisieren, verschieben, zuweisen, schließen oder löschen — mehrere IDs für Massenoperationen übergeben. |
| core |
|
| core |
|
| full | Mitglieder, Gäste, Sitzplätze, Gruppen, Einladungen, Admin-Rechte. |
| full |
|
Werkzeuge verengen sich, wo es sinnvoll ist, statt zu verschwinden: Unter read zeigt comment nur seine Lese-Argumente und checklist bewirbt nur list, sodass das Schema die Wahrheit darüber sagt, was diese Verbindung kann, statt Aktionen zu bewerben, die abgelehnt würden.
Die Regel, der alles folgt
Gib niemals eine selbstbewusste falsche Antwort zurück. ClickUp macht es leicht, das falsch zu machen, weil es auf schlechte Eingaben mit fröhlichem Unsinn antwortet:
Anfrage | ClickUp sagt | Was wie folgt liest |
|
| „Sam hat keine Arbeit" — es gibt keinen Sam |
|
| eine gefilterte Suche, die es nicht war |
|
| „verschoben" — es wurde nicht verschoben |
|
| „verschoben" — still ignoriert |
|
| ein Berechtigungsproblem — es ist ein Tippfehler |
|
| ein Ausfall — es ist eine schlechte Enum |
Also löst dieser Server Namen auf und erhebt bei Mehrdeutigkeit („Findings", das vier Listen entspricht, ist ein Fehler, der alle vier nennt, nie ein Münzwurf); erhebt statt leer zurückzugeben, wenn ein Filterwert sich nicht auflöst; validiert Enums clientseitig gegen das, was die Liste tatsächlich akzeptiert; verifiziert Schreibvorgänge, denen er nicht vertrauen kann, indem er das Objekt zurückliest; und übertreibt niemals eine Anzahl — eine Abfrage, die das Paging stoppt, meldet 100+ Treffer, und jeder clientseitige Filter meldet, wie viel tatsächlich gescannt wurde.
Fehler sagen, was fehlgeschlagen ist, warum und was als Nächstes zu tun ist, mit den gültigen Optionen aufgelistet.
Umgebungsvariablen
Variable | Standard | Hinweise |
| — | Erforderlich. Persönliches ClickUp-API-Token. |
|
|
|
| nicht gesetzt | Absolutes Verzeichnis, aus dem |
| ermittelt | Nur erforderlich, wenn das Token mehrere Workspaces sehen kann und Sie einen bestimmten möchten. |
|
| Auf |
|
| Bind-Adresse. Standardmäßig Loopback – setzen Sie einen Proxy oder Tunnel davor, statt |
|
| Wählt ebenfalls den HTTP-Modus, wenn gesetzt. |
| generiert | Statisches Bearer-Token, mindestens 16 Zeichen. Optional, sobald |
| — | Issuer-URL des Autorisierungsservers. Durch das Setzen wird dieser Server zu einem OAuth-Ressourcenserver. |
| — | Erforderlich mit OAuth. Die kanonische URI dieses Servers – die Audience, die eingehende Tokens nennen müssen. Wird nie aus der Anfrage abgeleitet. |
|
| Überschreibung, falls Ihr Issuer einen anderen Audience-Wert ausstellt. |
| ermittelt | Signaturschlüssel, falls der Issuer kein Discovery-Dokument veröffentlicht. |
| — | Werden im Metadaten-Dokument angekündigt. Nur informativ. |
| deaktiviert | Für Server auf |
| deaktiviert im strikten Modus | Aktiviert die |
| deaktiviert | Deaktiviert die Suche nach der |
| — | Cloudflare Access-Team. Aktiviert die Access-JWT-Validierung. |
| — | Access-Anwendungs-AUD-Tag. Erforderlich zusammen mit der Team-Domain – keines allein aktiviert etwas. |
Remote-Modus (Claude Web + Mobile und jeder HTTP-Client)
Der Server spricht streamable HTTP und akzeptiert drei unabhängige Anmeldeinformationen. Jede dieser Anmeldeinformationen authentifiziert eine Anfrage; sie sollen koexistieren, weil verschiedene Clients unterschiedliche Dinge präsentieren können.
Anmeldeinformationen | Zweck | Festgelegt mit |
OAuth 2.1 access token | Gehostete Clients – claude.ai-Connectors, ChatGPT-Connectors, alles Spezifikationskonforme |
|
Cloudflare Access JWT | Ein Origin hinter einem CF-Tunnel |
|
Statisches Bearer-Token | Skripte, n8n, curl, CI |
|
MCP_TRANSPORT=http MCP_AUTH_TOKEN=$(openssl rand -hex 24) \
MCP_PROFILE=core CLICKUP_API_TOKEN=... node build/v4/index.jsGET /health ist eine nicht authentifizierte Sonde, die Version, aktives Profil, Tool-Anzahl und Attachment-Stammverzeichnis meldet.
OAuth (was gehostete Clients wollen)
Dieser Server muss kein OAuth-Anbieter sein und ist auch keiner. Seit der MCP-Spezifikation vom 2025-06-18 ist ein MCP-Server ein Ressourcenserver: Er benennt den Autorisierungsserver, dem er vertraut, und validiert die Tokens, die dieser Server ausstellt. Login, Einwilligung und Token-Ausstellung gehören zu Ihrem IdP – Cloudflare Access, WorkOS, Auth0, Descope, Stytch, Keycloak, alles mit OIDC-Discovery.
MCP_TRANSPORT=http \
MCP_PUBLIC_URL=https://mcp.example.com \
MCP_OAUTH_ISSUER=https://your-idp.example.com \
CLICKUP_API_TOKEN=pk_... node build/v4/index.jsDas ist die gesamte Konfiguration. Der Server:
stellt RFC 9728 Protected Resource Metadata unter
/.well-known/oauth-protected-resourcebereit, die Ihren Issuer benennt, ohne Authentifizierung;beantwortet eine nicht authentifizierte Anfrage mit
401und einemWWW-Authenticate-Header, der auf dieses Dokument verweist – so findet ein Client heraus, wo er sich anmelden muss;entdeckt die Signaturschlüssel Ihres Issuers über
/.well-known/openid-configuration(oder RFC 8414) oder verwendetMCP_OAUTH_JWKS_URL, falls Sie ihn setzen;validiert jedes Token: RS256 festgeschrieben, Signatur gegen die JWKS des Issuers,
exp,nbf,issundaud– das Token muss diesen Server nennen.
Die letzte Prüfung ist die entscheidende. Ohne sie könnte ein Token, das Ihr IdP für einen anderen Dienst ausgestellt hat, hier wiederverwendet werden. Deshalb ist MCP_PUBLIC_URL erforderlich und wird nicht abgeleitet: Die erwartete Audience darf niemals aus der Anfrage stammen, da der Host-Header vom Aufrufer gesetzt wird.
MCP_AUTH_TOKEN wird optional, sobald ein Issuer konfiguriert ist – eine reine OAuth-Bereitstellung braucht kein gemeinsames Passwort, das sie nie verwendet.
Hinweis zur dynamischen Client-Registrierung. Die Spezifikation vom 2026-07-28 hat DCR zugunsten von Client-ID-Metadaten-Dokumenten als veraltet eingestuft. Diese Änderung betrifft Autorisierungsserver und Clients; ein Ressourcenserver ist in beiden Fällen nicht betroffen, was ein guter Grund ist, zu delegieren, statt einen eigenen AS zu entwickeln.
Die Einschränkung des claude.ai-Connectors
Die benutzerdefinierte Connector-Oberfläche von Claude akzeptiert nur OAuth-Felder – Authorization URL, Token URL, Client ID, Client Secret. Es gibt kein Feld für ein statisches Bearer-Token oder einen benutzerdefinierten Header (#112, #411). Daher:
Mit konfiguriertem OAuth verbinden Sie ihn als normalen benutzerdefinierten Connector. Das ist der vorgesehene Weg.
Ohne OAuth ist der einzige Weg die Token-in-URL-Form,
/mcp/<token>, aktiviert mitMCP_ALLOW_TOKEN_IN_PATH=1. Sie funktioniert, legt aber eine Anmeldeinformation in eine URL, wo Proxys sie protokollieren; deshalb verweigert der strikte Modus sie. Behandeln Sie sie als Notbehelf, nicht als Bereitstellung.
Cloudflare Access (optionaler dritter Authentifizierungsmodus)
Setzen Sie CF_ACCESS_TEAM_DOMAIN und CF_ACCESS_AUD, und der Server validiert den Cf-Access-Jwt-Assertion-Header, den Access jeder weitergeleiteten Anfrage hinzufügt: RS256 gegen die Team-JWKS, plus exp, iss und aud. Beide Access-Flows validieren über einen Pfad – eine Browser-Anmeldung enthält email, ein Service-Token enthält common_name.
Das ist Verteidigung in der Tiefe. Eine Anfrage, die den Origin ohne Durchlauf durch Access erreicht – eine Tunnel-Fehlkonfiguration, ein zweiter Ingress, etwas im Netzwerk des Hosts – kann keinen Access-authentifizierten Aufrufer imitieren. Im Fehlerfall verweigert sie den Zugriff: alg ist auf RS256 festgelegt (sodass alg: none und HS256-Algorithmus-Verwechslung abgelehnt werden), eine nicht erreichbare JWKS führt zur Verweigerung, nicht zur Umgehung, und die JWKS-URL stammt aus der Konfiguration, nie aus dem Token.
Bearer-Authentifizierung funktioniert weiterhin. Eine Anfrage wird durch ein gültiges Access-JWT oder ein gültiges Bearer-Token autorisiert, daher müssen Agents, die Header unterstützen, nichts ändern.
Der Origin stellt /.well-known/oauth-* nicht bereit – bei aktiviertem Managed OAuth ist Access der Autorisierungsserver und stellt Discovery am Edge bereit.
Strikter Modus (MCP_STRICT_ENV=1)
Die Haltung für eine unbeaufsichtigte Bereitstellung. Geheimnisse müssen aus der Umgebung kommen, der Server erfindet oder persistiert niemals eine Anmeldeinformation, und er beendet sich mit dem Exit-Code 1 und einer umsetzbaren Meldung, statt fehlkonfiguriert zu starten. Er verweigert außerdem die URL-Pfad-Token-Form, die die Anmeldeinformation in Proxy-Zugriffsprotokolle bringt.
Das ist wichtig, weil die Suche nach der .env-Datei bewusst Vorrang vor process.env hat – ein Desktop-Host überschreibt beim Beenden seine eigene Konfigurationsdatei aus dem Speicher, daher muss die Datei dort gewinnen. Auf einem Server ist diese Rangfolge umgekehrt: Eine verirrte .env im Arbeitsverzeichnis würde stillschweigend Vorrang vor der systemd-Unit haben. Der strikte Modus deaktiviert die Suche.
Siehe deploy/DEPLOY.md für das vollständige Rezept: VPS-Setup-Skript, gehärtete systemd-Unit, Cloudflare Tunnel und das Verbinden mit Claude.
Upgrade von 3.x
Die Tool-Namen sind völlig anders – 4.x ist eine Neuimplementierung, keine Umbenennung. Alles, was hartkodierte 3.x-Tool-Namen enthält (gespeicherte Prompts, Agent-Anweisungen, Skripte), muss aktualisiert werden.
Die Zuordnung ist größtenteils viele-zu-eins:
3.x | 4.x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nicht übernommen: project_intelligence (die acht lokalen Analyseberichte) und reminders_create. Status-Verwaltung – Erstellen, Umbenennen, Neuanordnen von Status – fehlt ebenfalls; meta liest Status, ändert sie aber nicht. Wenn Sie eines davon benötigen, verwenden Sie 3.x.
3.x ausführen
3.x wird weiterhin aus diesem Repository erstellt und ausgeliefert:
npm run start:v3 # via the package script
node build/index.js # the 3.x entry point directlyRichten Sie einen MCP-Client auf build/index.js statt auf build/v4/index.js, um es weiter zu verwenden.
Die Referenz-systemd-Unit in deploy/ ist bewusst weiterhin auf 3.x festgelegt, weil ein laufender Dienst nicht die Hauptversion wechseln sollte, nur weil sich ein Paketstandard darunter verschoben hat. Migrieren Sie sie, indem Sie ExecStart auf build/v4/index.js zeigen lassen und MCP_PROFILE explizit setzen.
Bekannte Einschränkungen der ClickUp-API
Keine Bugs hier – die API hat diese Funktionen schlicht nicht, und dieser Server meldet die Einschränkung, anstatt sie zu vertuschen.
Aufgaben können nicht zwischen Listen verschoben werden.
POST /list/{dest}/task/{id}gibt200 {}zurück und tut nichts ohne die ClickApp „Tasks in Multiple Lists“;PUTmitlist_idwird stillschweigend ignoriert;/moveliefert 404. Der Move-Pfad vonupdateliest die Aufgabe erneut und schlägt laut fehl, anstatt einen nicht erfolgten Move zu melden.Anhänge haben keinen Listen-Endpunkt –
taskliest sie vom Aufgabenobjekt. Uploads sind nur als Multipart möglich und auf 25 MB begrenzt.Dokumente können nicht umbenannt oder gelöscht werden, und Seiten können nicht gelöscht werden.
Definitionen benutzerdefinierter Felder können aufgelistet und erstellt, aber nicht bearbeitet oder gelöscht werden.
Datumsbezogene benutzerdefinierte Felder erfordern Unix-Millisekunden;
YYYY-MM-DDwird von ClickUp für diese abgelehnt.due_date/start_datevon Aufgaben akzeptieren beides und werden hier konvertiert.Status- und Tag-Namen werden kleingeschrieben gespeichert; der Abgleich hier ist durchgängig case-insensitiv.
Listen überschreiben ständig die Status ihres Spaces, daher ist „welche Status gültig sind“ eine Frage pro Liste.
metabeantwortet sie pro Liste.ClickUp antwortet auf ein ungültiges Enum mit HTTP 500, daher werden Enums clientseitig validiert, bevor sie gesendet werden.
Das Ratelimit liegt bei ungefähr 100 Anfragen/Minute pro Token, geteilt über alles, was es verwendet.
whoamimeldet das aktuelle Budget; der Server passt sich selbst an diex-ratelimit-*-Header an.
Webhook-Empfänger (optional)
Verarbeitet ClickUp-Webhook-Ereignisse ohne externe Infrastruktur:
WEBHOOK_PORT=3001 WEBHOOK_SECRET=your_secret node build/webhook-receiver/index.jsHMAC-SHA256-Validierung über den rohen Request-Body; wenn ein Secret konfiguriert ist, werden unsignierte Anfragen abgelehnt
Strukturierte Ereignisanalyse – Typ, Objekt, Operation, Änderungen, Benutzer, Zeitstempel
Optionale Weiterleitung an eine Callback-URL (
WEBHOOK_FORWARD_URL)Reines Node.js
http, null zusätzliche Abhängigkeiten
Entwicklung
npm install
npm run build
npm test # 354 tests, mocked HTTP — no token needed
npm run smoke # live CRUD walk (needs CLICKUP_API_TOKEN; creates and
# deletes its own sandbox in your workspace)Architekturnotizen für 4.x befinden sich in src/v4/README.md; die Designbegründung und Messungen sind in V4-PLAN.md.
Debuggen eines Fixes, der „nicht funktioniert hat“
Rufen Sie whoami auf. Es meldet die Version und den Stempel des laufenden Builds. MCP-Hosts starten ihren eigenen Serverprozess zu Sitzungsbeginn und halten ihn, daher erreicht ein Rebuild eine bereits laufende Sitzung nicht – wenn der Stempel älter als Ihre Änderung ist, starten Sie die Host-App neu. Dies war für mehrere Phantom-Bugmeldungen verantwortlich, bevor das Tool existierte.
Lizenz
MIT – siehe LICENSE. Fork von nsxdavid/clickup-mcp-server von David Whatley.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceAn enhanced Model Context Protocol server that enables AI assistants to interact with ClickUp workspaces, supporting task relationships, comments, checklists, and workspace management through natural language.02
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI agents to interact with ClickUp workspaces, allowing task creation, management, and workspace organization through natural language commands.2121,8572MIT
- AlicenseAqualityAmaintenanceA comprehensive MCP server for the ClickUp API exposing 166 tools to manage Spaces, Folders, Lists, Tasks, Docs, and more, enabling LLMs to read and drive a ClickUp Workspace.1001Apache 2.0
- FlicenseNot gradedqualityDmaintenanceComplete Model Context Protocol server for ClickUp, enabling interaction with tasks, spaces, lists, docs, goals, time tracking, and more through 93 tools and 18 React MCP apps.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/benthesoundguy/clickup-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server