taskboard-port
README.md
# taskboard-port
Asana workspaces, projects and tasks as MCP tools, talking to the Asana
REST API. taskboard-port is a clean-room rebuild of the core subset of
the Asana MCP surface, under a new name: fresh code written from the
public Asana API documentation, no copied branding. The original Asana
server is hosted/remote with OAuth; this rebuild is a REST client for
the same upstream API using a personal access token, and does not
reproduce the hosted OAuth surface.
## Tools (core subset, 11)
`get_current_user`, `list_workspaces`, `list_projects`, `get_project`,
`create_project`, `list_tasks`, `get_task`, `create_task`,
`update_task`, `delete_task`, `search_tasks`.
Not in this subset: sections, tags, stories/comments, subtasks, custom
fields, portfolios/goals, rules, attachments, teams/users admin,
typeahead, events/webhooks.
Notes on shaping: Asana wraps request bodies and responses in a
`data` envelope — create/update calls send `{data: {...}}` and parsed
responses are returned as-is. `list_tasks` picks its route
deterministically (project tasks endpoint, else assignee query, else a
capped list) and applies the `completed` filter client-side, since
Asana's list endpoints take no such parameter.
## Setup
```bash
export ASANA_ACCESS_TOKEN=...
```
Optionally override the API base with `ASANA_API_URL`
(default `https://app.asana.com/api/1.0`). Without the token, every
tool call fails with an error naming the missing variable.
## CLI
```bash
npx @reneturcios/taskboard-port get_task '{"task_gid":"12345"}'
npx @reneturcios/taskboard-port mcp # stdio MCP server
```
Each tool name is a subcommand taking one JSON object argument.
## MCP client config
```json
{
"mcpServers": {
"taskboard-port": {
"command": "npx",
"args": ["-y", "@reneturcios/taskboard-port", "mcp"],
"env": { "ASANA_ACCESS_TOKEN": "..." }
}
}
}
```
## Docker
```bash
docker run -i -e ASANA_ACCESS_TOKEN ghcr.io/cloudcorprecords/taskboard-port
```
## Development
```bash
npm install
npm run build
npm test
```
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues