| layout | default |
|---|---|
| title | Chapter 1: Getting Started and First Client Connection |
| nav_order | 1 |
| parent | Taskade MCP Tutorial |
Welcome to Chapter 1: Getting Started and First Client Connection. In this part of Taskade MCP Tutorial: OpenAPI-Driven MCP Server for Taskade Workflows, you will build an intuitive mental model first, then move into concrete implementation details and practical production tradeoffs.
This chapter gets you from zero to a working Taskade MCP connection with a practical smoke test.
- generate a Taskade API token and wire it into an MCP client
- run the official server in both stdio and HTTP/SSE modes
- validate your first tool calls and troubleshoot common failures
- Node.js 18+ and
npx - a Taskade account with API token access
- one MCP client: Claude Desktop, Cursor, Windsurf, or n8n-compatible bridge
- Open Taskade API Settings.
- Create a Personal Access Token.
- Store it in a local secret store (not committed files).
Use the official package:
{
"mcpServers": {
"taskade": {
"command": "npx",
"args": ["-y", "@taskade/mcp-server"],
"env": {
"TASKADE_API_KEY": "your-api-key"
}
}
}
}TASKADE_API_KEY=your-api-key npx @taskade/mcp-server --httpDefault endpoint behavior:
- base URL:
http://localhost:3000 - SSE entry:
http://localhost:3000/sse?access_token=... - override port with
PORT
- list workspaces using
workspacesGet - create or inspect a test project using
projectGetorprojectCreate - create a disposable test task with
taskCreate - mark it complete with
taskComplete
| Symptom | Likely Cause | Fix |
|---|---|---|
| auth error | invalid/missing TASKADE_API_KEY |
regenerate token and restart client |
| no tools visible | client config not reloaded | restart MCP host process/client |
| SSE connect timeout | wrong URL or blocked port | verify localhost:3000 and token query param |
You now have a working Taskade MCP connection in at least one client mode.
Next: Chapter 2: Repository Architecture and Package Layout
The if interface in packages/openapi-codegen/src/openapi.ts handles a key part of this chapter's functionality:
response: OpenAPIV3.ResponseObject | OpenAPIV3.ReferenceObject,
): OpenAPIV3.ResponseObject => {
if ('$ref' in response) {
throw new Error('Reference not supported');
}
return response;
};
export const convertOpenApiSchemaToJsonSchema = (
schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject,
): IJsonSchema => {
if ('$ref' in schema) {
// Should already be dereferenced
throw new Error('Reference not supported');
}
const jsonSchema: IJsonSchema = {};
// Handle basic properties
if (schema.type) {
jsonSchema.type = schema.type;
}
if (schema.description) {
jsonSchema.description = schema.description;
}
if (schema.default !== undefined) {
jsonSchema.default = schema.default;
}This interface is important because it defines how Taskade MCP Tutorial: OpenAPI-Driven MCP Server for Taskade Workflows implements the patterns covered in this chapter.
flowchart TD
A[if]