mcp-project-task-manager
v1.1.5
Published
MCP server for managing Trello and Jira projects
Maintainers
Readme
MCP Project Manager Server
MCP (Model Context Protocol) server that exposes project management tool functionalities (currently Trello and Jira).
This repo implements an MCP server that exports a set of tools via stdio using @modelcontextprotocol/sdk.
🚀 Available Tools
This MCP server provides the following tools to interact with Trello:
| Tool | Description |
|------|-------------|
| get_boards | Returns all user boards / projects. |
| get_board_by_name | Searches for a board/project by name. |
| get_lists | Retrieves the lists or statuses of a board/project. |
| get_board_elements | Returns elements of a board: lists or labels. |
| obtain_list | Ensures a list with a given name exists (creates or returns synthetic). |
| get_valid_label_names | Returns valid names for categorizing tasks. |
| get_cards | Lists cards / issues of a board or list. |
| create_list | Creates a list (Trello) or returns an alternative (Jira). |
| create_card | Creates a card / issue. |
| create_task | Helper: creates a card and places it according to category. |
| get_card_details | Retrieves full details of a card / issue. |
| update_card | Updates card properties (title, description, move list). |
📋 Prerequisites
- Node.js >= 18 (uses the native
fetchAPI at runtime) npm installfor dependencies
🏗️ Project Structure
mcp-project-task-manager/
├── src/
│ ├── index.ts # Entry point - MCP server
│ ├── config/
│ │ └── configurations.ts # Configuration from environment variables
│ ├── model/
│ │ ├── category.enums.ts # Category enums (bug, feature, etc.)
│ │ ├── types.ts # TypeScript types inferred from Zod
│ │ ├── schemas.ts # Zod schemas with validation
│ │ └── schemas.test.ts # Zod schema unit tests
│ └── project.manager.adapter
│ ├── platform.enum.ts # Platform enum
│ ├── project.manager.adapter.factory.ts # Factory to create adapters
│ ├── altassian.adapter.ts # Base abstract class implementing project.manager.adapter interface
│ ├── trello.adapter.ts # Trello API implementation
│ └── jira.adapter.ts # Jira implementation
├── build/ # Compiled code (generated)
├── .env # Environment variables (not included in git)
├── .gitignore
├── package.json
└── tsconfig.json
🔧 Installation and Compilation
To install the published server from npm:
npm install -g mcp-project-task-manager
You can also run it directly with npx:
npx mcp-project-task-manager
The command requires the environment variables described in the configuration section.
To work from the source code:
git clone <repo-url>
cd mcp-project-task-manager
npm install
npm run build
⚙️ Configuration (Environment Variables)
Place the variables in a .env file at the root (or expose them in your environment):
For Trello (minimal example):
PLATFORM=trello
TRELLO_API_KEY=your_api_key
TRELLO_TOKEN=your_token
TRELLO_SECRET=your_secret
For Jira (minimal example):
PLATFORM=jira
JIRA_USER_EMAIL=your_email@domain
JIRA_API_TOKEN=your_api_token
# domain can be "myspace.atlassian.net" or with a schema
JIRA_DOMAIN=myspace.atlassian.net
Note: index.ts extracts key, token, and secret/domain from the configuration and passes secret as domain to JiraAdapter. JiraAdapter normalizes the domain (accepts with or without https://).
🏃 Execution
- Run the MCP server (stdio):
npm run start:server
- Run the local example that calls
getBoards()(src/example.ts):
npm run start:example
🔌 Integration (MCP Client Example, or .vscode)
To use this server from an MCP client (such as VS Code with Cline, Claude Desktop, etc.), add the following configuration:
Cline Example
{
"mcpServers": {
"mcp-project-task-manager": {
"type": "stdio",
"command": "npx",
"args": [
"[email protected]"
],
"env": {
"PLATFORM": "trello",
"TRELLO_API_KEY": "<your_api_key>",
"TRELLO_TOKEN": "<your_trello_token>",
"TRELLO_SECRET": "<your_trello_secret>",
"JIRA_USER_EMAIL": "<jira_user>",
"JIRA_API_TOKEN": "<your_jira_token>",
"JIRA_DOMAIN": "<your_jira_domain> example https://<your_jira_space>.atlassian.net"
},
"disabled": false
}
}
}
.vscode/mcp.json Example
To use with the GitHub agent/copilot, it also requires (or configures in the env of the previous json)
{
"inputs": [],
"servers": {
"mcp-project-task-manager": {
"command": "npx",
"args": [
"[email protected]"
],
"sandboxEnabled": false,
"type": "stdio",
"env": {
"PLATFORM": "trello",
"TRELLO_API_KEY": "<your_api_key>",
"TRELLO_TOKEN": "<your_trello_token>",
"TRELLO_SECRET": "<your_trello_secret>",
"JIRA_USER_EMAIL": "<jira_user>",
"JIRA_API_TOKEN": "<your_jira_token>",
"JIRA_DOMAIN": "<your_jira_domain> example https://<your_jira_space>.atlassian.net"
},
"disabled": false
}
}
}
Example for your .config/opencode.json
1- To use in opencode, first perform the installation
npm install -g mcp-project-task-manager
2- Locate the installation's build/index.js
3- Configure your config/opencode.json
{
"$schema": "[https://opencode.ai/config.json](https://opencode.ai/config.json)",
"mcp": {
"trello-ts": {
"type": "stdio",
"command": [
"node"
],
"args": [
"~/<path_to_build>/build/index.js"
],
"env": {
"PLATFORM": "jira",
"TRELLO_API_KEY": "<your_api_key>",
"TRELLO_TOKEN": "<your_trello_token>",
"TRELLO_SECRET": "<your_trello_secret>",
"JIRA_USER_EMAIL": "<jira_user>",
"JIRA_API_TOKEN": "<your_jira_token>",
"JIRA_DOMAIN": "<your_jira_domain> example https://<your_jira_space>.atlassian.net"
},
"enabled": true
}
}
}
//or use your full opencode path in args
.env Example
To use:
- with local server execution
- with GitHub agent/copilot (requires it as well, or configure it in the env of the previous json)
TRELLO_API_KEY="TRELLO_API_KEY"
TRELLO_TOKEN="TRELLO_TOKEN"
TRELLO_SECRET="TRELLO_SECRET"
JIRA_USER_EMAIL="JIRA_USER_EMAIL"
JIRA_API_TOKEN="AJIRA_API_TOKEN"
JIRA_DOMAIN="https://JIRA_DOMAIN.atlassian.net"
#"trello" # or "jira"
PLATFORM="jira"
Local Usage Examples
- Call
get_boardswith the included example:
npm run start:example
- Use the server in a compatible MCP host pointing to
build/index.js.
Validation and Schemas
Tools validate inputs and outputs using Zod; schemas are located in src/schemas/schemas.ts.
🛠️ Technologies
- TypeScript - Programming language
- @modelcontextprotocol/sdk - Official MCP SDK
- Trello API - Trello REST API
- fetch - Node.js native API for HTTP
Notes and Recommendations
JIRA_DOMAINmay or may not include thehttps://schema; the adapter normalizes it.- Make sure not to publish tokens in repositories. For production, use a secret manager.
- If you change
PLATFORM, restart the server to reload the configuration.
References
- Basic Trello API usage at: https://github.com/marbriganti/issueTrackerSpaceX
- Implementation inspired by: https://github.com/andypost/mcp-server-ts-trello
License
ISC
