Back to Marketplace
Executable connectorProject managementJul 22, 20260 calls
Asana Connector
Read-safe Asana connector for workspace and task discovery.
Credential setup
bearerUse 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-asanaPrivate servers require an Astrail API key in the Authorization header.
MCP client snippets
ConnectClaude 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 health
healthyEndpoint health
not_checkedExecution mode
safe_rest_executionDeterministic executionSupported
Generated sourceExport only
Endpoint mapAvailable
Endpoint mappedYes
Auth-required endpointsPresent
Browser runtime endpointsNone detected
Last status
not recordedLast execution mode
not recordedLast toolnot recorded
Last latencynot recorded
Upstream statusnot recorded
Trace ID
not recordedError code
noneObservability
structured fallbackRate limit mode
standardMissing auth
auth_required / oauth_requiredMissing mapping
mapping_requiredAstrail does not evaluate generated TypeScript inside Next.js. Hosted calls are routed through stored tool metadata and endpoint maps.
Tools
3asana_list_workspacesList Asana workspaces visible to the connected identity.
asana_list_tasksList Asana tasks for a project, section, tag, or assignee.
asana_get_taskRetrieve 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);