CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Asana

pipeworx-io/mcp-asana
10 toolsHTTPregistry active
Summary

Wraps Asana's REST API through OAuth so Claude can query your project management data directly. Currently exposes one tool to list workspaces, returning the IDs needed for project and task operations. Hosted through Pipeworx's gateway, which means you can either connect to the standalone Asana endpoint or add the full Pipeworx gateway for 673+ data sources. Includes an ask_pipeworx function that handles tool selection and argument mapping from natural language queries. Useful if you're already running Asana workspaces and want Claude to pull task lists, project status, or workspace metadata without switching contexts.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

10 tools
get_attachmentsList all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments.4 params

List all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments.

Parameters* required
limitnumber
Results per page (1-100)
offsetstring
Pagination offset token
parentstring
The GID of the parent project, project_brief, or task to retrieve attachments for. Must be a GID for a project, project_brief, or task.
opt_fieldsstring
Comma-separated list of optional fields to include in the response
get_portfolioGet detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for understanding portfolio context and content.2 params

Get detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for understanding portfolio context and content.

Parameters* required
opt_fieldsstring
Comma-separated list of optional fields to include in the response
portfolio_gidstring
Globally unique identifier for the portfolio
get_portfoliosList portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios.3 params

List portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios.

Parameters* required
limitnumber
Results per page (1-100)
offsetstring
Pagination offset token
opt_fieldsstring
Comma-separated list of optional fields to include in the response
get_items_for_portfolioList projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items.4 params

List projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items.

Parameters* required
limitnumber
Results per page (1-100)
offsetstring
Pagination offset token
opt_fieldsstring
Comma-separated list of optional fields to include in the response
portfolio_gidstring
Globally unique identifier for the portfolio
get_projectGet detailed project data including name, description, owner, members, and current status. Also returns task counts (num_tasks, num_incomplete_tasks, num_completed_tasks) and optionally sections. A null task_counts or sections value means the data could not be retrieved and sh...3 params

Get detailed project data including name, description, owner, members, and current status. Also returns task counts (num_tasks, num_incomplete_tasks, num_completed_tasks) and optionally sections. A null task_counts or sections value means the data could not be retrieved and sh...

Parameters* required
opt_fieldsstring
Comma-separated list of optional fields to include in the response.
project_idstring
Globally unique identifier for the project.
include_sectionsboolean
Set to true to include the project's sections (up to 50) in the response.default: false
get_projectsList projects in a workspace, optionally filtered by team. Returns project names, IDs, owner info, and task counts (num_tasks, num_incomplete_tasks, num_completed_tasks). A null task_counts value means counts could not be retrieved and should not be interpreted as zero.5 params

List projects in a workspace, optionally filtered by team. Returns project names, IDs, owner info, and task counts (num_tasks, num_incomplete_tasks, num_completed_tasks). A null task_counts value means counts could not be retrieved and should not be interpreted as zero.

Parameters* required
teamstring
When passed in, filters projects on team GID
limitnumber
Number of projects to return per page (1-100). Defaults to 20.default: 20
offsetstring
Pagination offset token from the next_page field of a previous response. If omitted, returns the first page of results.
archivedboolean
Include archived projects.default: false
opt_fieldsstring
Comma-separated list of optional fields to include in the response.
create_project_status_updatePost a status update to a project or portfolio. Use for project health updates, milestone documentation, or blocker reporting. Returns created status with gid, parent, title, status_type, author, created_at, permalink_url. One of text or html_text must be provided.5 params

Post a status update to a project or portfolio. Use for project health updates, milestone documentation, or blocker reporting. Returns created status with gid, parent, title, status_type, author, created_at, permalink_url. One of text or html_text must be provided.

Parameters* required
textstring
Status body text. One of text or html_text must be provided.
colorstring
Status color: green (on track), yellow (at risk), red (off track), blue (on hold), completeone of green · yellow · red · blue · complete
titlestring
Status title
parentstring
GID of the project or portfolio to post the status update to.
html_textstring
HTML formatted text for the status update. One of text or html_text must be provided. It must be wrapped in a <body> tag. You can create links to other asana objects with the following instructions: For <a> tags specifically, to make it easier to create @-mentions through the API, we only require that you provide the GID of the object you wish to reference. If you have access to that object, the API will automatically generate the appropriate href and other attributes for you. For example, to create a link to a task with GID "123", you can send the tag <a data-asana-gid="123"/> which will then be expanded to <a href="https://app.asana.com/0/0/123/f" data-asana-accessible="true" data-asana-dynamic="true" data-asana-type="task" data-asana-gid="123">Task Name</a>. You can also generate a link to a task in a specific project or tag by including a data-asana-project or data-asana-tag attribute in the <a> tag. All other attributes, as well as the contents of the tag, are ignored. To keep the contents of your tag and make a custom vanity link, include the property data-asana-dynamic="false" when setting the contents of the tag. You would send <a data-asana-gid="123" data-asana-dynamic="false">This is some custom text!</a> and receive <a data-asana-accessible="true" data-asana-dynamic="false" data-asana-type="task" data-asana-gid="123">This is some custom text!</a> If you do not have access to the referenced object when you try to create a link, the API will not generate an href for you, but will instead look for an href you provide. This allows you to write back <a> tags unmodified even if you do not have access to the resource. If you do not have access to the referenced object and no href is provided, your request will be rejected with a 400 Bad Request error. Similarly, if you provide neither a GID nor a valid href, the request will be rejected with the same error.
create_projectCreate a new project with optional sections and tasks in a single operation. Optionally pass sections, each with a sectionName and an optional list of tasks (with name, assignee, due_on, etc.), to set up the full project structure at creation time. Tasks are nested within thei...14 params

Create a new project with optional sections and tasks in a single operation. Optionally pass sections, each with a sectionName and an optional list of tasks (with name, assignee, due_on, etc.), to set up the full project structure at creation time. Tasks are nested within thei...

Parameters* required
namestring
Name of the project.
teamstring
Globally unique identifier for the team. If not provided, default team will be used.
colorstring
Color of the project (light-green, dark-green, light-blue, dark-blue, etc).one of dark-pink · dark-green · dark-blue · dark-red · dark-teal · dark-brown
notesstring
Plain description for the project. If the description contains @-mentions, use the html_notes parameter instead.
ownerstring
User identifier for project owner. Can be "me", an email, or a user GID. Prefer using "me" for the current user rather than calling get_me to look up the GID of the current user.
due_onstring
Date on which this project is due (YYYY-MM-DD).
membersstring
Comma-separated user GIDs to add as project members. Example: "123456,789012".
sectionsarray
Users will give you a request to create a project with a certain purpose. JSON array of section objects. Each section must have: - sectionName (string): Name of the section. - tasks (array, optional): Array of task objects. Each task object must have: - name (string): Name of the task. Each task object can optionally have: - notes (string): Task description and details. - html_notes (string): Task description in HTML format. - assignee (string): User identifier for task assignment. Can be 'me', an email, or a user GID. - due_on (string): Due date in YYYY-MM-DD format. - due_at (string): Due date and time in ISO 8601 format. - start_on (string): Start date in YYYY-MM-DD format. - start_at (string): Start date and time in ISO 8601 format. - completed (boolean): True if the task is initially marked complete. - followers (string): Comma-separated list of user identifiers. - custom_fields (string): JSON string of custom fields in format: {"field_gid": "value"}. Example: [ { "sectionName": "Backlog", "tasks": [ { "name": "Design homepage", "notes": "Create a modern and responsive homepage design", "completed": false, "start_on": "2025-01-10", "due_on": "2025-01-15", "assignee": "123456789" }, { "name": "Write documentation", "completed": false, "start_on": "2025-01-15", "due_on": "2025-01-20", "assignee": "987654321" } ] }, { "sectionName": "In Progress", "tasks": [ { "name": "Implement API endpoints", "notes": "Build RESTful API endpoints for user management", "completed": false, "start_on": "2025-01-10", "due_on": "2025-01-25", "assignee": "123456789" }, { "name": "Code review", "completed": false, "start_on": "2025-01-25", "due_on": "2025-01-30" }, { "name": "Deploy to staging", "notes": "Deploy the latest version to staging environment", "completed": false, "start_on": "2025-01-05", "due_on": "2025-01-08", "assignee": "987654321" } ] } ]
start_onstring
Date on which this project is started (YYYY-MM-DD).
html_notesstring
HTML-formatted description for the project. It must be wrapped in a <body> tag. You can create links to other asana objects with the following instructions: For <a> tags specifically, to make it easier to create @-mentions through the API, we only require that you provide the GID of the object you wish to reference. If you have access to that object, the API will automatically generate the appropriate href and other attributes for you. For example, to create a link to a task with GID "123", you can send the tag <a data-asana-gid="123"/> which will then be expanded to <a href="https://app.asana.com/0/0/123/f" data-asana-accessible="true" data-asana-dynamic="true" data-asana-type="task" data-asana-gid="123">Task Name</a>. You can also generate a link to a task in a specific project or tag by including a data-asana-project or data-asana-tag attribute in the <a> tag. All other attributes, as well as the contents of the tag, are ignored. To keep the contents of your tag and make a custom vanity link, include the property data-asana-dynamic="false" when setting the contents of the tag. You would send <a data-asana-gid="123" data-asana-dynamic="false">This is some custom text!</a> and receive <a data-asana-accessible="true" data-asana-dynamic="false" data-asana-type="task" data-asana-gid="123">This is some custom text!</a> If you do not have access to the referenced object when you try to create a link, the API will not generate an href for you, but will instead look for an href you provide. This allows you to write back <a> tags unmodified even if you do not have access to the resource. If you do not have access to the referenced object and no href is provided, your request will be rejected with a 400 Bad Request error. Similarly, if you provide neither a GID nor a valid href, the request will be rejected with the same error.
default_viewstring
The default view of the project (list, board, calendar, timeline).one of list · board · calendar · timelinedefault: list
custom_fieldsobject
Object mapping custom field GIDs to their values. Example: {"123456": "option_gid", "789012": 42}.
privacy_settingstring
Privacy level for the project (public_to_workspace, private_to_team, private).one of public_to_workspace · private_to_team · private
default_access_levelstring
The default access for users or teams who join or are added as members to the project.one of admin · editor · commenter · viewer
get_status_overviewGet status overview and progress reports for initiatives/projects. Use this tool as a standalone when users ask for: status updates, status reports, project status, work overview, progress overview, initiative status, identified blockers, or any status-related queries. This to...2 params

Get status overview and progress reports for initiatives/projects. Use this tool as a standalone when users ask for: status updates, status reports, project status, work overview, progress overview, initiative status, identified blockers, or any status-related queries. This to...

Parameters* required
keywordsstring
Keywords to search for projects. Can be a single keyword (e.g., 'asana') or multiple comma-separated keywords (e.g., 'asana, chatgpt, integration'). The tool searches each keyword separately and combines results from all matching projects (OR logic - matches any keyword).
opt_fieldsstring
Comma-separated list of optional fields to include in task data (e.g., 'name,notes,assignee,due_on,completed').
search_tasksPremium accounts only. Advanced task search with full-text and complex filters. Searches task names, descriptions, and comments. Returns tasks with gid, name, assignee, due_on, completed. When the user asks about tasks assigned to them, use assignee_any="me" for best results....28 params

Premium accounts only. Advanced task search with full-text and complex filters. Searches task names, descriptions, and comments. Returns tasks with gid, name, assignee, due_on, completed. When the user asks about tasks assigned to them, use assignee_any="me" for best results....

Parameters* required
textstring
Text to search for in task name or description.
limitnumber
Maximum number of results to return (1-100). Default: 50.default: 50
due_onstring
ISO 8601 date string for due date filter.
sort_bystring
Field to sort by (e.g., 'due_date', 'created_at', 'completed_at', 'likes', 'modified_at'). Defaults to modified_at.one of due_date · created_at · completed_at · likes · modified_atdefault: modified_at
tags_anystring
Filter to tasks with any of these tags. Comma-separated list of tag GIDs.
completedboolean
Filter for completed or incomplete tasks.
is_subtaskboolean
Filter to subtasks.
opt_fieldsstring
Comma-separated list of optional fields to include in the response.
assignee_anystring
Filter to tasks assigned to any of these users. Comma-separated list of user identifiers ("me", an email, or a user GID).
due_on_afterstring
ISO 8601 date string for due date after filter.
projects_anystring
Filter to tasks in any of these projects. Comma-separated list of project GIDs.
sections_anystring
Filter to tasks in any of these sections or columns. Comma-separated list of section GIDs.
custom_fieldsstring
JSON string of custom field filters. Example: {"4578152156": "Not Started", "5678904321": 42}.
due_on_beforestring
ISO 8601 date string for due date before filter.
followers_anystring
Filter to tasks followed by any of these users. Comma-separated list of user identifiers ("me", an email, or a user GID).
created_by_anystring
Filter to tasks created by any of these users. Comma-separated list of user identifiers ("me", an email, or a user GID).
sort_ascendingboolean
Sort in ascending order. Defaults to false.default: false
created_at_afterstring
ISO 8601 datetime string for creation datetime after filter.
created_on_afterstring
ISO 8601 date string for creation date after filter.
resource_subtypestring
Filters results by the task's resource_subtype (e.g., milestone).one of default_task · milestone · approval
created_at_beforestring
ISO 8601 datetime string for creation datetime before filter.
created_on_beforestring
ISO 8601 date string for creation date before filter.
modified_at_afterstring
ISO 8601 datetime string for modified datetime after filter.
modified_on_afterstring
ISO 8601 date string for modified date after filter.
completed_at_afterstring
ISO 8601 datetime string for completion datetime after filter.
completed_on_afterstring
ISO 8601 date string for completion date after filter.
completed_at_beforestring
ISO 8601 datetime string for completion datetime before filter.
completed_on_beforestring
ISO 8601 date string for completion date before filter.

mcp-asana

Asana MCP — wraps the Asana REST API (OAuth)

Part of Pipeworx — an MCP gateway connecting AI agents to 673+ live data sources.

Tools

ToolDescription
asana_list_workspacesGet all accessible Asana workspaces. Returns workspace names and IDs needed to list projects and tasks.

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "asana": {
      "url": "https://gateway.pipeworx.io/asana/mcp"
    }
  }
}

Or connect to the full Pipeworx gateway for access to all 673+ data sources:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English:

ask_pipeworx({ question: "your question about Asana data" })

The gateway picks the right tool and fills the arguments automatically.

More

  • All tools and guides
  • pipeworx.io

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Productivity & Office
Registryactive
TransportHTTP
UpdatedApr 22, 2026
View on GitHub

Related Productivity & Office MCP Servers

View all →
Office PowerPoint

gongrzhe/office-powerpoint-mcp-server

A MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. This server provides tools for creating, editing, and manipulating PowerPoint presentations through the MCP protocol.
1.7k
Office-Word-MCP-Server

gongrzhe/office-word-mcp-server

Exposes Word document operations via MCP to create, edit, format, and analyze documents programmatically.
2k
Microsoft Office

io.github.mindstone/mcp-server-office

Microsoft Office MCP server: read and edit Word documents, Excel workbooks, and PowerPoint files
8
Todoist

greirson/mcp-todoist

MCP server that connects Claude to Todoist for natural language task and project management with bulk operations
240
Mcp Apple Notes

henilcalagiya/mcp-apple-notes

MCP server for Apple Notes integration using AppleScript with full CRUD operations
51
AnkiMCP Server

ankimcp/anki-mcp-server-addon

Anki addon that exposes your flashcard collection to AI assistants via a local MCP server.
50