Skip to main content
Glama

mcp-server-asana

by roychri
index.ts2.4 kB
#!/usr/bin/env node import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { VERSION } from './version.js'; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { tool_handler, list_of_tools } from './tool-handler.js'; import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; import { AsanaClientWrapper } from './asana-client-wrapper.js' import { createPromptHandlers } from './prompt-handler.js'; import { createResourceHandlers } from './resource-handler.js'; async function main() { const asanaToken = process.env.ASANA_ACCESS_TOKEN; if (!asanaToken) { console.error("Please set ASANA_ACCESS_TOKEN environment variable"); process.exit(1); } console.error("Starting Asana MCP Server..."); const server = new Server( { name: "Asana MCP Server", version: VERSION, }, { capabilities: { tools: {}, prompts: {}, resources: {} }, } ); const asanaClient = new AsanaClientWrapper(asanaToken); server.setRequestHandler( CallToolRequestSchema, tool_handler(asanaClient) ); server.setRequestHandler(ListToolsRequestSchema, async () => { console.error("Received ListToolsRequest"); return { tools: list_of_tools, }; }); const promptHandlers = createPromptHandlers(asanaClient); // Add prompt handlers server.setRequestHandler(ListPromptsRequestSchema, promptHandlers.listPrompts); server.setRequestHandler(GetPromptRequestSchema, promptHandlers.getPrompt); // Add resource handlers const resourceHandlers = createResourceHandlers(asanaClient); server.setRequestHandler(ListResourcesRequestSchema, resourceHandlers.listResources); server.setRequestHandler(ListResourceTemplatesRequestSchema, resourceHandlers.listResourceTemplates); server.setRequestHandler(ReadResourceRequestSchema, resourceHandlers.readResource); const transport = new StdioServerTransport(); console.error("Connecting server to transport..."); await server.connect(transport); console.error("Asana MCP Server running on stdio"); } main().catch((error) => { console.error("Fatal error in main():", error); process.exit(1); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/roychri/mcp-server-asana'

If you have feedback or need assistance with the MCP directory API, please join our Discord server