ClickUp MCP Server
clickup-mcp-server is a Python tool to set up MCP server easily and humanly.
Overview
🦾 A strong Model, Capability, Protocol (MCP) server for ClickUp API integration. This server provides a standardized interface for interacting with ClickUp's API through the MCP protocol, making it easier to build AI-enabled applications that leverage ClickUp's project management capabilities.
Features
- Multiple transport protocols (HTTP streaming and SSE)
- Environment variable configuration via
.envfiles - Consolidated data models for seamless API interaction
Python versions support
Requires Python 3.13 or higher.
Quick Start
Installation
pip install clickup-mcp-server
Running the server
The simplest way to start the server:
clickup-mcp-server --token YOUR_CLICKUP_API_TOKEN
Using environment files
You can store your API token in a .env file:
# .env file
CLICKUP_API_TOKEN=your_api_token_here
And start the server with:
clickup-mcp-server --env /path/to/.env
Client connection
Connect to the server using any MCP client implementation. Example:
- Using SSE transport
import asyncio
from mcp import ClientSession
from mcp.client.sse import sse_client
async def get_authorized_teams():
url = "http://localhost:3005/sse"
async with sse_client(url) as (read_stream, write_stream):
async with ClientSession(read_stream, write_stream) as session:
await session.initialize()
tools = await session.list_tools()
print("Available tools:", [tools])
res = await session.call_tool(
name="get_authorized_teams",
)
print("get_authorized_teams →", res.model_dump())
if __name__ == "__main__":
asyncio.run(get_authorized_teams())
- Using streaming HTTP transport
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def get_authorized_teams():
url = "http://localhost:3005/mcp/mcp"
async with streamablehttp_client(url) as (
read_stream,
write_stream,
_close_fn,
):
async with ClientSession(read_stream, write_stream) as session:
await session.initialize()
tools_resp = await session.list_tools()
print("Available tools:", [t.name for t in tools_resp.tools])
res = await session.call_tool(
name="get_authorized_teams",
)
print("get_authorized_teams →", res.model_dump())
if __name__ == "__main__":
asyncio.run(get_authorized_teams())
API Resources
The server provides access to the following ClickUp resources:
- Teams
- Spaces
Configuration Options
The server supports various configuration options:
| Option | Environment Variable | Description |
|---|---|---|
--token |
CLICKUP_API_TOKEN |
Your ClickUp API token |
--env |
- | Path to .env file containing configuration |
--port |
- | Port to run the server on (default: 8000) |
--host |
- | Host to bind the server to (default: 127.0.0.1) |
Documentation
The documentation contains more details, demonstrations and anything you need about clickup-mcp-server.
- Getting start helps you start to prepare the
environment, install dependencies and configure the detail settings with explanation in detail.
- What requirement I need to prepare?
- How can I install it?
- How to configure the details for this MCP server?
- I have a configuration right now. How can I run this MCP server?
- Want to learn more how to use it?
- What exact features or APIs it has?
- Want to contribute to this project?
- I face something issue it cannot work finely!
- I want to wish a feature or something change.
- If you're interested in clickup-mcp-server and have any ideas want to design it, even implement it, it's very welcome to contribute clickup-mcp-server!
- About the release notes.
Coding style and following rules
follows coding styles black and PyLint to control code quality.
Downloading state
clickup-mcp-server still a young open source which keeps growing. Here's its download state:
License
Metadata
Release files for clickup-mcp-server 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clickup_mcp_server-0.2.0.tar.gz | 97.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clickup_mcp_server-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 246.2 kB
Release files / clickup_mcp_server-0.2.0.tar.gz
| Download URL | clickup_mcp_server-0.2.0.tar.gz |
|---|---|
| Size | 97.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
851eb2fa18f33910fe6056ed987437df17a8ed21b3219f507e9793e1c8bf04d5
|
|
BLAKE2b-256 checksum How to use checksums |
3a951658b85f75463aa420ea7a5bb924b2a1baf8b6daa0ad12e1011377a69d25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / clickup_mcp_server-0.2.0-py3-none-any.whl
| Download URL | clickup_mcp_server-0.2.0-py3-none-any.whl |
|---|---|
| Size | 148.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f47297f58dcb9d452e1d87840779987f04215a915a7f84f6c4c204ed321a96f7
|
|
BLAKE2b-256 checksum How to use checksums |
3db888ad424c6020d971e8b514ec010bf004b571d8d61f9d6dd71cb3f54a4673
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|