Astrail
Back to Marketplace
Executable connectorProject managementJul 22, 20260 calls

Asana Connector

Read-safe Asana connector for workspace and task discovery.

Credential setup

bearer

Use a personal access token only for a service account with access to the required projects.

Setup docs: https://app.asana.com/0/my-apps

After adding this connector, attach the credential on the server page, then run astrail tools list.

Hosted MCP endpoint

/api/mcp/preset-asana

Private servers require an Astrail API key in the Authorization header.

MCP client snippets

Connect

Claude Desktop config

{
  "mcpServers": {
    "asana-connector": {
      "url": "/api/mcp/preset-asana"
    }
  }
}

cURL initialize

curl -sS -X POST "/api/mcp/preset-asana" \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

cURL tools/list

curl -sS -X POST "/api/mcp/preset-asana" \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

cURL tools/call

curl -sS -X POST "/api/mcp/preset-asana" \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"asana_list_workspaces","arguments":{"limit":10,"offset":"example"}}}'

Runtime behavior

Runtime healthhealthy
Endpoint healthnot_checked
Execution modesafe_rest_execution
Deterministic executionSupported
Generated sourceExport only
Endpoint mapAvailable
Endpoint mappedYes
Auth-required endpointsPresent
Browser runtime endpointsNone detected
Last statusnot recorded
Last execution modenot recorded
Last toolnot recorded
Last latencynot recorded
Upstream statusnot recorded
Trace IDnot recorded
Error codenone
Observabilitystructured fallback
Rate limit modestandard
Missing authauth_required / oauth_required
Missing mappingmapping_required

Astrail does not evaluate generated TypeScript inside Next.js. Hosted calls are routed through stored tool metadata and endpoint maps.

Tools

3
asana_list_workspaces

List Asana workspaces visible to the connected identity.

asana_list_tasks

List Asana tasks for a project, section, tag, or assignee.

asana_get_task

Retrieve an Asana task.

server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "Asana Connector", version: "1.0.0" });

// Curated Astrail connector for: asana_list_workspaces, asana_list_tasks, asana_get_task.
// The hosted endpoint executes its verified deterministic endpoint map. Attach a least-privilege provider credential before calling private tools.

server.tool("connector_status", "Confirm this curated connector template is installed.", z.object({}), async () => ({
  content: [{ type: "text", text: "Connector installed. Attach provider credentials to enable hosted API calls." }],
}));

const transport = new StdioServerTransport();
await server.connect(transport);