Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
Declarative access-control policy in front of the Asana API, served to AI agents over MCP.
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
You need a asana-gate key (create it on the maker’s site) · Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
SettingsDeveloperEdit Config
{
"mcpServers": {
"asana-gate": {
"command": "npx",
"args": [
"-y",
"asana-gate",
"mcp"
],
"env": {
"ASANA_ACCESS_TOKEN": "your-value",
"ASANA_GATE_POLICY": "your-value"
}
}
}
}Paste the key only into the app’s field, never into a chat or to anyone
Use asana-gate and tell me what you can do for me, then show me one thing✓ If Claude says it is using asana-gate or shows a asana-gate tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect asana-gate yet
asana-gate runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect asana-gate
Works with Claude Code, with some setup first
You need a asana-gate key (create it on the maker’s site) · Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --scope user asana-gate --env ASANA_ACCESS_TOKEN=your-value --env ASANA_GATE_POLICY=your-value -- npx -y asana-gate mcpReplace “your-value” with your key before pressing Enter
Paste the key only into the app’s field, never into a chat or to anyone
You should see asana-gate listed as connected
Use asana-gate and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using asana-gate or shows a asana-gate tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
You need a asana-gate key (create it on the maker’s site) · Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
In the asana-gate settings, ASANA_ACCESS_TOKEN, ASANA_GATE_POLICY is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use asana-gate and tell me what you can do for me, then show me one thing✓ If Cursor says it is using asana-gate or shows a asana-gate tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
You need a asana-gate key (create it on the maker’s site) · Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
In the asana-gate settings, ASANA_ACCESS_TOKEN, ASANA_GATE_POLICY is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use asana-gate and tell me what you can do for me, then show me one thing✓ If VS Code says it is using asana-gate or shows a asana-gate tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
Claude Code
claude mcp add --scope user asana-gate --env ASANA_ACCESS_TOKEN=your-value --env ASANA_GATE_POLICY=your-value -- npx -y asana-gate mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"asana-gate": {
"command": "npx",
"args": [
"-y",
"asana-gate",
"mcp"
],
"env": {
"ASANA_ACCESS_TOKEN": "your-value",
"ASANA_GATE_POLICY": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"asana-gate": {
"command": "npx",
"args": [
"-y",
"asana-gate",
"mcp"
],
"env": {
"ASANA_ACCESS_TOKEN": "your-value",
"ASANA_GATE_POLICY": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"asana-gate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"asana-gate",
"mcp"
],
"env": {
"ASANA_ACCESS_TOKEN": "your-value",
"ASANA_GATE_POLICY": "your-value"
}
}
}
}ASANA_ACCESS_TOKEN secret envASANA_GATE_POLICY envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 12, 2026
The registry name was verified with the GitHub account sincekmori, which owns the repo
Code last changed today
Uses Apache-2.0
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ASANA_ACCESS_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed today, and the latest version (0.3.1) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Puter MCP, XcodeBuildMCP, XcodeBuildMCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A declarative access-control policy in front of the Asana REST API, served to AI agents over MCP.
MCP client ──MCP──▶ asana-gate ──policy──▶ Asana REST API
You give an agent a Personal Access Token through asana-gate instead of directly. A policy file then decides, per project, section, task, tag or assignee, what the agent can see and do. Everything else does not exist for the agent.
An Asana token grants everything its owner can do. Agents need much less: read this team, update tasks in that project, never touch the Done section, never delete. asana-gate turns such sentences into a YAML file and enforces it on every one of Asana's REST operations.
GET /tasks/{task_gid}) is classified from its path; any other operation Asana adds fails the build until it is classified, and the weekly OpenAPI report names every new one for review, so none passes through unreviewed.npm install -g asana-gate
Node.js 24 or later is required. npx asana-gate works too. The server is listed in the MCP Registry as io.github.sincekmori/asana-gate, for the clients and catalogs that read it.
export ASANA_ACCESS_TOKEN="…" # this shell only
asana-gate token set --user # or keep it in ~/.asana-gate/token, typed unseen or piped in
.asana-gate directory: a policy skeleton, a settings file and a .gitignore that keeps personal settings and the token file out of git. asana-gate init
.asana-gate/policy.yaml, then validate it: names are resolved against Asana, every gid the rules name is checked to exist, and the token is checked. asana-gate check
asana-gate mcp
For Claude Code, asana-gate init --agent claude-code writes the project's .mcp.json, a copy of the skill and a permission rule that keeps the token from the agent (see Agents). For any other MCP host, register the command; started inside the project directory, asana-gate mcp finds the policy and the token by itself, and -C points it at the project when the host starts it elsewhere:
{
"mcpServers": { "asana-gate": { "command": "npx", "args": ["-y", "asana-gate", "mcp", "-C", "/path/to/project"] } } }
A policy names one workspace and lists rules. Each rule has a scope (where), the actions it allows or denies there, and optionally constraints on the requests made there.
version: 1
workspace: "1200000000000001" # a gid or a name
rules:
where: the whole workspace. Read everything.
Names are resolved to gids when the policy loads; an unknown or ambiguous name is an error. Gids always work. Every scope key accepts one value or a list (any of them matches).
| Key | Matches | Level |
|---|---|---|
| _(none)_ | the whole workspace | 0 |
team | the team and every project in it | 1 |
portfolio | the portfolio, its nested portfolios, and every project in them | 1 |
unhomed: true | tasks that belong to no project (and inherit none from a parent task) | 1 |
project | the project and everything in it | 2 |
section | a section of the project given alongside (a section gid needs no project) | 3 |
subtree | a task (gid) and all of its subtasks, recursively | 4 |
task | exactly that task (gid) | 5 |
tag | filter: tasks carrying the tag | + |
assignee | filter: tasks assigned to me, a gid or an email | + |
custom_field | filter: tasks whose field (by name or gid) holds one of the values, e.g. { Owner: AI } | + |
created_by | filter: tasks created by me, a gid or an email | + |
completed | filter: completed (true) or open (false) tasks | + |
has_parent | filter: subtasks (true) or top-level tasks (false) | + |
name | filter: tasks whose name satisfies prefix, suffix, contains or matches (a regex) | + |
overdue | filter: tasks whose due date has passed (true) or not (false) | + |
due_within | filter: tasks due within a duration from now, such as 7d | + |
created_within | filter: tasks created within a duration, such as 24h | + |
Hierarchy keys in one where are ANDed. Filters (tag, assignee, custom_field and the state filters below them) are ANDed with the hierarchy keys and never make an object visible on their own: they narrow or widen what may be done with objects that another rule already lets the agent read, and they may hide objects (deny: [task:read]). For a create request, the filters see the object the request would create: its name after apply, the token's user as its creator, its due date and so on.
Objects that are not tasks live at the nearest hierarchy level: stories, attachments, time entries and the like follow their task; sections, briefs, status updates, memberships, templates and webhooks follow their project, portfolio or goal; tags, users, custom field definitions and most administrative resources live at workspace level.
An action is : . Groups and wildcards expand to concrete actions: read (every read), modify (every other verb, the complement of read), write (read plus every creating and modifying verb), admin (everything), * (same as admin), task:*, *:delete. A rule takes part only for the actions it names, so a scope is made read-only with allow: [read] and deny: [modify] together: the deny keeps a broader allow elsewhere from reaching it, and unlike deny: ["*"] it leaves the objects visible.
| Resource | Verbs |
|---|---|
task | read create update delete complete move add_project remove_project set_parent assign |
story project_brief goal goal_relationship membership | read create update delete |
attachment | read create delete |
section | read create update delete reorder |
project | read create update delete archive manage_members |
portfolio | read create update delete manage_members |
status_update | read create delete |
tag | read create update delete apply |
| custom_field allocation budget rate role record table ooo_entry time_tracking_category `time_tracking_entr