Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.
PopNx MCPMCP servers for people who use AI · explained in plain words

Warda

by ArtyKOMarketsversion 0.4.2i★ 0iComputer or cloud
Registry nameio.github.ArtyKOMarkets/warda

How to install

Overview

Description from the maker (original English)

Economic authority for autonomous agents on Kaspa L1. Never holds a key.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

Install

Pick the AI app you use, then copy the settings.

Passed 5/5 checks · What you ask goes through the maker’s server (mcp.wardaprotocol.com)

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude · about 2 min

No key, nothing to install · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1

  1. Open Claude’s Connectors page

    CustomizeConnectors

    CustomizeConnectors1+ Add2https://…3Add4
  2. Click “+ Add” → “Add custom connector” and fill in these 2 fields

    Copy each value into the field with the same name in Claude, then click Continue

    Name · NameWarda
    Remote MCP server URL · Addresshttps://mcp.wardaprotocol.com/mcp

    Leave Authentication as Claude detected it, then click Add

  3. Turn it on in a chat

    +ConnectorsWarda

  4. Try it

    Use Warda and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using Warda or shows a Warda 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 ChatGPT on business plans only

ChatGPT Business, Enterprise or Edu on the web, added by a workspace admin or owner · On Free, Plus or Pro: your ChatGPT plan cannot connect MCP yet

  1. Open ChatGPT’s add-MCP page on the web

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. Fill in the name and address

    Enter a name, paste the address under Connection, tick the risk warning and click Create as a plugin

    Name · NameWarda
    Connection · Addresshttps://mcp.wardaprotocol.com/mcp
  3. Pick Warda in a chat

    Start a new chat and pick Warda from your plugins before typing

  4. Try it

    Use Warda and tell me what you can do for me, then show me one thing

    ✓ If ChatGPT says it is using Warda or shows a Warda tool in the answer, you are connected

Menu names checked against OpenAI’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Claude Code · about 2 min

No key, nothing to install

  1. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  2. Paste this command and press Enter

    claude mcp add --transport http warda https://mcp.wardaprotocol.com/mcp
  3. Type /mcp in Claude Code

    You should see Warda listed as connected

  4. Try it

    Use Warda and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using Warda or shows a Warda 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 · about 2 min

No key, nothing to install

  1. Click this button to open Cursor

    Open in Cursor

    Cursor asks you to confirm; click Install

  2. Open the AI chat in Cursor in Agent mode

  3. Try it

    Use Warda and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using Warda or shows a Warda 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 · about 2 min

No key, nothing to install

  1. Click this button to open VS Code

    Open in VS Code

    VS Code asks you to confirm; click Install

  2. Open the AI chat in VS Code in Agent mode

  3. Try it

    Use Warda and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using Warda or shows a Warda 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.

See every app that uses MCP →

Address for apps that connect over the web

Addresshttps://mcp.wardaprotocol.com/mcp

JSON settings are under “For developers” below

Stuck? Ask people who use Warda💬 Discussion →
For developers: Terminal commands and JSON settings

Over the web

Claude Code

claude mcp add --transport http warda https://mcp.wardaprotocol.com/mcp

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "warda": {
      "url": "https://mcp.wardaprotocol.com/mcp"
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "warda": {
      "type": "http",
      "url": "https://mcp.wardaprotocol.com/mcp"
    }
  }
}

Installed on your computer

Claude Code

claude mcp add warda --env WARDA_TEMPLATE=your-value -- npx -y @warda_protocol/mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "warda": {
      "command": "npx",
      "args": [
        "-y",
        "@warda_protocol/mcp"
      ],
      "env": {
        "WARDA_TEMPLATE": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "warda": {
      "command": "npx",
      "args": [
        "-y",
        "@warda_protocol/mcp"
      ],
      "env": {
        "WARDA_TEMPLATE": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "warda": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@warda_protocol/mcp"
      ],
      "env": {
        "WARDA_TEMPLATE": "your-value"
      }
    }
  }
}

Values you fill in

  • WARDA_TEMPLATE env
    Path to the covenant template a grant was issued under. Only needed for a grant on a covenant version other than the one shipped: a template mismatch does not fail loudly, it derives a plausible addr…

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

Downloads per weeki
48/wk
Connection
Computer or cloud
Transport
stdio, streamable-http
Latest versioni
0.4.2
Categoryi
Other
Published to registryi
Sep 1, 2026
Code last changedi
Sep 26, 2026
Maker
ArtyKOMarkets
Packages
npm: @warda_protocol/mcp
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Connect over the internet in

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Tool names and descriptions exactly as the server reported them on Nov 9, 2026. The maker wrote them, not us; we show them as plain text.

  • warda_grant_authority

    The agent's spending power right now: budget left, epoch headroom, per-transaction cap, and the largest single payment currently permitted. This is what an agent wallet's spending limit would tell you, except that it is not a setting — the covenant enforces these whether or not y

  • warda_check_spend

    Check a proposed payment against every rule the covenant enforces, and return the same verdict the chain would. Builds the recipient proof for you. ADVISORY: a 'permitted' answer is not permission — it means the covenant would accept this transaction. A 'refused' answer means no

  • warda_check_delegation

    Check whether a proposed child grant is a legal narrowing of this one. A child may only ever be more restrictive than its parent, and the parent must reserve exactly what the child receives — authority is subdivided, never created. Advisory.

  • warda_build_spend

    Assemble an unsigned Kaspa transaction that spends from this grant, and return the digest to sign. THIS SERVER NEVER SEES YOUR KEY and never signs: it hands back bytes, and you sign the digest wherever your key lives. It also returns the advisory verdict, but it builds the transa

  • warda_wallet

    The whole wallet view in one call: the grant's current address, its spending limits, the largest payment permitted right now, and every address it is allowed to pay. This is the agent-wallet shape — address, limits, spending power — with one difference worth knowing: the limits a

  • warda_grant_address

    Derive the on-chain address of a grant from its terms and current state. A grant's address is a HASH of its state, so it MOVES after every spend and every delegation — an address that worked yesterday holds nothing today. Use this to know which address to fund, watch, or look up.

  • warda_recover_grant

    Read a grant's full state back out of any transaction that spent it, and work out where it went. Use this when a grant's recorded state is stale, wrong, or lost and its address turns up empty. Kaspa's P2SH requires the covenant script to travel in the clear inside every spending

  • warda_build_delegation

    Assemble an unsigned transaction that subdivides this grant into a child for a sub-agent, and return the digest to sign with the PARENT's agent key. THIS SERVER NEVER SEES YOUR KEY. A child can only ever be more restrictive than its parent, and the parent reserves exactly what th

  • warda_build_settlement

    Assemble an unsigned transaction that ends a child grant and returns its UNSPENT remainder to the parent's budget, charging the parent only what the child actually spent. This is the other half of delegation: letting a child expire instead returns the money to the PRINCIPAL — to

  • warda_build_exit

    Assemble an unsigned transaction that ENDS this grant and sweeps its balance to the principal. 'revoke' is the emergency stop, signed by the revocation key, effective the moment it confirms — the agent cannot stop it and cannot outrun it beyond the limits it already had. 'reclaim

  • warda_find_service

    Search the Warda service registry for endpoints an agent holding a grant can pay. Filters are a conjunction: a service must offer EVERY capability asked for and be at or under maxPrice. WHAT IS VERIFIED: that the operator controls the key the service is paid at, and that the list

Basic checksi

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 11, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account ArtyKOMarkets, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 2 months ago

  • ✓ Pass

    Has a licence

    Uses MIT

  • ✓ Pass

    Endpoint responds

    Responded in 440 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 11 tool descriptions and found no hidden instructions to the AI

Discussion

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.

Sign in with Google to post

User reviews

No reviews yet

Sign in with Google to write a review

Compared with others in Otheri

  • More stars than 0% of the other 19189 servers in this category
  • Published to the registry more recently than 29% of the other 19189 servers in this category
  • Basic checks equal to or better than 100% of the other 19189 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Warda safe?

It passed 5 of 5 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.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed 2 months ago, and the latest version (0.4.2) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT Business and above.

What can I use instead?

In the same category: World Monitor, Claude Flow, Tldraw

Alternatives

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

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

by koala73Widely used★ 90.5KUpdated 6 days ago

Runs in the cloud✓ worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

by ruvnetWidely used↓ 13.5K/wk★ 81.4KUpdated 14 months ago

Runs on your computer

Tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

by tldrawWidely used★ 51.4KUpdated 8 months ago

Runs in the cloud

README from the maker

Open the README

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.

@warda_protocol/mcp

An MCP server that lets an agent framework reason about its own economic authority, and drive a grant's whole life — spend, delegate, settle, revoke, and find it again when the record goes stale — without a Kaspa integration.

Nothing to install and no Kaspa of your own. Put this in your client's config — claude_desktop_config.json for Claude Desktop, .cursor/mcp.json for Cursor — and restart it:

{

"mcpServers": { "warda": { "command": "npx", "args": ["-y", "@warda_protocol/mcp"] } } }

Cold, with an empty npm cache, that is about seven seconds to eleven tools.

npx -y @warda_protocol/mcp     # the same thing, by hand, speaking stdio

From a checkout instead:

node --experimental-strip-types src/server.ts    # stdio

npm test # 34 tests, real transport

That last pair used to be the whole of this section, which was the wrong instruction for the only readers this file has: people who arrive from the MCP registry and will never clone anything.

It builds. It does not sign, and it does not enforce.

warda_build_spend returns an unsigned transaction and the digest to sign. This server never sees a key. Whoever holds the agent key signs the digest wherever that key lives, splices the 65 bytes into the fixed-width slot, and broadcasts. An MCP server that signed would be a custodian, and the point of Warda is that nobody has to be.

A test asserts the signature slot in every built transaction is still 65 zero bytes, and that no key material appears anywhere in the response.

This does not enforce anything

An agent is free to ignore every answer this server gives, build the transaction anyway, and broadcast it. The covenant will refuse it. Warda's security has never depended on the agent asking permission first — that is the entire premise, and a server that implied otherwise would contradict the protocol it serves.

Every response says so, in a field called enforcement, and a test asserts it is there.

So what is it for

  • Headroom. An agent planning a purchase needs the largest payment it may currently make. That is not any single field — it is the minimum of remaining budget, epoch headroom, and per-transaction cap. warda_grant_authority computes it.
  • Not wasting transactions. A spend the covenant will refuse costs a fee and a round trip. Checking first is cheaper.
  • Rejections in words. On-chain, every failed rule collapses into one opaque script error. Here a refusal names the rule and says what to do about it — *"larger than the per-transaction cap; split it or ask the principal to raise the cap"* rather than VerifyError.
  • Discovery. A framework speaking MCP finds Warda without a custom integration, which is the point of §20 in the spec.

The rules live in one place

Every verdict comes from @warda_protocol/core — the same code the covenant was verified against, sharing the same 45 tests. This server carries no copy of the protocol rules.

That constraint is deliberate. A second implementation of the rules would drift, and the failure mode is bad in both directions: telling an agent it may spend when the chain will refuse wastes money, and telling it that it may not when the chain would allow it silently strands funds. One source, or none.

Tools

ToolAnswers
warda_walletThe whole wallet view: address, limits, spending power, allowlist.
warda_grant_authorityWhat may this agent spend right now?
warda_grant_addressWhere does this grant live?
warda_check_spendWould this payment be accepted, and if not, why?
warda_check_delegationIs this child grant a legal narrowing?
warda_build_spendBytes to sign for this payment.
warda_build_delegationBytes to sign to subdivide this grant.
warda_build_settlementBytes to sign to collapse a child back into its parent.
warda_build_exitBytes to sign to revoke this grant, or reclaim it after expiry.
warda_recover_grantFind a grant again from a transaction that spent it.

Four of these were missing for a while, and the shape of the gap is worth stating: an agent could ask what it may spend and get a spend built, and nothing else in a grant's life was reachable. A monitor that noticed misbehaviour could file a report and not act on it. A caller whose record had fallen behind had no way back to the grant at all.

It says "wallet", and then says what it is not

warda_wallet uses the word a developer arrives with, and the moment a tool does that the obvious next field is a balance. This server has no node. Every figure it returns comes from the descriptor it was handed, so an on-chain balance is deliberately absent and says so in the response rather than being quietly omitted — a balance derived from a stale record is the failure this protocol keeps meeting, and it is the one that looks most like success.

A test asserts the absence, so that giving this server a node later is a decision somebody makes rather than something autocomplete does.

It composes warda_grant_address and warda_grant_authority and computes nothing new. Two calls that every framework was going to assemble slightly differently is one implementation of the accounting too many.

Where a grant lives, and why that keeps moving

A grant's address is a hash of its state, so it changes after every spend and every delegation. Yesterday's address holds nothing today, and an empty address is indistinguishable from a grant that was never funded. This is the single fact that trips up every integration, so warda_grant_address exists to answer it directly, and every builder returns where the grant lands next.

Finding a grant you have lost

Kaspa's P2SH requires the covenant script to travel in the clear inside the signature script of every transaction that spends it — the network cannot check the hash otherwise — and a grant's state is spliced into that script at known offsets. So every spend publishes the grant it spent, whether the spender meant to or not. warda_recover_grant reads it back and walks forward to where the grant is now.

Without that, a grant is reachable only through a record on somebody's disk: lose it and the coin is perfectly valid on chain and simply unreachable. A protocol whose argument is that limits live in consensus should not have its recoverability live in a filesystem.

Settlement, and why it is not the same as waiting

A child grant that expires returns its balance to the principal — to the human. A child that is *settled* returns its unspent remainder to the parent agent's budget, charging the parent only what the child actually spent. That difference is the whole reason settlement exists: an agent halfway through a task cannot use money that has gone back to its owner.

warda_build_settlement returns two digests, deliberately unmerged. The parent's half is signed by the parent's agent key; the child's by the revocation key, because collapsing a grant is a revocation of it and a sub-agent must not be able to end its own grant on terms it picks.

It needs one number that cannot be derived from anything on chain: the parent's reserve root from before that child was pushed. The reserve is a hash chain, and popping one means supplying the preimage. warda_build_delegation returns it as parentReserveRootBefore — keep it.

warda_build_spend builds the transaction even when the advisory verdict says no, and reports the verdict alongside. That direction is deliberate: a local rule that is too strict must not be able to block a payment the chain would accept. Refusing costs a fee; blocking costs a capability.

It does refuse one thing outright — a payee that is not on the allowlist. No proof places it in the tree, so no valid transaction exists; fabricating a borrowed proof would make the covenant's rejection look like a bug in the tree rather than a payee that is not on the list.

Wiring it up

{

"mcpServers": { "warda": { "command": "npx", "args": ["-y", "@warda_protocol/mcp"] } } }

Where the bytes come from

warda_build_spend assembles through @warda_protocol/kaspa, which is checked against golden-spend.json — a reference transaction produced by the same Rust path that put a spend on testnet-10. mcp/test/build.test.ts closes the last gap: it describes that same grant the way an agent framework would, in decimal KAS and named recipients, and requires the result to come out byte-identical.

That matters because three things sit between the two vocabularies — a decimal parser, a Merkle tree built by different code than the SDK's, and a struct laid out by field order. None of them is a rule, so none can wrongly permit a spend. All of them can produce bytes the chain refuses, silently, and only when real money is at stake.

Not built yet

No chain access. The server cannot find the grant's current UTXO — you pass it in. A grant's address moves after every spend, so a stale UTXO will simply not be found. (@warda_protocol/kaspa will find it for you: NodeClient.open takes a node URL, a list of them, or a Kaspa Resolver, and refuses a node that would answer wrongly.)

No broadcasting. A built spend is an ordinary transaction; submit it with whatever node client you already have.

The template is not a parameter, on purpose. It is loaded from disk (WARDA_TEMPLATE overrides the path). A caller-supplied template is the softest attack surface in the protocol: swap it and every address is wrong, so the grant pays into a script nobody can ever spend.